Как развернуть в Heroku прямо из моего репозитория Gitlab
В моей команде мы используем Gitlab удаленный репозиторий, поэтому мы находим решение для автоматического развертывания наших приложений в Heroku напрямую. Мы нашли Codeship для автоматического развертывания приложений в Heroku от Github.
Какие-нибудь советы? Трюки?
Ответы
Ответ 1
Если вы не готовы использовать Ruby/dpl, вы можете установить его в Heroku следующим образом:
Посмотрите на свой ключ API Heroku (настройки учетной записи → ключ API на веб-консоли Heroku) и сделайте его доступным как секретная переменная Gitlab, например, HEROKU_API_KEY (обратите внимание, что значения не совпадают с тем, что у героя auth: token возвращает...)
Затем добавьте две строки сценария в конфигурационный файл.gitlab-ci.yml в соответствующем задании:
git remote add heroku https://heroku:[email protected]/<name of your heroku app>.git
git push -f heroku master
Вы можете увидеть подробное объяснение по адресу http://blog.thecodewhisperer.com/permalink/deploying-jekyll-to-heroku-using-gitlab-ci
Ответ 2
Вот решение, которое я нашел, пересчитывая, если ссылка сломана:
Настроить проект
Вот что выглядит файл.gitlab-ci.yml для этого проекта:
test:
script:
# this configures Django application to use attached postgres database that is run on 'postgres' host
- export DATABASE_URL=postgres://postgres:@postgres:5432/python-test-app
- apt-get update -qy
- apt-get install -y python-dev python-pip
- pip install -r requirements.txt
- python manage.py test
staging:
type: deploy
script:
- apt-get update -qy
- apt-get install -y ruby-dev
- gem install dpl
- dpl --provider=heroku --app=gitlab-ci-python-test-staging --api-key=$HEROKU_STAGING_API_KEY
only:
- master
production:
type: deploy
script:
- apt-get update -qy
- apt-get install -y ruby-dev
- gem install dpl
- dpl --provider=heroku --app=gitlab-ci-python-test-prod --api-key=$HEROKU_PRODUCTION_API_KEY
only:
- tags
Этот проект состоит из трех рабочих мест:
test - используется для тестирования приложения Django,
стадия - используется для автоматического развертывания промежуточной среды при каждом нажатии на ведущую ветвь
производство - используется для автоматического развертывания производственной среды для каждого созданного тега
Хранить ключи API
Вам нужно создать две переменные в Project> Variables:
HEROKU_STAGING_API_KEY - Heroku API key used to deploy staging app,
HEROKU_PRODUCTION_API_KEY - Heroku API key used to deploy production app.
Ответ 3
Вы должны запустить эту команду в любых существующих репозиториях, используя heroku cli:
heroku git:remote -a <name of your heroku app>
то вы можете выполнить это для развертывания своего проекта:
git push heroku master