Jenkins 带参数执行shell脚本
创始人
2024-03-14 10:14:01
0次

日常工作中经常会手动部署或者自动触发部署一些项目,可以用Jenkins来执行,方便记录以及可视化。

安装参数化插件

  1. 进入0.0.0.0:8080 分别选择 Manage Jenkins->Manage Plugins进入安装插件界面,选择Available plugins查找可用的插件
  2. 查找Parameterized Trigger插件,并且下载安装,等待下载完成

![image.png](https://img-blog.csdnimg.cn/img_convert/9fd51e5b0a37db9f6e59502aeab90b16.png#averageHue=#f3edd5&clientId=u8cc43884-a450-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=435&id=u7f41eac6&margin=[object Object]&name=image.png&originHeight=435&originWidth=938&originalType=binary&ratio=1&rotation=0&showTitle=false&size=40300&status=done&style=none&taskId=ue11f296c-91e3-46b8-8e06-587f9fd9a76&title=&width=938)

参数化构建指南

Jenkins允许我们将参数传递到项目中。我们有多种构建参数可供选择,只要下载对应插件就能实现,比如git分支名称、主机名或者端口等等。

添加参数

Jenkins 支持参数化构建或者Pipeline,我们只需要开启常规设置中的This project isparameterized->Add Parameter
![image.png](https://img-blog.csdnimg.cn/img_convert/92a4e022199575acb5b32ca236b8272e.png#averageHue=#fcfafa&clientId=u8cc43884-a450-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=391&id=uf30fb796&margin=[object Object]&name=image.png&originHeight=391&originWidth=895&originalType=binary&ratio=1&rotation=0&showTitle=false&size=33732&status=done&style=none&taskId=u46ee0e27-838f-49df-9f71-901de201971&title=&width=895)
可以从上图看到可供选择的参数很多,这边选择Boolean Parameter参数
![image.png](https://img-blog.csdnimg.cn/img_convert/1786b46d9df7bdf4e0bbde292bb4fb64.png#averageHue=#fefefe&clientId=u8cc43884-a450-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=537&id=u6a4f980f&margin=[object Object]&name=image.png&originHeight=537&originWidth=769&originalType=binary&ratio=1&rotation=0&showTitle=false&size=29673&status=done&style=none&taskId=u8891b56a-67ff-4ce2-ba3d-71995769a23&title=&width=769)
其中有几个信息:

  • 名称:参数变量名称
  • 默认值:用户没指定时将使用默认值
  • 描述: 描述如何使用该参数

单个Jenkins项目可以有多个参数。唯一的限制是参数名必须不同于系统参数名,而且是唯一的

使用参数

我们可以在常规设置中使用该参数,也可以在shell脚本中使用参数。
假设我们现在有一个名为gitTag的构建参数,在常用设置里可以这样访问参数。
![image.png](https://img-blog.csdnimg.cn/img_convert/82ebedb0ef69e4197353e3afbc9413ae.png#averageHue=#fefefe&clientId=u8cc43884-a450-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=213&id=ue31143ac&margin=[object Object]&name=image.png&originHeight=213&originWidth=701&originalType=binary&ratio=1&rotation=0&showTitle=false&size=14380&status=done&style=none&taskId=ue76a6cdd-cae7-4443-9cb5-9ce9f03b541&title=&width=701)

${gitTag}

在shell脚本中我们可以使用shell语法直接访问该参数。
![image.png](https://img-blog.csdnimg.cn/img_convert/c319d9d699f384ae436eea70cd3649a2.png#averageHue=#fefefe&clientId=u8cc43884-a450-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=303&id=u8b20fd65&margin=[object Object]&name=image.png&originHeight=303&originWidth=696&originalType=binary&ratio=1&rotation=0&showTitle=false&size=15366&status=done&style=none&taskId=uec50e591-d79e-45d2-bbaa-b48fa5e7756&title=&width=696)

$ echo $gitTag

Reference:

https://www.baeldung.com/ops/jenkins-parameterized-builds

相关内容

热门资讯

前端-session、jwt 目录:   (1)session (2&#x...
linux入门---制作进度条 了解缓冲区 我们首先来看看下面的操作: 我们首先创建了一个文件并在这个文件里面添加了...
关于测试,我发现了哪些新大陆 关于测试 平常也只是听说过一些关于测试的术语,但并没有使用过测试工具。偶然看到编程老师...
前缀和与对数器与二分法 1. 前缀和 假设有一个数组,我们想大量频繁的去访问L到R这个区间的和,...
nodejs:本地安装nvm实... 一、背景-使用不同版本node的原因 vue3+ts、nuxt3版本,node...
JAVA集合知识整理 Java集合知识整理 HashMap相关 HashMap的底层数据结构:jdk1.8之...
无刷直流电机介绍及单片机控制实... 无刷直流电机介绍及单片机控制实例前言基本概念优势与劣势使用寿命基本结构使用单片机控制实例电子调速器&...
fwdiary(2) dp2 1.传纸条  AcWing 275. 传纸条 - AcWing 走两条路,走一条最大的...
常用的DOS命令 常用的DOS命令 DOS(Disk Operating System,磁...
<C++> 类和对象(下) 1.const成员函数将const修饰的“成员函数”称之为const成员函数,cons...