我在GitLab CI管道中有这个概念证明(仅显示相关部分):
deploy:development:
stage: deploy
rules:
- if: $CI_COMMIT_BRANCH == "master"
script: do_deploy
variables:
ANSIBLE_INVENTORY: development
deploy:test:
stage: deploy
environment:
name: test
url: https://env.url.tld
rules:
- if: $CI_COMMIT_BRANCH == "master"
when: manual
script: do_deploy
variables:
ANSIBLE_INVENTORY: test
创建新作业时,我想禁用/弃用以前的deploy:test
作业。基本上,deploy:test
作业仅应为当前/最新管道启用,从而防止旧版本接管最近的版本。
我并不是说它应该立即发生;如果它正在运行,可以让它完成,但如果它失败而创建了一个新的,则也应该禁用旧的(失败的)。与当前状态相同,如果成功运行,则应将其禁用-这是一种最佳状态。
是否有可以让我做到这一点的配置设置?我已经在Settings > CI/CD > General pipelines
中检查了自动取消冗余的,待处理的管道和跳过过时的部署作业,但是在先前的管道上仍未禁用该作业。 / p>
答案 0 :(得分:0)
您是否尝试添加“可中断”标签?
https://yeni.elbielectric.com/urunler/zena/silverline/fildisi/anahtar/
看来您必须将 interruptible: true
添加到您的 yaml 中。
例如:
deploy:development:
stage: deploy
rules:
- if: $CI_COMMIT_BRANCH == "master"
script: do_deploy
interruptible: true
variables:
ANSIBLE_INVENTORY: development