при использовании общей библиотеки конвейера jenkins параметры функции в sh '' '' '' будут равны нулю - PullRequest
0 голосов
/ 26 июня 2018

/var/coverityCompile.groovy

#!groovy
def java(String DIR) {
    compile_dir="${WORKSPACE}/${DIR}"
    echo "complie_dir:${compile_dir}"
    sh "echo complie_dir:${compile_dir}"
    sh '''
    echo complie_dir:${compile_dir}
    '''
}

/src/org/coverity/JenkinsFile

#!groovy
@Library('shared-library') _
   pipeline {
    agent { label 'dev_ci_env_dm' }
    stages {
        stage('coverity'){
            steps{
                script{
                    coverityCompile.java("DM")
                }

            }
        }
}
}

Журнал Дженкинса будет:

complie_dir:/home/ci/workspace/test_coverity/DM
[Pipeline] sh
[test_coverity] Running shell script
+ echo complie_dir:/home/ci/workspace/test_coverity/DM
complie_dir:/home/ci/workspace/test_coverity/DM
complie_dir:

когда я использую echo "complie_dir:${compile_dir}" и sh "echo complie_dir:${compile_dir}" результат будет напечатан, как и ожидалось. Но когда я использую

sh '''
    echo complie_dir:${compile_dir}
'''

Результат $ {compile_dir} будет нулевым. Теперь я хочу выполнить многострочную оболочку, поэтому есть ли другой способ заменить sh ''' '''?

...