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

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

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

  • bash:gitolite:找不到命令

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

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

    当我执行以下操作时 我的 GitLab CI CD 就会运行 click Create merge request 创建分支中的每个提交 当合并请求分支合并到master时 我想跳过第一个管道 在创建合并请求时 因为我想优化 紧固 我的 C
  • 适用于 Python 的 GitLab CI 共享 Windows 运行器

    我在 GitLab 中有一个 python 项目仓库 我看到 GitLab 共享了可用的测试版 Windows 运行程序 请参阅this https about gitlab com blog 2020 01 21 windows shar
  • Gitlab 备份错误:包对象因信号 9 死亡

    我有一个存储库 有 2 个分支 大小为 3 5GB 每个分支大约 1 5GB git 本身就有 700MB 这是错误 备份失败 失败的 失败 opt gitlab embedded bin git git dir mountdata git
  • 如何在gitlab中发布javadoc?

    如何在gitlab中发布javadoc 到目前为止 我已将 java docs html 页面添加到存储库中 但是当我尝试查看它们时 会显示原始文本 html 源 而不是呈现的 html 页面 有可能吗 为任何偶然发现这个问题的人提供更新
  • gitlab:带有大型存储库的 git clone https 失败

    当尝试通过 https 克隆大型存储库 700MB 时 git 失败并显示 c git projects gt git clone https git mycompany de fs git Cloning into fs Username
  • Gitlab CI服务端口是如何暴露的?

    我有一个 gitlab ci yml file integration test services name registry gitlab com group project testmailserver 1 1 alias mail e
  • 更改目录时 Gitlab CI 运行程序作业失败退出状态 1

    我正在使用我的个人机器作为使用 Fastlane 的 iOS 项目的运行程序 这主要是因为共享运行器没有为 iOS 设置 因为它们没有安装 Xcode 更改目录时我的作业立即失败 它是一个 shell 运行程序 根本没有其他自定义配置 有什
  • 升级到 Gitlab 6.0 后图形丢失

    昨天 我将 Gitlab 安装从 5 3 升级到 6 0 技术上从 5 3 升级到 5 4 从 5 4 升级到 6 0 从那时起我无法显示网络和其他图表 在网络页面上 似乎有些 JavaScript 未加载 因为我收到 网络未定义 错误 图
  • Jenkins 和 Gitlab 不获取代码

    当我设置自己的项目时 我遇到了问题 我开始配置我的 Jenkins 作业 我这样做了 在 Jenkins 上为 gitlab 用户帐户创建凭证 在 gitlab 上创建访问令牌并在 Jenkins 中使用此令牌来启用它 and this i
  • 将存储库从 Github 移至 Gitlab

    有没有办法将整个存储库从 Github 移动到 GitLab 对于代码本身来说 只需在 GitLab 上创建一个新的存储库并推送到它即可 Wiki 页面位于 Github 上的单独分支中 并通过 Git 机制进行管理 据我所知 GitLab
  • 由于未经授权的错误,无法使用 dotnet CLI 将 nuGet 包推送到 GitLab

    GitLab 现在支持 nuget 公共和私有 feed 存储库 我有一个公共项目 例如 https gitlab com sunnyatticsoftware sasw test support https gitlab com sunn
  • 如何使用 LDAP 身份验证使用 gitlab 设置管理员用户?

    我刚刚设置了 gitlab 但我完全迷失了管理员用户 维基百科似乎对这个话题保持沉默 谷歌也没有提供帮助 那么 如何在 LDAP 身份验证上使用 gitlab 设置管理员用户 您还可以通过在 Rails 控制台中执行以下操作来为用户设置管理
  • Gitlab ci 仅在带有发布标签的 master 上运行作业

    我想仅在设置发布标签时在 master 分支上构建 docker 映像 这是我的 gitlab ci build rules if CI COMMIT TAG null CI COMMIT REF NAME master script ec
  • kubernetes 上的 gitlab-ci 缓存与 minio-service 不再工作

    我正在运行 gitlab 10 4 3 和 gitlab runner 10 4 0 作为 kubernetes 部署 带有 kubernetes runner 和一个用于缓存的 minio server 我是按照安装的gitlab 文档
  • 如何标记单个文件?或如何下载特定文件? - 胃肠道

    我想向文件添加标签以轻松下载该文件而不是整个分支 如何下载GIT中的特定文件 我不知道有什么方法可以标记特定文件git 对于第二个问题 如何下载特定文件git 仅当您的意思是 同时下载 时 以下内容才有效in a git存储库 这就是我理解
  • Gitlab 合并请求事件不触发 Jenkins 多分支管道

    我正在尝试在合并请求事件上使用 GitLab Webhook 触发 Jenkins 多分支管道作业 当我测试 Webhook 时 我收到以下消息 Hook 执行成功但返回 HTTP 409 当我设置不同的 GitLab Webhook 例如
  • Gitlab CI - $CI_COMMIT_TAG 为空

    构建时 我需要在 gitlab ci yml 中上次推送的 git 提交的标记值 在构建过程中 我构建了一个 docker 镜像 构建完成后 我想推送这个带有与我的 git 提交相同标签的镜像 到目前为止我的理解是环境变量 CI COMMI
  • 如何让 Gitlab 运行程序在成功构建时将代码合并到分支中

    嗯 标题几乎是不言自明的 总之 如果构建成功 我希望将一个分支 即开发 合并到另一个分支 即生产 我尝试了 jakub kania 解决方案 但我总是得到id rsa invalid format 我认为 gitlab 秘密变量以某种方式被

随机推荐