jenkins 插件 pipeline utility steps 对本地 yaml\json\ini\config 等类型文件的读写操作案例

目录

pipeline utility steps 介绍

更多使用方法尽在《早起鸟 - 鸟书:https://birdbook.com.cn》
Pipeline Utility Steps 插件是 Jenkins 中的一款强大工具,旨在为 Jenkins Pipelines 提供一系列实用的步骤(steps),以增强和简化 Pipeline 的脚本编写过程。该插件通过引入多种预定义的步骤,使得在执行复杂任务时更加灵活和高效。

pipeline utility steps 主要功能

Pipeline Utility Steps 插件提供的功能包括但不限于:

  1. 文件和文本操作: 提供读取、写入、查找文件等步骤,如 readFile, writeFile, findFiles, readProperties, readJSON

  2. 条件判断和循环: 包括条件执行(conditionalStep)、循环执行(parallel, stage 结合 when 表达式)等步骤,用于实现更复杂的逻辑控制流

  3. 网络和系统操作: 如 curlwget 步骤用于网络请求,isUnix 用于判断操作系统类型等

  4. 暂停和时间限制: pause 步骤可暂停 Pipeline 执行,等待特定事件或人工干预;timeout 步骤则为步骤或整个 Pipeline 设置时间限制

  5. 环境变量和参数管理: 提供如 environmentVariablesparameters 步骤,用于定义和管理 Pipeline 的环境变量和参数

  6. 通知和日志记录: 如 slackSend 用于发送 Slack 通知,echo 用于输出信息至控制台

  7. 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 环境中实际存在的标签表达式,

:::

prependToFile 创建文件&追加内容

更多使用方法尽在《早起鸟 - 鸟书:https://birdbook.com.cn》

  • 19
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值