根据分支发送到生产或审查环境

Sending to production or review environments depending on branch

我们正在使用 Gitlab-CI 但是我们在同时拥有审查和生产环境方面遇到了一些麻烦。

我们的 .gitlab-ci.yml 有几个阶段,但在这里我将重点介绍部署阶段:

deploy:
  stage: deploy
  script:
    - some commands
  environment:
    name: review/$CI_BUILD_REF_NAME
    url: http://$CI_BUILD_REF_SLUG.$DEPLOY_SERVER
    on_stop: stop_deploy
  only:
    - /^feature-[cw]\/.*$/

deploy:
  stage: deploy
  script:
    - some other commands
  environment:
    name: production
  only:
    - prod


stop_deploy:
  stage: deploy
  variables:
    GIT_STRATEGY: none
  script:
    - some clean commands
  when: manual
  environment:
    name: review/$CI_BUILD_REF_NAME
    action: stop
  only:
    - /^feature-[cw]\/.*$/

问题是第一份工作不是 运行 在名称以 feature-c/ 开头的分支上。但是,当删除第二份工作时,第一份工作在这些分支上是 运行。

部署到生产的作业在推送到 prod 时正确 运行。

那么为什么在定义第二个作业时第一个作业不是运行?冲突从何而来?

谢谢!

答案很简单;他们不能有相同的名字 :) 命名一个 deploy-review 和另一个 deploy-prod 及其修复。