无法创建 GitLab CI/CD 下游管道 - 规则配置阻止添加作业

Jos*_*son 1 continuous-integration continuous-deployment gitlab gitlab-ci gitlab-ci-runner

我正在使用 GitLab CI/CD,并且有一个管道,其中包含来自单独配置文件的作业,该管道似乎工作正常。它看起来像这样:

.gitlab-ci.yml

stages:
  - triggers
  - build
  - test
  - deploy

trigger_infra:
  stage: triggers
  trigger:
    include: src/infra/.gitlab-ci.yml
  rules:
    - changes:
      - src/infra/lib/spa-stack.ts
Run Code Online (Sandbox Code Playgroud)

src/infra/.gitlab-ci.yml

deploy_spa:
  stage: deploy
  script:
    - cd src/spa
Run Code Online (Sandbox Code Playgroud)

然而,我最近遇到了以下场景:

  1. 上推更改spa-stack.ts文件的代码;构建已触发并通过
  2. 向 master 创建合并请求;构建已触发并出现错误!
  3. 合并为master;构建已触发并通过

合并构建的错误消息是“无法创建下游管道,管道不会为选定的触发器运行。规则配置阻止将任何作业添加到管道中。”

我在这里缺少什么?下游作业没有规则配置,所以我觉得它应该总是运行,不问任何问题。

syt*_*ech 6

默认情况下,作业不在合并请求管道上运行。这就是为什么下游管道在合并请求时出现问题的原因。

为了确保下游管道在分支管道和合并请求管道中都能工作,您需要添加到rules:作业中(规则本身并不重要,但仅存在密钥rules:就会导致它在合并请求管道上触发) 。

deploy_spa:
  stage: deploy
  script:
    - cd src/spa
  rules:
    - when: on_success
Run Code Online (Sandbox Code Playgroud)