目录
- pipeline utility steps 介绍
- pipeline utility steps 主要功能
- pipeline utility steps 安装
- 使用示例
-
- findFiles 查找文件
- nodesByLabel 列出节点
- prependToFile 创建文件&追加内容
- readCSV 读取 csv 文件
- readJSON 读取 JSON 文件
- readManifest: 阅读 Jar 清单
- readMavenPom 读取maven项目文件
- readProperties 读取属性文件
- readYaml 读取 yaml 文件
- tar 创建 Tar 文件
- zip:创建 Zip 文件
- tee 将结果写入文件
- touch 创建文件
- untar 解压 Tar 文件
- unzip 解压 Zip 文件
- writeCSV 写 CSV文件
- writeJSON 写 JSON 文件
- writeYaml 写 yaml 文件
- 条件执行
pipeline utility steps 介绍
更多使用方法尽在《早起鸟 - 鸟书:https://birdbook.com.cn》
Pipeline Utility Steps
插件是 Jenkins 中的一款强大工具,旨在为 Jenkins Pipelines 提供一系列实用的步骤(steps),以增强和简化 Pipeline 的脚本编写过程。该插件通过引入多种预定义的步骤,使得在执行复杂任务时更加灵活和高效。
pipeline utility steps 主要功能
Pipeline Utility Steps
插件提供的功能包括但不限于:
-
文件和文本操作: 提供读取、写入、查找文件等步骤,如
readFile
,writeFile
,findFiles
,readProperties
,readJSON
等 -
条件判断和循环: 包括条件执行(
conditionalStep
)、循环执行(parallel
,stage
结合when
表达式)等步骤,用于实现更复杂的逻辑控制流 -
网络和系统操作: 如
curl
和wget
步骤用于网络请求,isUnix
用于判断操作系统类型等 -
暂停和时间限制:
pause
步骤可暂停 Pipeline 执行,等待特定事件或人工干预;timeout
步骤则为步骤或整个 Pipeline 设置时间限制 -
环境变量和参数管理: 提供如
environmentVariables
和parameters
步骤,用于定义和管理 Pipeline 的环境变量和参数 -
通知和日志记录: 如
slackSend
用于发送 Slack 通知,echo
用于输出信息至控制台 -
Maven 和 Gradle 项目支持: 包括读取 Maven POM 文件和 Gradle 构建脚本的能力
使用示例
下面是一些使用 Pipeline Utility Steps
插件中步骤的示例:
findFiles
查找文件
在当前工作目录中查找文件。此步骤返回一个文件信息对象数组,您可以在以下示例中看到其属性。
def files = findFiles(glob: '**/TEST-*.xml') echo """${files[0].name} ${files[0].path} ${files[0].directory} ${files[0].length} ${files[0].lastModified}"""
- excludes : String(可选项)
- glob : String(可选项) 应匹配的文件路径的Ant 样式模式。如果设置了此属性,则将搜索当前工作目录的所有后代以查找匹配项并返回,如果省略,则仅返回目录的直接后代。
案例
nodesByLabel
列出节点
按标签列出节点,默认排除离线节点。
nodesByLabel
是一个实用步骤,用于根据标签动态选择节点(即 Jenkins 代理)。这在 Pipeline 中特别有用,当你需要在运行时基于条件或变量选择具有特定标签的节点时。
nodesByLabel
步骤返回一个节点列表,这些节点匹配所提供的标签表达式。你可以在 Pipeline 的不同阶段使用这些节点来执行构建任务。这使得在多节点 Jenkins 环境中实现高级的资源分配和负载平衡成为可能。
node
返回具有给定标签的名称 数组。
label : String
offline : boolean
(可选项)
案例
pipeline {
agent any
environment {
selectedNodes = ""
}
stages {
stage('Select Node') {
agent {
label 'master'
}
steps {
script {
selectedNodes = nodesByLabel('label-dev')
println "Selected nodes: ${selectedNodes}"
}
}
}
stage('Execute on Nodes') {
agent {
node {
label "${selectedNodes}"
}
}
steps {
echo 'Executing on selected node...'
}
}
}
}
在上述示例中,nodesByLabel
被用于在 Select Node
阶段打印出所有匹配特定标签表达式的节点。然后,在 Execute on Nodes
阶段,Pipeline 将在由参数 selectedNodes
指定的节点上执行步骤。
::: warning
你可能需要将 'label-dev'
替换为你的 Jenkins 环境中实际存在的标签表达式,
:::