DevOps(十五)如何创建参数化的Jenkins Job

一、Jenkins参数化

在Jenkins中创建参数化的Job允许你在构建过程中动态输入一些值,这样可以让构建过程更加灵活和通用。以下是创建参数化Jenkins Job的步骤:

1、 创建新的Job

  • 登录到Jenkins控制台。
  • 点击左侧的“新建任务”或“Create new jobs”。
  • 输入任务名称,选择“构建一个自由风格的软件项目(Freestyle project)”,然后点击“确定”。

2、配置参数化构建

  • 在项目配置页面,勾选“这是一个参数化的构建过程(This project is parameterized)”。

  • 点击“添加参数”按钮,选择你需要的参数类型。Jenkins支持多种类型的参数:

    为每个参数填写“名称”和“描述”,如果是选择参数,还需要填写的选项。

    • 字符串参数(String Parameter):允许输入文本字符串。
    • 布尔值参数(Boolean Parameter):提供一个勾选框。
    • 选择参数(Choice Parameter):从下拉列表中选择一个值。
    • 文件参数(File Parameter):允许上传文件。
    • 密码参数(Password Parameter):用于输入密码或任何应该被隐藏的信息,输入将被加密存储。

3、在构建脚本中使用参数

在Job的构建环节中使用这些参数。如果你使用Shell脚本或Windows批处理脚本,可以直接通过环境变量的方式使用这些参数,例如在Shell脚本中:

echo "The selected option is $PARAM_NAME"

其中PARAM_NAME是你定义的参数名称。

4、 保存并运行

保存你的Job配置。现在,每当你运行这个Job时,Jenkins都会首先提示你输入或选择参数。

5、 触发构建

  • 运行Job时,点击“立即构建(Build with Parameters)”,根据定义的参数输入相应的值。
  • 查看构建输出,确认参数的使用是否正确。

6、额外提示

  • 参数化触发:你可以使用Jenkins的其他插件如“Parameterized Trigger plugin”来从一个Job触发另一个参数化的Job。
  • 环境变量:了解Jenkins中如何处理环境变量,这将帮助你更好地管理和使用参数。

通过以上步骤,你可以创建一个灵活的参数化Jenkins Job,根据不同的输入执行不同的构建任务,这对于管理具有多种配置选项的项目非常有用。

二、常用参数示例

下面我将为每种常见的参数类型提供一个具体的例子,这些例子将帮助你更好地理解每种参数的用途和配置方式。

1. 字符串参数(String Parameter)

用途:用于输入任何文本,如用户名、路径或任何需要的字符串。
示例

  • 名称GREETING
  • 描述输入问候语
  • 默认值Hello, world!

在构建脚本中使用:

echo $GREETING

保存后,运行构建成功后我们看输出日志,看到有打印

Started by user root
Running as SYSTEM
Building in workspace /var/lib/jenkins/workspace/new
[new] $ /bin/sh -xe /tmp/jenkins16948695684568537043.sh
+ echo Hello, world!
Hello, world!
Finished: SUCCESS

2. 布尔值参数(Boolean Parameter)

用途:通常用于启用或禁用构建中的某个功能。
示例

  • 名称INCLUDE_TESTS
  • 描述是否在构建中包含测试
  • 默认值:选中或不选

在构建脚本中使用:

if [ "$INCLUDE_TESTS" = "true" ]; then
    echo "Running tests..."
    # 运行测试脚本的命令
else
    echo "Skipping tests..."
fi

3. 选择参数(Choice Parameter)

用途:从预定义列表中选择一个选项,如环境名称、版本号等。
示例

  • 名称ENVIRONMENT
  • 描述选择部署环境
  • 选项
    • Development
    • Staging
    • Production

在构建脚本中使用:

echo "Deploying to $ENVIRONMENT environment..."

4. 文件参数(File Parameter)

用途:允许用户上传一个文件,通常用于上传配置文件或应用数据。
示例

  • 名称CONFIG_FILE
  • 描述上传配置文件

在构建脚本中使用:

echo "Using configuration file at $CONFIG_FILE"
# 使用文件的命令

5. 密码参数(Password Parameter)

用途:安全地输入密码或其他敏感信息,输入内容会被加密存储,并在Jenkins界面中显示为星号。
示例

  • 名称API_KEY
  • 描述输入你的API密钥
  • 默认值(留空)

在构建脚本中使用:

echo "Using API key for authentication"
# 使用API密钥的命令

通过这些具体的例子,你可以看到不同类型的参数如何在Jenkins中配置和使用。根据你的构建需求选择合适的参数类型,可以使你的Jenkins Job更加灵活和强大。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/578518.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

RocketMQ 部署

RocketMQ 部署 1、安装依赖(Java) [rootMicroservices ~]# mkdir -p /data/businessServer/ [rootMicroservices ~]# cd /data/businessServer/# 获取安装包(下载较慢) [rootMicroservices businessServer]# wget https://githu…

【Redis 开发】(Feed流的模式,GEO数据结构,BitMap,HyperLogLog)

Redis FeedTimeline GEOBitMapHyperLogLog Feed Feed流产品有两种常见模式: Timeline:不做内容筛选,简单的按照内容发布时间排序,常用于好友或关注。例如朋友圈 优点:信息全面,不会有缺失。并且实现也相对简单 缺点:信息噪音较多&#xff0c…

「51媒体」城市推介会,地方旅游推荐,怎么做好媒体宣传

传媒如春雨,润物细无声,大家好,我是51媒体网胡老师。 城市推介会和地方旅游推荐是城市形象宣传的重要组成部分,通过有效的媒体宣传可以提升城市的知名度和吸引力。: 一,活动内容层面: 突出亮点…

公认最好的随身WiFi的格行5G随身WiFi真实测评!格行5G和纽曼5G随身WiFi哪个好?5G随身WiFi推荐第一名

随着5G信号基站的铺设逐渐完善,各大通讯移动公司也都适时的推出了属于自己的5G随身WiFi。其中老牌企业纽曼与格行的5G随身WiFi最受大家的欢迎。那么二者到底谁才是5G设备中的王者呢?今天就做一个全面测评。 一、首先是颜值党们最为关注的外观问题 纽曼5…

Java中Synchronized的锁升级

锁升级过程 当JVM启动后,一个共享资源对象直到有线程第一个访问时,这段时间内是处于无锁状态,对象头的Markword里偏向锁标识位是0,锁标识位是01。 Tips:当一个共享资源首次被某个线程访问时,锁就会从无锁状…

记录AE学习查漏补缺(持续补充中。。。)

记录AE学习查漏补缺 常用win下截图WinShifts导入AI/PS工程文件将图层上移一个位置或者下移一个位置展示/关闭图层标线/标度放大面板适应屏幕大小 CtrlAltF 关键帧熟记关键参数移动锚点位置加选一个关键参数快速回到上下一帧隐藏/显示图层关键帧拉长缩短关键帧按着鼠标左键不松手…

新款闯关游戏制作

目前制作4关, cpp. #include "c.h" #include "Level1.h" using namespace std; int main() {srand(time(0)); initgraph(600, 600); BeginBatchDraw();IMAGE a; loadimage(&a, _T("1.jpg")); putimage(0, 0, &a);setbkmode(TRANSPAREN…

【Vue】如何创建一个Vue-cli程序

一、准备工作 1、下载Node.js 官网地址 https://nodejs.org/en 2、查看版本 cmd下通过node-v,查看版本号; cmd下通过npm-v,查看是否打印版本号。 3、安装淘宝加速器 npm install cnpm -g 4、安装Vue-cli cnpm install vue-cli -g 二、创建Vue程序 1、创建一个V…

【数据分析面试】32.矩阵元素求和 (Python: for…in…语句)

题目:矩阵元素求和 (Python) 假设给定一个整数矩阵。你的任务是编写一个函数,返回矩阵中所有元素的和。 示例 1: 输入: matrix [[1, 2, 3], [4, 5, 6], [7, 8, 9]]输出: matrix_sum(matrix) -> 45…

Android 12 Starting window的添加与移除

添加: 04-13 16:29:55.931 2944 7259 D jinyanmeistart: at com.android.server.wm.StartingSurfaceController.createSplashScreenStartingSurface(StartingSurfaceController.java:87) 04-13 16:29:55.931 2944 7259 D jinyanmeistart: at com.android.server.wm.…

记录些 LLM 常见的问题和解析

1、提示校准为什么有助于减轻基于提示的学习中的偏见? 提示校准包括调整提示,尽量减少产生的输出中的偏差。 其他:微调修改模型本身,而数据增强扩展训练数据,梯度裁剪防止在训练期间爆炸梯度。 2、是否需要为所有基于文本的LL…

必应bing国内广告开户注册教程!

今天搜索引擎广告成为企业推广产品与服务、提升品牌知名度的重要渠道之一。作为全球第二大搜索引擎,必应Bing凭借其高质量的用户群体和广泛的国际覆盖,为广告主提供了独特的市场机遇。在中国,虽然必应的市场份额相对较小,但对于寻…

鸿蒙官网学习3

鸿蒙官网学习3 每日小提示项目的模块类型跨设备预览调试阶段应用的替换方式有两种 打开老的demo工程报错UIAbility 每日小提示 项目的模块类型 moduleType分为三种,只有1,2的模块支持直接调试和运行 entryfeaturehar 跨设备预览 需要手动在config.j…

在开发软件以便未来本地化到其他语言时需要考虑的事项

我们准备了一份关于开发软件以便未来本地化到其他语言时需要考虑的事项的简要指南。这非常重要,因为您的软件在其他国家市场上的销售可能会带来比本国市场更多的收入。 在开发软件时考虑到未来本地化到其他语言的一些重要方面包括: 设计多语言支持&…

C++—DAY4

在Complex类的基础上&#xff0c;完成^&#xff0c;<<&#xff0c;>>&#xff0c;~运算符的重载 #include <iostream>using namespace std; class Complex {int rel;int vir; public:Complex(){}Complex(int rel,int vir):rel(rel),vir(vir){}void show(){c…

【每日刷题】Day26

【每日刷题】Day26 &#x1f955;个人主页&#xff1a;开敲&#x1f349; &#x1f525;所属专栏&#xff1a;每日刷题&#x1f34d; &#x1f33c;文章目录&#x1f33c; 1. [NOIP2008]笨小猴_牛客题霸_牛客网 (nowcoder.com) 2. 添加逗号_牛客题霸_牛客网 (nowcoder.com) …

windows/linux 安装php的 sql server 扩展

Windowsphpstudyphp7.1 下载&#xff1a;ODBC、下载php 的sql server 扩展 路径&#xff1a;下载地址 版本&#xff1a;我的是7.1 对应的ODBC 是13&#xff0c;php 的sql server 扩展为4.3 安装&#xff1a;msodbcsql 直接安装、sqlsrv43 安装完把 扩展复制到php71 的扩展文…

Python脚本抢票【笔记】

Python脚本抢票【笔记】 前言版权推荐Python脚本抢票【Python】microsoft edge驱动器下载以及使用最后 前言 2024-4-17 18:19:15 以下内容源自《【笔记】》 仅供学习交流使用 版权 禁止其他平台发布时删除以下此话 本文首次发布于CSDN平台 作者是CSDN日星月云 博客主页是ht…

Unity WebGL 转换微信小游戏方案

方案特点 保持原引擎工具链与技术栈无需重写游戏核心逻辑&#xff0c;支持大部分第三方插件由转换工具与微信小游戏运行环境保证适配兼容&#xff0c;保持较高还原度微信小游戏平台能力以C# SDK方式提供给开发者&#xff0c;快速对接平台开放能力 技术原理 Unity的BuildTarget支…

【RocketMQ知识点总结-1】

文章目录 RocketMQ介绍RocketMQ架构&#xff1a;NameServer:BrokerProducerTopic&#xff08;主题&#xff09;&#xff1a;Queue&#xff08;队列&#xff09;&#xff1a;Message&#xff08;消息&#xff09;&#xff1a; RocketMQ的工作流程RocketMQ的使用场景异步消息传递…