web-dev-qa-db-ja.com

GitlabリポジトリからHerokuに直接デプロイする方法

私のチームでは、Gitlabをリモートリポジトリとして使用しているため、アプリをHerokuに自動展開するソリューションを探しています。 GithubからHerokuにアプリを自動展開するためのコードシップが見つかりました。

任意のヒント?トリック?

28
Toanalien

Ruby/dplを使用する準備ができていない場合は、次のようにHerokuにデプロイできます。

Heroku APIキーを検索し(Heroku Webコンソールの[アカウント設定]-> [APIキー])、Gitlabシークレット変数として使用できるようにします。 HEROKU_API_KEY(値はheroku auth:tokenが返すものと同じではないことに注意してください...)

次に、関連するジョブで.gitlab-ci.yml構成ファイルに2つのスクリプト行を追加します。

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 で確認できます。

33
Zsolt

ここ は私が見つけた解決策であり、リンクが壊れた場合に再記述します:

プロジェクトの構成

これは、このプロジェクトの.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

このプロジェクトには3つの仕事があります:

test-テストに使用Django application、

ステージング-マスターブランチへのプッシュごとにステージング環境を自動的に展開するために使用

本番-作成されたタグごとに本番環境を自動的に展開するために使用

APIキーの保存

[プロジェクト]> [変数]で2つの変数を作成する必要があります。

HEROKU_STAGING_API_KEY - Heroku API key used to deploy staging app,
HEROKU_PRODUCTION_API_KEY - Heroku API key used to deploy production app.
25
dnit13