作者:徐涛 | 来源:互联网 | 2023-02-08 18:21
我在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文件语法.
1> Jawad..:
有几种方法可以做你想要的,但是它们都依赖于你在gitlab中设计A的设置并添加一个触发器令牌./settings/ci_cd
通过单击Add trigger
" 触发器"部分,可以通过页面完成此操作.
您还将找到从该页面使用该触发器令牌的不同方法.
为了完整起见,这里提到了一些方法:
1使用cURL
如果您可以在项目B或C的构建结束时使用curl,那么只需添加以下内容:
curl -X POST \
-F token=TOKEN \
-F ref=REF_NAME \
/api/v3/projects/1/trigger/builds
其中TOKEN是您刚为项目A生成的触发器令牌,REF_NAME是运行构建的分支或标记的名称.
如果您有项目B和C的自动构建(.gitlab-ci.yml
例如使用文件),则可以执行此操作.
2使用webhook
您可以通过这些项目的设置/集成页面向项目B和C添加webhook.
只需在推送事件中添加以下webhook:
/api/v3/projects/1/ref/REF_NAME/trigger/builds?token=TOKEN
TOKEN和REF_NAME与上述相同.