gpt4 book ai didi

gitlab - 当提交推送到另一个项目时触发项目构建

转载 作者:行者123 更新时间:2023-12-01 14:00:52 24 4
gpt4 key购买 nike

我在带有 gitlab-runner 机器的 gitlab 上有三个项目 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 的设置并添加一个触发 token 。这是通过 <project A's gitlab URL>/settings/ci_cd 完成的。单击 Add trigger 页面在触发器部分。

您还会发现从该页面使用该触发 token 的不同方式。

为了完整起见,这里提到了一些方法:

1 使用 cURL

如果您可以在项目 B 或 C 的构建结束时使用 curl,则只需添加以下内容:

curl -X POST \
-F token=TOKEN \
-F ref=REF_NAME \
<gitlab_url>/api/v3/projects/1/trigger/builds

其中 TOKEN 是您刚刚为项目 A 生成的触发 token ,REF_NAME 是要为其运行构建的分支或标记的名称。

如果您有项目 B 和 C 的自动构建(例如使用 .gitlab-ci.yml 文件),则可以完成此操作。

2 使用网络钩子(Hook)

您可以通过这些项目的设置/集成页面向项目 B 和 C 添加 Webhook。

只需在推送事件上添加以下 webhook:

<gitlab_url>/api/v3/projects/1/ref/REF_NAME/trigger/builds?token=TOKEN

其中 TOKEN 和 REF_NAME 同上。

关于gitlab - 当提交推送到另一个项目时触发项目构建,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42837887/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com