使用Gitlab CI / CD部署后运行命令

时间:2018-06-20 09:40:24

标签: gitlab gitlab-ci heroku-cli

我正在设置Gitlab CI/CD,以在每次推送时自动将其部署到heroku应用。

当前我的.gitlab-ci.yml文件看起来像

production:
  type: deploy
  script:
  - apt-get update -qy
  - apt-get install -y ruby-dev
  - gem install dpl
  - dpl --provider=heroku --app=koober-production --api-key=$HEROKU_PRODUCTION_API_KEY
  only:
  - master

这很好,部署成功,应用程序正常运行。

但是,成功部署后,我需要运行一些命令来迁移数据库。

目前,我需要通过从终端运行命令

来手动执行此操作
heroku run python manage.py migrate -a myapp

如何在部署后自动执行此命令以运行此命令?

2 个答案:

答案 0 :(得分:0)

第一个typesdeprecated,您应该使用stages
回到最初的问题,我想您可以为此使用新的阶段/类型。
声明如下内容:

stages:
  - build
  - test
  - deploy
  - post_deploy

post_production:
  stage: post_deploy
  script:
  - heroku run python manage.py migrate -a myapp
  only:
  - master

然后仅在单元成功的情况下执行此操作。

答案 1 :(得分:0)

已解决,使用--run标志可以使用dpl运行命令

stages:
  - deploy

production:
  stage: deploy
  script:
  - apt-get update -qy
  - apt-get install -y ruby-dev
  - gem install dpl
  - dpl --provider=heroku --app=koober-production --api-key=$HEROKU_PRODUCTION_API_KEY --run='python manage.py migrate && python manage.py create_initial_users'
  only:
  - master