触发标签和手动作业的跨项目管道
Trigger cross-project-pipelines for tags and manual jobs
Gitlab 的跨项目管道允许我 specify a branch 到 运行 一个管道。我没有找到任何这样的选项来对标签做同样的事情?
由于我的跨项目管道也被故意 运行,是否也可以 运行 下游管道中的所有手动作业?
Triggering pipelines through the API.
应该可以做到这一点
您只需将以下内容添加到您的 CI 脚本中:
- curl --request POST --form "token=$CI_JOB_TOKEN" --form ref=master https://gitlab.example.com/api/v4/projects/<project-id>/trigger/pipeline
并将 ref
更新为您需要的标签,并 <project-id>
使用您正在触发的项目。
就跨项目管道而言,故意 运行 并且在触发时有您想要 运行 的手动作业,您可能需要重新编写下游 CI 文件以允许这样做,例如:
上游 CI 文件:
build:
stage: build
script:
- echo "Do some building..."
# Trigger downstream project (tag v1.0.0), with a random variable
- curl --request POST --form "token=$CI_JOB_TOKEN" \
--form "variables[RANDOM_VARIABLE]=FOO" \
--form ref=v1.0.0 https://gitlab.com/api/v4/projects/<project_id>/trigger/pipeline
下游CI文件:
.test:template:
stage: test
script:
- echo "Running some test"
test:manual:
extends:
- .test:template
when: manual
except:
- triggers
test:triggered:
extends:
- .test:template
only:
- triggers
因此,当触发作业是 运行 时,test:triggered
应该是您在管道中看到的唯一 test
作业。
有关详细信息,请参阅 only/except 文档。
Gitlab 的跨项目管道允许我 specify a branch 到 运行 一个管道。我没有找到任何这样的选项来对标签做同样的事情?
由于我的跨项目管道也被故意 运行,是否也可以 运行 下游管道中的所有手动作业?
Triggering pipelines through the API.
应该可以做到这一点您只需将以下内容添加到您的 CI 脚本中:
- curl --request POST --form "token=$CI_JOB_TOKEN" --form ref=master https://gitlab.example.com/api/v4/projects/<project-id>/trigger/pipeline
并将 ref
更新为您需要的标签,并 <project-id>
使用您正在触发的项目。
就跨项目管道而言,故意 运行 并且在触发时有您想要 运行 的手动作业,您可能需要重新编写下游 CI 文件以允许这样做,例如:
上游 CI 文件:
build:
stage: build
script:
- echo "Do some building..."
# Trigger downstream project (tag v1.0.0), with a random variable
- curl --request POST --form "token=$CI_JOB_TOKEN" \
--form "variables[RANDOM_VARIABLE]=FOO" \
--form ref=v1.0.0 https://gitlab.com/api/v4/projects/<project_id>/trigger/pipeline
下游CI文件:
.test:template:
stage: test
script:
- echo "Running some test"
test:manual:
extends:
- .test:template
when: manual
except:
- triggers
test:triggered:
extends:
- .test:template
only:
- triggers
因此,当触发作业是 运行 时,test:triggered
应该是您在管道中看到的唯一 test
作业。
有关详细信息,请参阅 only/except 文档。