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

2024-04-16

我在 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(使用前将#替换为@)

当提交推送到另一个项目时触发项目的构建 的相关文章

  • 有什么方法可以在 Jenkins 中获取 Gitlab 管道工件吗?

    我在gitlab中有一个项目 该项目会在存储库中的每次签入时构建 并在 gitlab 管道成功时创建构建工件 我想在我的詹金斯管道工作中获得这些构建工件 有什么办法可以做到这一点吗 我在 Jenkins 中找不到任何插件来执行此操作 任何帮
  • 如何修复 Android studio 中调用失败来自服务器的意外响应:未经授权

    我有一个项目Gitlab https gitlab com我最近几天一直在用它 现在我想要pull在我的家用电脑上进行项目 但显示以下错误 Invocation failed Unexpected Response from Server
  • .gitlab-ci.yml 中的规则条件是否有 AND 选项?

    我想创建一些嵌套条件 当它是合并或合并请求并且以特定名称启动 功能 时 我需要此管道才能工作 那么 作业的 唯一 选项中是否有 AND 条件 不 那里没有 你必须使用rules https docs gitlab com ee ci yam
  • Git:推送到多个远程

    Short 如果您将多个远程存储库链接到本地 文件 是否有一种方法可以同时推送到它们 Long 由于工作原因 我的代码必须使用gitlab和github遥控器 因此 一旦我进行了一些本地更改 我就想更新这两个存储库 我的 git confi
  • 根据合并请求触发 gitlab-ci 中的作业

    是否可以仅根据合并请求从 gitlab ci 运行作业 现在 我们有一个包含大量测试的大型整体项目 但我们只想在合并到分支 master 之前运行测试 嗯 目前还没有内置 但是您自己也不是不可能 Gitlab 允许trigger https
  • Bitnami:如何在 Apache2 中配置 GitLab 5.0 应用程序而不具有相对根目录?

    或者如何使 GitLab 应用程序作为 Apache2 HTTP 服务器上的根应用程序 我以前没有使用过 Apache2 但是我得到了Bitnami GitLab 虚拟机 http bitnami com stack gitlab virt
  • 如何修复 CI/CD 上的 SSH Webpack 构建超时 (Gitlab)

    我已经创建了与 Gitlab 的 CI CD 集成 并且在运行 CI CD 时一直拖延 webpack 和资产的最终编译 这是针对 Linux 16 04 t2 small AWS 实例的 我很好奇这是否是内存 处理器问题 尽管如果我通过
  • 在 Docker 中使用私有模块构建 Go 应用程序

    我正在尝试在依赖于私有子模块的 docker 容器中构建一个 go 项目 我本来希望 mount type ssh会将我的 ssh 凭据传递给容器并且它会起作用 目前我可以在本地构建 只需制作GOPRIVATE变量集和git config
  • 如何检查YML语法是否正确(gitlab.yml)

    GitLab 服务器无法启动 https stackoverflow com questions 17690321 bitnami gitlab 5 2 0 gitlab sidekiq not running and could not
  • 如何在 gitlab-ci 作业之间传递变量?

    我有一个像这样的 gitlab ci stages calculation execution calculation job stage calculation script calculate something and output
  • 推送到 Git (GitLab) 时出现错误 401

    我收到错误 Total 4 delta 2 reused 0 delta 0 error RPC failed result 22 HTTP code 401 当推送到 GitLab 上的 git 存储库时 它曾经有效 我遇到了同样的问题
  • 如何检查gitlab中项目的id

    我想使用 GitLab API 来获取我的项目的内容 网址是这样的 https gitlab com api v4 projects id repository files file path private token xxxxx 我已经
  • Mac上使用docker安装gitlab的权限问题

    我正在尝试让 Gitlab 在本地运行 但遇到了权限问题 cp cannot create regular file etc gitlab gitlab rb Permission denied 我正在运行的命令是 sudo docker
  • 如何以编程方式从 Gitlab LFS 检索文件?

    Question 当需要身份验证时 如何以编程方式从 Gitlab 下载文件 Context 我想以编程方式从 Gitlab 检索 LFS 文件 这API https docs gitlab com ee api不幸的是 没有提供正确的终点
  • gitlab runner ssh私钥644文件权限错误

    运行 gitlab ci cd 管道时 ssh 给出 0644 badpermission 错误 变量作为文件类型存储在 gitlab 的 settings gt variable 部分中 gitlab ci yml 文件如下所示 stag
  • 被拒绝:将映像推送到 gitlab 注册表时,请求的资源访问被拒绝

    我正在尝试将图像推送到 gitlab 注册表 我已经做过很多次了 所以我想知道为什么会出现这个错误 我使用最新标签构建图像 Successfully tagged registry gitlab com mycompany rgpd api
  • vscode通过SSH连接gitlab的问题

    我在尝试通过 SSH 连接到 GitLab 远程存储库时遇到问题 这里是迄今为止完成的步骤 成功生成 SSH 密钥 管理人员将密钥添加到存储库中 因此当我访问 GitLab 网站时 我可以提交和发布分支 我无法从 VSCODE 发布分支并收
  • 使用 Yarn 从 Gitlab 安装私有包

    我有一个私有 npm 包 它使用 Gitlab CI 管道发布到 Gitlab 包注册表 我想在项目中使用安装这个包yarn 遵循文档帮助我想出了以下内容 npmrc file gitlab com api v4 packages npm
  • bash:gitolite:找不到命令

    我正在尝试使用 Gitolite 在 Gitlab 中创建一个新分支 我完成安装步骤 当我遇到 设置 gitolite 部分时 我遇到了麻烦 我跟着这个link http sitaramc github com gitolite setup
  • 自动将所有 GitHub 存储库镜像到 gitlab

    对于 GitLab 必须手动为每个存储库设置拉 推镜像 我想知道那里有any way可以自动将所有 Github 存储库同步到 GitLab 这样 当您在 GitHub 中创建新的存储库时 GitLab 中的存储库将自动创建 并充当拉取镜像

随机推荐