【问题标题】:triggering a pipeline from another pipeline gitlab从另一个管道 gitlab 触发管道
【发布时间】:2020-06-14 19:31:01
【问题描述】:

我正在尝试使用“$CI_JOB_TOKEN”(https://docs.gitlab.com/ee/ci/triggers/README.html#when-used-with-multi-project-pipelines) 从另一个管道触发管道。第二个管道被触发,但它始终在执行第二个管道的构建阶段。这意味着它只执行那些带有“除外:-触发器”的作业。我想用'only:-triggers'执行作业

trigger-child-pipeline:
  stage: trigger-child-pipeline
  only:
     - triggers
  tags:
      - runner
  script:
      - curl --request POST --form "token=$CI_JOB_TOKEN" --form ref=my_branch https://gitlab.mycompany.com/api/v4/projects/1234/trigger/pipeline

我想在子管道中执行带有“仅触发器”标记的作业。我错过了什么吗?我无法从文档中找出任何东西(https://docs.gitlab.com/ee/ci/triggers/README.html#when-used-with-multi-project-pipelines)。

谢谢

【问题讨论】:

  • 你能分享child-pipelineyaml吗? only: -triggers 应该在子管道配置中,而不是在父管道中。
  • 是的,我在子管道中有带有“仅:触发器”的作业,这些作业没有被触发,而不是带有“除外:触发器”的作业被触发。
  • 共享父子作业配置。 except: triggers 的作业在使用触发器启动时运行是没有意义的。
  • 当我直接触发此子管道时,它会按预期工作 - 正在触发具有“仅:触发器”的作业
  • 事实上如果我用相同的代码触发子管道' - curl --request POST --form "token=" --form "ref=my_branch" @987654323 @,使用触发令牌它按预期工作。 '

标签: gitlab gitlab-api


【解决方案1】:

再试一次GitLab 13.4(2020 年 9 月)

您可以使用不同的方法检查其最新功能是否会使您的用例更容易:

子管道现在可以触发自己的子管道

使用父/子管道时,现在可以触发子管道 他们自己的子管道。当您需要灵活性时,这种增加的深度会很有用 生成可变数量的子管道。

以前,使用父/子配置,每个子管道都需要一个触发器 在父级中手动定义的作业。

现在您可以动态生成子管道 触发任意数量的新子管道。例如,如果你有一个 monorepo,你 可以动态生成第一个子管道,该管道本身会生成一个变量 新子管道的数量,基于分支中的更改。

参见DocumentationIssue

【讨论】:

  • 是否也可以将其与多项目管道一起使用?
  • @ddsultan 我不这么认为,考虑到文档 (docs.gitlab.com/ee/ci/parent_child_pipelines.html) 提到:“类似于多项目管道,一个管道可以同时触发一组运行子管道,但在同一个项目中:"
  • 谢谢。我是这么想的,但检查了自己的工作是否成功,但触发器没有完成。我使用了触发 API 而不是 YML
猜你喜欢
  • 2021-01-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-05-03
  • 1970-01-01
  • 2022-06-16
  • 2022-08-11
相关资源
最近更新 更多