运行 使用 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
如何在部署后将此自动化为 运行 此命令?
首先types
是deprecated,你应该使用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
我正在设置 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
如何在部署后将此自动化为 运行 此命令?
首先types
是deprecated,你应该使用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