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

这工作正常,部署成功,应用程序正常工作。

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

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

heroku run python manage.py migrate -a myapp

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

types被弃用,你应该使用stages.
回到原来的问题,我认为你可以为此目的使用一个新的阶段/类型.
声明类似的东西:

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

相关内容

  • 没有找到相关文章

最新更新