代码之家  ›  专栏  ›  技术社区  ›  Joshua Richardson

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

  •  0
  • Joshua Richardson  · 技术社区  · 2 年前

    我使用的是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
    

    src/infra/.gitlab-ci.yml :

    deploy_spa:
      stage: deploy
      script:
        - cd src/spa
    

    然而,我最近遇到了以下情况:

    1. 向上推的代码更改了 spa-stack.ts 文件生成已触发并已传递
    2. 创建对master的合并请求;生成已触发,但出现错误!
    3. 合并为master;生成已触发并已传递

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

    我在这里错过了什么?下游作业在AFAIK上没有规则配置,所以我觉得它应该一直运行,没有问题。

    0 回复  |  直到 2 年前
        1
  •  2
  •   sytech    2 年前

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

    为了确保下游管道在分支管道和合并请求管道中都能工作,您需要添加 rules: (规则本身并不重要,但仅仅是 规则: 键将使其在合并请求管道上触发)。

    deploy_spa:
      stage: deploy
      script:
        - cd src/spa
      rules:
        - when: on_success