Вызов функций в jenkinsfile с переменными - PullRequest
0 голосов
/ 28 июня 2018

Мне нужна помощь в вызове функции в Jenkinsfile вместе с переменной.
Я создал функцию bash для копирования определенных результатов теста из ведомого jenkins в каталог userContent мастера Jenkins master.
Я хочу использовать эту функцию в разных заданиях. Разные задания могут иметь разные пути к отчетам, вместо жесткого указания пути внутри функции, я хочу использовать переменную в 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 голосов
/ 28 июня 2018

Полагаю, вы хотите скопировать артефакт Дженкинса Раба в мастер. Вы можете использовать следующий плагин 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']);
         }
     }
 }
...