如何使用 Gitlab API 在特定运行器上触发下游管道?

问题描述

我正在尝试使用 Gitlab API 在我的管道中触发另一个下游管道,因为这些项目是私有的。

我最初能够触发它,但是当下游管道启动时我一直遇到问题,因为它似乎一直在其他一些随机运行器上运行。

我尝试了以下方法

run_downstream_pipeline:
    stage: trigger_project_b_pipeline
    script:
         - 'curl --request POST --form "token=$CI_JOB_TOKEN" --form ref=staging \
    --form "variables[CI_RUNNER_TAGS]=my_runner_tag" \
    "https://gitlab.example.com/api/v4/projects/9/trigger/pipeline"'

...或将其添加为 -tag:

run_downstream_pipeline:
    stage: trigger_project_b_pipeline
    tags:
       - my_runner_tag
    script:
         - 'curl --request POST --form "token=$CI_JOB_TOKEN" --form ref=staging \
    "https://gitlab.example.com/api/v4/projects/9/trigger/pipeline"'

...或将其作为 url 中的 ref 放入:

run_downstream_pipeline:
    stage: trigger_project_b_pipeline
    script:
         - 'curl --request POST --form "token=$CI_JOB_TOKEN" --form ref=staging \
    "https://gitlab.example.com/api/v4/projects/9/ref/my_runner_tag/trigger/pipeline"'

第一种和第三种方法错误的运行器上成功启动了下游管道,但第二种方法似乎根本不起作用。

希望得到任何建议。谢谢!

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)