【问题标题】:gitlab only runs one job in child-pipelinegitlab 只在子管道中运行一项工作
【发布时间】:2022-01-22 02:19:30
【问题描述】:

我有一个 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) 显示在下游列表中

【问题讨论】:

    标签: dynamic gitlab


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 2019-02-02
      • 2022-01-23
      • 2020-07-12
      • 2020-08-18
      • 2022-01-20
      • 2021-04-17
      • 1970-01-01
      • 2021-01-23
      • 2020-01-04
      相关资源
      最近更新 更多