gitlab多项目流水线

server/2025/2/12 4:31:57/

背景是我有多个项目,希望其中一个项目被触发的时候,联动另外一个项目自动打包。然后我就看文档尝试操作了一下,所以有本文。

官方文档参考:https://gitlab.cn/docs/14.5/jh/ci/pipelines/multi_project_pipelines.html
不知道是不是我使用的方法不对,用上面的文档去操作有报错:(

可以使用gitlab提供的 trigger 方法,通过curl调用接口,触发下游的打包任务,比如:

curl --request POST \
--form "token=$TRIGGER_TOKEN" \
--form "ref=$DOWNSTREAM_BRANCH" \
--form "variables[UPSTREAM_VERSION]=$BUILD_VERSION" \
--form "variables[PIPELINE_SOURCE]=upstream" \
"https://gitlab.yeshen.org/api/v4/projects/$DOWNSTREAM_PROJECT_ID/trigger/pipeline"

注意点有

  1. project在gitlab的项目上有显示,比如 https://gitlab.yeshen.org/yeshen-awesome/yeshen-awesome-sdk,id就是 3

  2. 使用 variables 传递自定义参数到下游仓库,比如 --form “variables[PIPELINE_SOURCE]=upstream”

  3. 下游仓库需要提供token,token可以在 下游项目的 Settings > CI/CD > Pipeline triggers 中生成。

    即在yeshen-awesome项目中生成一个token,在这里: https://gitlab.yeshen.org/yeshen-awesome/yeshen-awesome-sdk/-/settings/ci_cd Pipeline triggers

  4. 上游仓库需配置token,上游项目的 CI/CD 变量 DOWNSTREAM_TRIGGER_TOKEN,在 Settings > CI/CD > Variables 中配置。

    即在testingsdk中配置token,在这里:https://gitlab.yeshen.org/yeshen-upstream/yeshen-upstream-client/-/settings/ci_cd Variables

一份参考的配置可以是如下

上游配置

stages:- relase- triggertrigger_downstream:stage: triggertags:- yeshen-pcvariables:DOWNSTREAM_PROJECT_ID: "3"DOWNSTREAM_BRANCH: "branch-13"TRIGGER_TOKEN: $DOWNSTREAM_TRIGGER_TOKENscript:- |curl --request POST \--form "token=$TRIGGER_TOKEN" \--form "ref=$DOWNSTREAM_BRANCH" \--form "variables[UPSTREAM_VERSION]=$BUILD_VERSION" \--form "variables[PIPELINE_SOURCE]=upstream" \"https://gitlab.yeshen.org/api/v4/projects/$DOWNSTREAM_PROJECT_ID/trigger/pipeline"rules:- if: $CI_COMMIT_TAGneeds:- job: relase_job artifacts: true

下游配置

stages:- testingtesting_job:stage: testingimage: yeshen/android_build:1.0.3tags:- yeshen-pcscript:- echo "version_ $UPSTREAM_VERSION"- echo "Start building the sdk...testing"- echo "finish build"rules:- if: $PIPELINE_SOURCE == "upstream"

http://www.ppmy.cn/server/166558.html

相关文章

什么是企业经营驾驶舱

企业运营驾驶舱是一种基于数据可视化的管理工具,旨在帮助企业实时监控、分析和优化核心运营指标,辅助管理层快速决策。其概念类似于飞机驾驶舱,通过直观的仪表盘展示关键数据,让管理者“一目了然”掌握企业运营状态。数聚从多年的…

Kafka 无消息丢失最佳实战

1. 不要使用 producer.send(msg),而要使用 producer.send(msg, callback)。记住,一 定要使用带有回调通知的 send 方法。 2. 设置 acks all。acks 是 Producer 的一个参数,代表了你对“已提交”消息的定义。 如果设置成 all,则…

SSA-TCN麻雀算法优化时间卷积神经网络时间序列预测未来Matlab实现

SSA-TCN麻雀算法优化时间卷积神经网络时间序列预测未来Matlab实现 目录 SSA-TCN麻雀算法优化时间卷积神经网络时间序列预测未来Matlab实现预测效果基本介绍程序设计参考资料 预测效果 基本介绍 1.Matlab实现SSA-TCN麻雀算法优化时间卷积神经网络时间序列预测未来(优…

本地部署DeepSeek(Mac版本,带图形化操作界面)

一、下载安装:Ollama 官网下载:Download Ollama on macOS 二、安装Ollama 1、直接解压zip压缩包,解压出来就是应用程序 2、直接将Ollama拖到应用程序中即可 3、启动终端命令验证 # 输入 ollama 代表已经安装成功。 4、下载模型 点击模型…

Spring Boot 对接深度求索接口实现知识问答功能

Spring Boot 对接深度求索接口实现知识问答功能 一、概述 本文将详细介绍如何使用 Spring Boot 对接深度求索(DeepSeek)接口,实现知识问答功能。深度求索是一个强大的自然语言处理平台,提供多种 API 接口,包括知识问…

Rust语言进阶之标准输入: stdin用法实例(一百零五)

简介: CSDN博客专家、《Android系统多媒体进阶实战》一书作者 新书发布:《Android系统多媒体进阶实战》🚀 优质专栏: Audio工程师进阶系列【原创干货持续更新中……】🚀 优质专栏: 多媒体系统工程师系列【…

金三银四Java面试题及答案整理(2025年最新版,持续更新)

学习如逆水行舟,尤其是 IT 行业有着日新月异的节奏,我们更要抓紧每一次可以学习和进步的机会。所以,没有撤退可言。 即使是面试跳槽,那也是一个学习的过程。只有全面的复习,才能让我们更好的充实自己,武装…

单硬盘槽笔记本更换硬盘

背景 本人的笔记本电脑只有一个硬盘槽,而且没有M.2的硬盘盒,只有一个移动硬盘 旧硬盘:512G 新硬盘:1T 移动硬盘:512G 参考链接:https://www.bilibili.com/video/BV1iP41187SW/?spm_id_from333.1007.t…