Я хочу развернуть свое приложение на странице github. Я хочу, чтобы работа по сборке была автоматизирована. Мои команды сборки в основном включают запуск модульных тестов, сборку рабочей версии, команду gh-deploy для развертывания на странице github. Могу ли я добиться этого, используя код корабля. Нужна ли мне для этого настоящая виртуальная машина, такая как ec2?
Выполнять команды в codeship без vm для каждого коммита в ветке
Ответы (1)
Официальный процесс автоматизации с codeship включает отправляет на GitHub.
Если ваш процесс сборки позволяет заполнить содержимое, которое вы хотите опубликовать, вы можете просто отправить это из самой работы codeship.
В качестве примера см. «Автоматическое развертывание на gh-pages
с помощью Codeship. " (Мартин Чемберлин), о публикации сборки Gulp:
git clone <the ssh link to your repo> dist
cd dist
git checkout gh-pages || git checkout --orphan gh-pages
cd ..
rm -rf dist/**/* || exit 0
npm install
gulp deploy
cd dist
git config user.email "<the email address you used for your machine user GitHub account>"
git config user.name "<the username you used for your machine user GitHub account>"
git add .
git commit -m "Deploy to GitHub Pages: ${CI_COMMIT_ID} --skip-ci"
git push origin gh-pages
На самом деле это умный небольшой набор команд.
Он создает репозиторий git внутри другого репозитория git, чтобы правильно обрабатывать сборку.
Хотел бы я сказать, что я был тем, кто придумал эту идею. но совет от шляпы принадлежит Доменику, который подал мне идею с его сутью Трэвиса.Несколько замечаний по этому поводу:
- Это предполагает, что
npm install; gulp deploy
— это серия команд, которые вы используете для объединения и минимизации ваших активов.
Это верно для моего проекта, но ваш может отличаться (особенно второй). Обязательно замените строки 6 и 7 своими реальными (а также значениями, конечно).- Это также предполагает, что ваш выходной каталог —
dist
. Надеюсь, что так, потому что так принято, но если у вас есть что-то другое, вам нужно будет обновить строки 1, 2 и 8.- Я полностью игнорирую рекомендацию Codeship обрабатывать окончательный git push с помощью собственного предоставленного кода («включить команды из
continuous-deployments/git-push.sh
").
В любом случае, ничего страшного, я просто не вижу необходимости в дополнительном HTTP-запросе.
person
VonC
schedule
09.06.2019