Jenkins参数化构建详解(This project is parameterized)

ops/2024/12/14 22:16:00/

本文详细介绍了Jenkins中不同类型的参数化构建方法,包括字符串、选项、多行文本、布尔值和git分支参数的配置,以及如何使用ActiveChoiceParameter实现动态获取参数选项。通过示例展示了传统方法和声明式pipeline的语法

文章目录

    • 1. Jenkins的参数化构建
      • 1.1.如何使项目参数化
        • 1.1.1.打开项目配置‌:
        • 1.1.2.‌启用参数化构建‌:
        • 1.1.3.‌添加参数‌:
        • 1.1.4.‌保存配置‌:
        • 1.1.5.使用参数‌:
        • 1.1.6.‌触发构建时传递参数‌:
      • 1.2.参数化构建的好处
    • 2 .参数配置介绍
      • 2 .1. 通用步骤和语法
        • `传统方法步骤`
        • `脚本式语法`
        • `声明式语法`
      • 2 .2. String Parameter(字符串参数)
        • `传统方法步骤`
        • `脚本式pipeline`
        • `声明式pipeline`
        • `注意事项`
      • 2 .3. Choice Parameter(选项参数)
        • `传统方法步骤`
        • `脚本式pipeline`
        • `声明式pipeline`
      • 2 .4. Multi-line String Parameter(多行文本)
        • `传统方法步骤`
        • `脚本式pipeline`
        • `声明式pipeline`
      • 2 .5. Boolean Parameter(布尔类型参数)
        • `传统方法步骤`
        • `脚本式pipeline`
        • `声明式pipeline`
      • 2 .6. List Git Branches(列出git分支)
        • `传统方法步骤`
        • `脚本式pipeline`
        • `声明式pipeline`
      • 2 .7. extendedChoice复选框
        • `传统方法步骤`
        • `脚本式pipeline`

1. Jenkins的参数化构建

Jenkins的参数化构建是一项非常强大的功能,它允许你在触发构建时动态地传递参数给构建过程。这些参数可以影响构建的行为,比如选择不同的分支进行构建、设置环境变量、指定构建版本等。通过参数化构建,你可以使你的Jenkins构建更加灵活和可配置。

1.1.如何使项目参数化

1.1.1.打开项目配置‌:

在Jenkins的Web界面上,找到你想要参数化的项目,点击它的名称进入项目详情页。
点击左侧的“配置”或“Configure”链接来打开项目配置页面。

1.1.2.‌启用参数化构建‌:

在配置页面的“构建”部分或“General”部分(取决于Jenkins的版本和插件),你会看到一个名为“This project is parameterized”或类似的复选框。勾选这个复选框来启用参数化构建。

1.1.3.‌添加参数‌:
  • 启用参数化构建后,你会看到一个“添加参数”或“Add Parameter”的下拉菜单。从这个菜单中选择你想要添加的参数类型。
  • Jenkins提供了多种参数类型,包括字符串参数(String Parameter)、布尔参数(Boolean Parameter)、选择参数(Choice Parameter)、文件参数(File Parameter)等。根据你的需求选择合适的参数类型。
  • 对于每个参数,你需要设置它的名称(Name)和描述(Description),以及根据参数类型设置其他必要的属性,比如默认值、可选值等。
1.1.4.‌保存配置‌:

设置好所有参数后,点击页面底部的“保存”或“Save”按钮来保存你的配置。

1.1.5.使用参数‌:
  • 在构建脚本或Jenkinsfile中,你可以使用这些参数。对于Freestyle项目,你可以在构建步骤中引用参数,比如使用${PARAM_NAME}来引用名为PARAM_NAME的参数。
  • 对于Pipeline项目,你可以在Jenkinsfile中使用params对象来访问参数,比如params.PARAM_NAME。
1.1.6.‌触发构建时传递参数‌:
  • 当你手动触发构建时(比如点击“立即构建”按钮),Jenkins会提示你输入参数的值。
  • 如果你是通过脚本或API触发构建,你也可以在触发时传递参数的值。

1.2.参数化构建的好处

  • 灵活性‌:通过参数化构建,你可以很容易地改变构建的行为,而不需要修改构建脚本或配置。
  • ‌可重用性‌:你可以为不同的构建场景创建不同的参数集,从而重用同一个构建项目。
    ‌- 可维护性‌:将构建逻辑和参数分离,使得构建逻辑更加清晰和易于维护。
    ‌- 安全性‌:通过参数化构建,你可以更安全地管理敏感信息,比如密码和密钥,因为你可以使用Jenkins的凭据插件来安全地存储和传递这些信息。

2 .参数配置介绍

2 .1. 通用步骤和语法

传统方法步骤

在这里插入图片描述

在这里插入图片描述

脚本式语法
timestamps {properties ([parameters ([string(name: 'NEW_BRANCH', defaultValue: '' , description:'', trim: true),choice(choices: ['mysql', 'oracle'], description: '''选择数据库类型''', name: 'DATABASE', trim: true),])])
}

timestamps 会在输出日志前面添加时间戳

参数化内容都放入到parameters ([])里面

多行内容用逗号分隔

声明式语法
pipeline {parameters {			//参数化构建choice choices: ['true', 'false'], description: '测试', name: 'test'string name: 'NEW_BRANCH', defaultValue: '', description:'', trim: true}
}

多行内容用换行符分隔

声明式语法大部分都可以从Jenkins上获取
在这里插入图片描述
在这里插入图片描述

以字符串参数为例

在这里插入图片描述

在这里插入图片描述

2 .2. String Parameter(字符串参数)

在这里插入图片描述

传统方法步骤

在这里插入图片描述

在这里插入图片描述

参数解释:

Name			定义参数的名字,在脚本中可以通过这个名字获取对应的值
Default Value	默认值,即VERSION的默认值为1.0.0
Description		描述信息
Trim the string	去掉值两边的空格,如果值为' 1.0.0 ',那么最终获取到的值为1.0.0
脚本式pipeline
string(name: 'VERSION', defaultValue: '1.0.0' , description:'版本号', trim: true),

注意:取值的方法有两种

println VERSION或者
println params.VERSION
声明式pipeline
parameters {string defaultValue: '1.0.0', description: '版本号', name: 'VERSION', trim: true
}
注意事项
如果没有设置参数名VERSION,那么params.VERSION的值为null如果设置了参数名VERSION,但没有传入值,则params.VERSION的值为空,params.VERSION.size()的值为0

2 .3. Choice Parameter(选项参数)

在这里插入图片描述

传统方法步骤

在这里插入图片描述

参数解释:

Name			定义参数的名字,在脚本中可以通过这个名字获取对应的值
Choices			可选值,每行代表一项可选值
Description		描述信息
脚本式pipeline
choice(choices: ['mysql', 'oracle'], description: '数据库类型', name: 'DB_TYPE'),
声明式pipeline
parameters {choice choices: ['mysql', 'oracle'], description: '数据库类型', name: 'DB_TYPE'
}

2 .4. Multi-line String Parameter(多行文本)

在这里插入图片描述

传统方法步骤

在这里插入图片描述

参数解释:

Name			定义参数的名字,在脚本中可以通过这个名字获取对应的值
Default Value	默认值,即VERSION的默认值为192.168.1.2192.168.1.3
Description		描述信息
脚本式pipeline
text(name: 'K8S_NODE', defaultValue: '192.168.1.2192.168.1.3' , description:'k8s节点IP'),
声明式pipeline
parameters {text defaultValue: '192.168.1.2192.168.1.3', description: 'k8s节点IP', name: 'K8S_NODE'
}

2 .5. Boolean Parameter(布尔类型参数)

在这里插入图片描述

传统方法步骤

在这里插入图片描述

脚本式pipeline
booleanParam(defaultValue: true, description: '是否构建,默认为true', name: 'IS_BUILD'),
声明式pipeline
parameters {booleanParam defaultValue: true, description: '是否构建,默认为true', name: 'IS_BUILD'
}

2 .6. List Git Branches(列出git分支)

依赖插件:List Git Branches Parameter

在这里插入图片描述

在这里插入图片描述

传统方法步骤

在这里插入图片描述

在这里插入图片描述

参数解释:

Name			定义参数的名字,在脚本中可以通过这个名字获取对应的值
Repository URL	git仓库地址
Credentials		凭据(通常为账号密码),可以点击右边的Add进行配置
Parameter Type	可以选分支或Tag,也可以都选
Tag Filter		过滤tag号
Branch Filter	添加过滤规则;只显示dev和hotfix分支。支持扩展正则.*/y?featureY?-.*、.*/hotfix-DEVOPS.V2.*release$、*/DEVOPS.V[1-2]{1}[0-1]{1}*release
Quick Filter	添加搜索功能
脚本式pipeline
listGitBranches(branchFilter: '.*/dev||.*/hotfix.*', credentialsId: 'a2b624d4-567d-4ff2',defaultValue: '', name: 'BRANCH', quickFilterEnabled: true, remoteURL: 'https://gitee.com/liuhaomin/springcloud.git', selectedValue: 'NONE',sortMode: 'DESCENDING_SMART', tagFilter: '*', type: 'PT_BRANCH')

credentialsId,每配置一个凭据就会生成对应的credentialsId,可以到凭据管理处查看

声明式pipeline
parameters {listGitBranches branchFilter: '.*/dev||.*/hotfix.*', credentialsId: 'a2b624d4-567d-4ff2', defaultValue: '', name: 'BRANCH', quickFilterEnabled: true, remoteURL: 'https://gitee.com/liuhaomin/springcloud.git', selectedValue: 'NONE', sortMode: 'NONE', tagFilter: '*', type: 'PT_BRANCH'
}

2 .7. extendedChoice复选框

参考文章:Jenkins 参数化构建(Extended Choice Parameter)
依赖插件:Extended Choice Parameter

在这里插入图片描述

传统方法步骤

在这里插入图片描述

在这里插入图片描述

脚本式pipeline
properties([parameters([extendedChoice(description: '跳过指定的git工程', multiSelectDelimiter: ',', name: 'SKIP_GIT_PRODUCT', quoteValue: false, saveJSONParameterToFile: false,type: 'PT_CHECKBOX', value: 'web,backend,db',defaultValue: 'web',visibleItemCount: 3),]),])

解释:

multiSelectDelimiter	指定分隔符,这里指定的是逗号
type为PT_CHECKBOX		表示复选框
defaultValue			设置默认值
visibleItemCount		界面展示选项行数,默认为5

jenkins harbor安装
Jenkins参数化构建详解(This project is parameterized)


http://www.ppmy.cn/ops/141922.html

相关文章

SpringBoot【十一】mybatis-plus实现多数据源配置,开箱即用!

一、前言🔥 环境说明:Windows10 Idea2021.3.2 Jdk1.8 SpringBoot 2.3.1.RELEASE 正常情况下我们在开发系统的时候都是使用一个数据源,但是由于有些项目同步数据的时候不想造成数据库io消耗压力过大,便会一个项目对应多个数据源…

CentOS7 安装Selenium(使用webdriver_manager自动安装ChromeDriver)

在 CentOS 7 上安装 Selenium 通常涉及几个步骤,包括安装 Python、安装 Selenium 库、安装 WebDriver 以及配置环境。以下是详细的步骤: 1. 安装 Python 和 pip 如果你的系统中还没有安装 Python 和 pip,可以使用以下命令进行安装&#xff…

Git-基础操作命令

目录 Git基础操作命令 case *查看提交日志 log 版本回退 get add . Git基础操作命令 我们创建并且初始化这个仓库以后,我们就要在里面进行操作。 Git 对于文件的增删改查存在几个状态,这些修改状态会随着我们执行Git的命令而发生变化。 untracked、…

stm32 hal使用sysTick定时器非阻塞延时方法

简介 一种在stm32 hal库中实现非阻塞任务处理扫描的方式。 stm32f1xx_it.c /* USER CODE BEGIN 0 */ uint8_t Time_1ms 0; uint8_t Time_10ms 0;/* USER CODE END 0 *//*** brief This function handles System tick timer.*/ void SysTick_Handler(void) {/* USER CODE B…

Java面试八股文(2025最新整理)

Java的特点 Java是一门面向对象的编程语言。面向对象和面向过程的区别参考下一个问题。 Java具有平台独立性和移植性。 Java有一句口号:Write once, run anywhere,一次编写、到处运行。这也是Java的魅力所在。而实现这种特性的正是Java虚拟机JVM。已编…

JavaScript 原型对象与原型链的魔法与艺术

在JavaScript的世界里,原型对象和原型链是两个非常重要的概念。它们不仅帮助我们理解对象的创建过程,还为我们提供了一种高效的方式来管理共享的属性和方法。本文将深入探讨JavaScript中的原型对象和原型链,包括它们的定义、工作原理以及在实…

高阶函数:JavaScript 编程中的魔法棒

在JavaScript的世界里,高阶函数是一种强大的工具,它允许我们将函数作为参数传递或将函数作为返回值。这种特性使得JavaScript代码更加灵活和强大。本文将深入探讨高阶函数的定义、用法以及在实际项目中的最佳实践,帮助大家更好地理解和应用这…

Yet another PFC(新样式 PFC)

PFC 在依靠简单廉价兼容性而成功的以太网上弄巧成拙,但有 101 种优化它的方法,但代价是交换机越来越复杂。以太网的基因是简单廉价,这体现在以太帧的结构上,以太帧结构决定了交换机的能力上限,这是核心。核心认知不够&…