GitLab CI 管道不会为默认分支上的事件触发

时间:2021-03-30 15:21:55

标签: gitlab yaml gitlab-ci

我的 GitLab 存储库中有两个分支(uat 和生产)。两个部署作业旨在将分支部署到特定环境。有两个 gitlab-ci.yml 文件,每个分支中有一个(带有该分支的配置),而 production 是我的默认分支。 仅当 dir/ 中的文件发生更改时,作业才应运行,而不是针对预定管道。

问题: UAT 的部署作业正按预期工作:如果我直接推送到分支或接受合并请求,它就会运行。但是,虽然除了分支没有区别,但是生产的部署作业不会在任何事件上触发。

问题:你知道我是否误解了什么,如何解决这个问题?

谢谢!

  • gitlab-ci.yml production
deploy_to_production:
  only: 
    refs:
      - production
    changes:
      - dir/*
  except: 
    - schedules

script:
    # upload to prod

gitlab-ci.yml uat

deploy_to_uat:
  only: 
    refs:
      - uat
    changes:
      - dir/*
  except: 
    - schedules

script:
    # upload to uat

1 个答案:

答案 0 :(得分:0)

您的文件中的 script: 之前有那些空行吗?

这将在 script 下定义 default,因为它与作业无关。

default:
  script:
    # upload to uat

它只运行 uat 的原因是在第二个引用中第一个被覆盖。您可以在 CI/CD/Editor 下的项目页面上的 gitlab 上进行检查。

在这里你可以查看合并后的最终 yaml: enter image description here