Запускать команды в коде без vm для каждого коммита в ветке - PullRequest
1 голос
/ 09 июня 2019

Я хочу развернуть свое приложение на странице github.Я хочу, чтобы работа по сборке была автоматизирована.Мои команды сборки в основном включают в себя запуск модульных тестов, сборку производственной версии, команду gh-deploy для развертывания на странице github.Могу ли я добиться этого с помощью кода корабля.Требуется ли для этого фактический виртуальный компьютер типа ec2?

1 Ответ

1 голос
/ 09 июня 2019

Официальный процесс автоматизации с кодовым кодом включает отправку на GitHub .
Если ваш процесс сборки может заполнить контент, который вы хотите опубликовать, то вы можете просто вытолкнуть его из самого задания по кодированию.

В качестве примера см. " Автоматическое развертывание на 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 с помощью предоставленного им кода («включайте команды из continuous-deployments/git-push.sh»).
    В любом случае, ничего страшного, я просто не вижу необходимости в дополнительном HTTP-запросе.
...