我正在设置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
如何在部署后自动执行此命令以运行此命令?
答案 0 :(得分:0)
第一个types
是deprecated,您应该使用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