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

run command after deploy using Gitlab CI/CD

我正在设置 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

这工作正常并且部署成功并且应用程序正在运行。

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

目前,我需要通过终端 运行ning 命令手动执行此操作

heroku run python manage.py migrate -a myapp

如何在部署后将此自动化为 运行 此命令?

首先typesdeprecated,你应该使用stages
回到最初的问题,我想你可以为此使用一个新的 stage/type。
声明如下:

stages:
  - build
  - test
  - deploy
  - post_deploy

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

这应该只在部署成功的情况下执行。

使用 --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