我在gitlab上有一个带有gitlab-runner机器的三个项目A,B,C。项目A包含gitlab-ci.yml文件,该文件在A上提交时调用脚本来构建程序:
build:
stage: build
script:
- ./build-platform.sh
A取决于B和C项目。当在B或C上提交时,如何在A上触发构建。我不能将B,C放在A中,我不能轻易地将build-platform.sh转换为gitlab-ci.yml文件语法。
答案 0 :(得分:6)
有几种方法可以做你想要的,但是它们都依赖于你在gitlab中设计A的设置并添加一个触发器令牌。这可以通过点击触发器部分中的RowEditEnded
在<project A's gitlab URL>/settings/ci_cd
页面完成。
您还可以找到在该页面中使用该触发器令牌的不同方法。
为了完整起见,这里提到了一些方法:
如果您可以在项目B或C的构建结束时使用curl,那么只需添加以下内容:
Add trigger
其中TOKEN是您刚为项目A生成的触发器令牌,REF_NAME是运行构建的分支或标记的名称。
如果你有项目B和C的自动构建(例如使用curl -X POST \
-F token=TOKEN \
-F ref=REF_NAME \
<gitlab_url>/api/v3/projects/1/trigger/builds
文件),就可以这样做。
您可以通过这些项目的设置/集成页面向项目B和C添加webhook。
只需在推送活动中添加以下webhook:
.gitlab-ci.yml
TOKEN和REF_NAME与上述相同。