从内联函数加载声明性管道

时间:2019-09-04 12:17:39

标签: jenkins jenkins-pipeline jenkins-declarative-pipeline

我已经看到了有关如何从共享库中加载声明性管线的示例: https://jenkins.io/doc/book/pipeline/shared-libraries/#defining-declarative-pipelines

但是我想将管道作为内联函数:


def linux_platform = "U1604_x64_gcc54"
def windows_platform = "WIN10_x64_vc141"

properties(
    [
        parameters(
            [
                choice(name: 'platform', choices: [linux_platform, windows_platform], description: 'Platform'),
                string(defaultValue: "-1", description: 'Upsteam Project build number', name: 'upsteam_project_build_number')
            ]
        )
    ]
)
if(params.platform == windows_platform) {
    windows(params.upsteam_project_build_number)
}

def windows(upsteam_project_build_number) {
    pipeline {
        agent {
            label windows_platform
        }
        environment {
            WINDOWS_ENV = "C:/my_path"
        }        
        stages {
            stage('Do stuff') {
                steps{
                    echo "Doing stuff"                         
                }
            }
        }
        post {                        
            failure {
                job_status_mail(currentBuild.currentResult, JOB_NAME, BUILD_NUMBER, BUILD_URL)
            }
            fixed {
                job_status_mail("fixed", JOB_NAME, BUILD_NUMBER, BUILD_URL)
            }      
        }
    }
}

出现以下错误: java.lang.NoSuchMethodError: No such DSL method 'agent' found among steps

我的语法有多错误吗?还是无法从inlne函数加载管道?

我正在跑步:

  • 詹金斯版2.138.4
  • 声明性管道插件版本。 1.3.8

0 个答案:

没有答案