Jenkins “Trigger/call builds on other project“用法及携带参数

2023-09-18 13:44:45

1.功能

“Trigger/call builds on other project” 功能是 Jenkins 中的一个特性,允许您在某个项目的构建过程中触发或调用另一个项目的构建。

当您在 Jenkins 中启用了 “Trigger/call builds on other project” 功能并配置了相应的触发条件后,当主项目构建成功或满足触发条件时,Jenkins 将自动触发所配置的目标项目的构建。

这种功能通常用于创建复杂的构建流水线或构建依赖关系。例如,您可以将多个项目串联起来,使得一个项目的构建成功触发下一个项目的构建,以实现整个软件开发、测试和部署流程的自动化。

通过 “Trigger/call builds on other project” 功能,您可以创建复杂的构建逻辑,并且将不同的项目之间形成依赖关系,以便实现更高级的自动化和集成。

2.携带参数的两种办法

在 “Triggering Options”(触发选项)中,查找 “Parameters”(参数)部分。选择 “Predefined parameters”(预定义参数)或 “Current build parameters”(当前构建参数),具体取决于您希望如何传递参数。

如果选择了 “Predefined parameters”(预定义参数),您可以按照以下格式提供参数:

PARAM_NAME=${VALUE}

其中,PARAM_NAME 是 B 项目中定义的参数名称,VALUE 是您希望传递给 B 项目的实际值。例如:PARAM_NAME=example_value

如果选择了 “Current build parameters”(当前构建参数),那么 A 项目中定义的所有构建参数都将自动传递给 B 项目

在参数字段中,使用 Shell 脚本来获取当前时间并将其赋值给参数。例如,要将当前日期以 “YYYY-MM-DD” 格式传递给 B 项目,您可以使用以下命令:

PARAM_NAME=$(date +%F)

这将使用 date 命令获取当前日期,并将其格式化为 “YYYY-MM-DD” 并赋值给 PARAM_NAME 参数。

如果您还想添加其他参数,您可以使用换行符 \n 将它们分隔开,如下所示:

PARAM_NAME=$(date +%F)\nANOTHER_PARAM=value

3.实际使用案例

项目A,会传递VERSION选项参数和预定义参数DIRNAMES
在这里插入图片描述
在这里插入图片描述
项目B

import java.text.SimpleDateFormat
import java.util.Date

pipeline {
	agent none
	environment {
        createdir = getVERSION()
        dirname = "${params.DIRNAMES}"
    }
	stages {
		stage('初始化') {
			agent { label "10.101.11.55" }
		    steps {
            script {
              wrap([$class: 'BuildUser']) {
                buildName "#${BUILD_NUMBER}_${BUILD_USER}"
              }
			}
			cleanWs()
		    }
		}
		stage('上传到文档管理系统') {
            agent { label "10.101.11.55" }
            steps {
                script {
                    sh'''
					
					#软链接
                    #cd $WORKSPACE/
                    #ln -s /jenkins/product/${dirname}/${createdir} ./
                    #ls $WORKSPACE/
                    
                    echo $createdir
                    echo $dirname
					
                    '''
                }
            }
        }
	}
}

def getVERSION() {
    if (params.VERSION && !params.VERSION.trim().isEmpty()){
        return params.VERSION
    } else {
        def dateFormat = new SimpleDateFormat("yyyyMMdd")
        return dateFormat.format(new Date())
    }
}
def uploadFolder(url,folder,dirname){
    def files = findFiles(glob: "$folder")
    for(file in files){
        echo file.path
        def path = file.path;
        path = path.replace(file.name,"");
        echo path
        sh 'curl -i -X POST "' + "$url" + '" -H "Content-Type: multipart/form-data" -F "file=@' + file.path + '" -F "user=test" -F "userName=test" -F "path=${dirname}/' + path + '" '
    }
}
更多推荐

企业电子招标采购系统源码之从供应商管理到采购招投标、采购合同、采购执行的全过程数字化管理

功能描述1、门户管理:所有用户可在门户页面查看所有的公告信息及相关的通知信息。主要板块包含:招标公告、非招标公告、系统通知、政策法规。2、立项管理:企业用户可对需要采购的项目进行立项申请,并提交审批,查看所有的立项信息。主要功能包含:招标立项申请、非招标立项申请、采购立项管理。3、采购项目管理:可对项目采购过程全流程管

【Linux学习笔记】 - 常用指令学习及其验证(上)

前言:本文主要记录对Linux常用指令的使用验证。环境为阿里云服务器CentOS7.9。关于环境如何搭建等问题,大家可到同平台等各大资源网进行搜索学习,本文不再赘述。由于本人对Linux学习程度尚且较浅,本文仅介绍验证常用指令的常用功能,可能无法展现指令及附带选项的所有功能,大家若想对相关指令内容有更全貌的了解还有劳搜

【Django】掌握models.py模型文件的使用

原文作者:我辈李想版权声明:文章原创,转载时请务必加上原文超链接、作者信息和本声明。文章目录前言一、models类继承(一)创建apps文件夹(二)settings.py文件配置(三)新建BaseModel(四)项目中调用二、时间字段(一)时间字段(二)默认时间(三)时间字段允许为空三、选择字段(枚举)(一)选择的基础

用Python实现链式调用

嗨喽,大家好呀~这里是爱看美女的茜茜呐我们在使用Django的models查询数据库时,可以看到有这种写法:formapp.modelsimportXXXquery=XXX.objects.all()query=query.filter(name=123,age=456).filter(salary=999)在这种写法

RHCE——二十、Ansible及安装与配置

Ansible一、自动化运维的背景运维自动化二、自动化运维的体系结构及组成1、系统预备2、配置管理3、监控报警4、常用工具三、自动化运维的发展概述1、运维工作内容分类2、运维自动化标准化2.1物理设备层面2.2操作系统层面2.3应用服务层面2.4运维操作层面四、Ansible的介绍1、什么是Ansible1.1Ansi

睿趣科技:抖音开店的操作流程有哪些

随着社交媒体的兴起,抖音已经成为了一款备受欢迎的短视频分享平台。许多人看到了在抖音上开店的商机,因此抖音开店也逐渐成为了一种新兴的商业模式。那么,抖音开店的操作流程究竟有哪些呢?下面将为您详细介绍。第一步:选定产品和目标市场在开店之前,您需要先确定您要销售的产品或服务以及目标市场。了解您的受众群体是谁,他们的需求是什么

【微信小程序】最新隐私弹窗组件

程序员何苦为难程序员微信小程序又发布了新一波政策就是获取头像昵称位置啥啥各种用户信息的时候都需要先搞个弹窗让用户确认才行小程序用户隐私保护指引内容介绍必须跟上啊咱公司的大佬马上搞了个组件贴出来学习一下顺便给大家参考<!--components/privacy/privacy.wxml--><!--隐私弹窗--><vie

通过API爬取到的淘宝商品详情数据展示(api测试入口)

API名称:item_get响应数据item:{num_iid:"698291711589",title:"美洋MEIYANG【现货】大嫂的西装内有乾坤率性撞色TR垫肩直筒西服",desc_short:"",price:439.12,total_price:0,suggestive_price:0,orginal_pr

山洪灾害监测预警系统解决方案

一、方案背景近几年我国频繁发生山洪灾害现象,造成大量的人员伤亡,使得洪涝灾害死亡总人数呈上升趋势,群死群伤事件时有发生。为了提高山洪灾害监测预警能力,加强灾害发生时的快速反应能力,我司研发出了山洪灾害监测预警系统设备,它具有技术先进、功能完美、应用成熟等特点。在近年汛期发挥了显著的防洪减灾的效益,有效减少了山洪灾害造成

SQLBackupAndFTP 数据库定时备份工具介绍

今天给大家推荐推荐一款非常实用的数据库定时备份工具,大神必备!一、SQLBackupAndFTP是什么?SQLBackupAndFTP是一款用于备份SQLServer、MySQL和PostgreSQLServer数据库的实用软件,执行定期的完整备份、差异备份和事务日志备份,备份完成后产生的备份压缩包文件可以将它们存储在

​Segment-and-Track Anything——通用智能视频分割、跟踪、编辑算法解读与源码部署

一、万物分割随着Meta发布的SegmentAnythingModel(万物分割)的论文并开源了相关的算法,我们可以从中看到,SAM与GPT-4类似,这篇论文的目标是(零样本)分割一切,将自然语言处理(NLP)的提示范式引入了计算机视觉(CV)领域,为CV基础模型提供了更广泛的支持和深度研究的机会。SegmentAny

热文推荐