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

Jenkins流水线脚本报错:WorkflowScript第20行期望步骤,求解决

Jenkins流水线编译错误解决(Expected a step)

错误原因

你遇到的org.codehaus.groovy.control.MultipleCompilationErrorsException异常,是因为在stage的根层级直接执行了变量赋值操作。Jenkins流水线的stage结构中,根层级只能放置steps、agent、post这类流水线原生指令,不能直接写Groovy变量赋值这类自定义代码,否则会被当作未知流水线步骤解析,触发"Expected a step"错误。

修正后的流水线代码

有两种可行的修正方式:

方式1:将变量赋值放入steps内的script块

stage('run-python'){
    steps{
        script {
            // 变量赋值必须放在script块中
            status=bat(returnStdout: true, script: 'python ./codes/sample.py')
        }
        echo "$NAME"
        echo "$status"
    }
}

方式2:在stage根层级用script块包裹变量赋值

stage('run-python'){
    script {
        status=bat(returnStdout: true, script: 'python ./codes/sample.py')
    }
    steps{
        echo "$NAME"
        echo "$status"
    }
}

核心说明

Jenkins流水线DSL对代码结构有严格要求:所有非流水线内置步骤的Groovy逻辑(比如变量赋值、循环、条件判断等),都必须包裹在script块中执行,这样流水线引擎才能正确区分原生步骤和自定义Groovy代码。

内容的提问来源于stack exchange,提问作者Mohammad Taghadosi

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 01:35:18