Выполнять команды в codeship без vm для каждого коммита в ветке

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


person Vasanth Kumar    schedule 09.06.2019    source источник


Ответы (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