gitlab 只在子管道中运行一个作业

gitlab only runs one job in child-pipeline

我有一个 gitlab-ci.yml 创建并触发一个子 .yml

stages:
  - child-pipeline-generator
  - child-pipeline-trigger

generate-child-pipeline:
  stage: child-pipeline-generator
  tags:
    - GroupRunner
  script:
    - $(./generate-build.ps1) *>&1 > child-pipeline-gitlab-ci.yml
    - (Get-Content child-pipeline-gitlab-ci.yml) | Set-Content child-pipeline-gitlab-ci.yml -Encoding UTF8
  artifacts:
    paths:
      - child-pipeline-gitlab-ci.yml

trigger-child-pipeline:
  stage: child-pipeline-trigger
  trigger:
    include:
      - artifact: child-pipeline-gitlab-ci.yml
        job: generate-child-pipeline
    strategy: depend

生成的 yml 看起来像

build_1:
  tags:
    - GroupRunner
  script:
    - echo 'build_1'

build_2:
  tags:
    - GroupRunner
  script:
    - echo 'build_2'

但是当执行时只有作业 1 (build_1) 出现在下游列表中

原来问题出在 powershell 输出的编码上。 powershell 5 的默认编码是 UFT16BOM,我对 UTF8 的重新编码导致 UFT8BOM,gitlab 无法正确处理。我的解决方案是用 ASCII 编码。 我无法解释的是为什么它能够正确解释第一份工作,我认为编码会导致全有或全无的结果。可能是第一份工作后的 CRLF-CRLF 导致了错误