Как развернуть в 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