用变量调用jenkinsfile中的函数

时间:2018-06-28 05:50:12

标签: jenkins groovy jenkins-pipeline

在调用Jenkinsfile中的函数以及变量时,我需要一些帮助。
我创建了一个bash函数,用于将某些测试结果从jenkins从属服务器复制到Jenkins主服务器的userContent目录。
我想在差异作业中使用此功能。不同的作业可能具有不同的报告路径,而不是对函数内部的路径进行硬编码,我想使用jenkinsfile中的变量与函数一起传递。
这是我的功能:

def call() {
  sh '''
    mkdir -p $JOB_NAME
    foldername="$BUILD_NUMBER.$(date '+%d-%m-%Y')"
    echo ${foldername}
    mkdir -p $JOB_NAME/${foldername}
    pwd
    reportPath=""
    dest="./$JOB_NAME/${foldername}"
    cp -R ${reportPath}/*.xml ${dest}
    scp -r $JOB_NAME jenkins@master_ip:/var/lib/jenkins/userContent/
    '''   
}

我如何在jenkinsfile中调用该函数,并在报告路径中添加变量?

1 个答案:

答案 0 :(得分:0)

我猜您想将Jenkins Slave工件复制到master。您可以使用以下插件https://wiki.jenkins.io/display/JENKINS/Copy+Artifact+Plugin

对于声明性管道作业,可以使用以下方法:

stages {
 stage('Copy Archive') {
     steps {
         script {
             step ([$class: 'CopyArtifact',
             projectName: 'Create_archive',
             filter: "packages/infra*.zip",
             target: 'Infra']);
         }
     }
 }