You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

求基于文件比较结果控制Jenkins Pipeline执行的正确脚本

符合需求的Jenkins Pipeline脚本

方案1:捕获输出判断

直接匹配命令输出的"Yes"/"No"来控制流水线走向:

Pipeline脚本

pipeline {
    agent any

    stages {
        stage('文件对比验证') {
            steps {
                script {
                    // 赋予test.sh可执行权限(若未预先设置)
                    sh 'chmod +x /jenkins/test.sh'
                    
                    // 执行脚本并捕获输出
                    def verifyResult = sh(
                        script: '/jenkins/test.sh',
                        returnStdout: true
                    ).trim()

                    if (verifyResult == 'Yes') {
                        echo "文件验证通过,流水线继续执行"
                    } else {
                        error "文件验证失败,输出为${verifyResult},流水线中止"
                    }
                }
            }
        }

        stage('后续执行阶段') {
            steps {
                echo "开始执行后续业务步骤..."
            }
        }
    }
}

/jenkins/test.sh内容

#!/bin/bash
test "$(comm -23 <(sort -u /jenkins/OUTPUT1.txt) <(sort -u /jenkins/OUTPUT2.txt) | wc -l)" = "$(cat /jenkins/OUTPUT2.txt | wc -l)" && echo Yes || echo No

方案2:利用命令退出码(更简洁)

修改test.sh让验证失败时返回非0状态码,Jenkins会自动识别失败并中止流水线:

修改后的test.sh

#!/bin/bash
if test "$(comm -23 <(sort -u /jenkins/OUTPUT1.txt) <(sort -u /jenkins/OUTPUT2.txt) | wc -l)" = "$(cat /jenkins/OUTPUT2.txt | wc -l)"; then
    echo Yes
    exit 0
else
    echo No
    exit 1
fi

简化版Pipeline脚本

pipeline {
    agent any

    stages {
        stage('文件对比验证') {
            steps {
                sh '''
                    chmod +x /jenkins/test.sh
                    /jenkins/test.sh
                '''
                echo "文件验证通过,流水线继续执行"
            }
        }

        stage('后续执行阶段') {
            steps {
                echo "开始执行后续业务步骤..."
            }
        }
    }
}

关键说明

  • 确保/jenkins/OUTPUT1.txt和/jenkins/OUTPUT2.txt文件存在且Jenkins有权限读取
  • chmod +x步骤可根据实际情况省略,若test.sh已预先设置可执行权限
  • 方案2更贴合Jenkins的失败处理逻辑,无需额外的输出判断,依赖命令本身的退出码即可控制流水线状态

内容的提问来源于stack exchange,提问作者HEMANTH SAI KATKOJU

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.24 18:24:26