我在 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 文件语法。
有几种方法可以完成您想要的操作,但它们都依赖于您在 gitlab 中投影 A 的设置并添加触发令牌。这是通过<project A's gitlab URL>/settings/ci_cd
页面通过点击Add trigger
in the Triggers部分。
您还可以从该页面找到使用该触发令牌的不同方法。
为了完整起见,这里提到了一些方法:
1 使用卷曲
如果您可以在项目 B 或 C 的构建结束时使用curl,则只需添加以下内容:
curl -X POST \
-F token=TOKEN \
-F ref=REF_NAME \
<gitlab_url>/api/v3/projects/1/trigger/builds
其中 TOKEN 是您刚刚为项目 A 生成的触发令牌,REF_NAME 是要为其运行构建的分支或标记的名称。
如果您有项目 B 和 C 的自动构建(使用.gitlab-ci.yml
文件为例)。
2 使用网络钩子
您可以通过项目 B 和 C 的设置/集成页面将 Webhook 添加到这些项目。
只需在推送事件上添加以下 Webhook:
<gitlab_url>/api/v3/projects/1/ref/REF_NAME/trigger/builds?token=TOKEN
其中TOKEN和REF_NAME同上。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)