Переменная окружения Jenkins STAGE_NAME имеет значение null - PullRequest
0 голосов
/ 17 октября 2018

В моем конвейере я отправляю сообщение Slack через slackSend.Однако, когда я добавляю переменную окружения env.STAGE_NAME, она возвращает ноль.Я также пытался: ${STAGE_NAME} и ${env.STAGE_NAME}, но они выдают ошибку

Есть идеи, почему это происходит и как ее решить?

Заранее спасибо.

Обновление: добавлен код

node{
    try {
    // send build started notification
        stage("Build start notification"){
            slackSend (color: '#FFFF00', message: "STARTED: Job '${env.STAGE_NAME} ${env.JOB_NAME} [${env.BUILD_NUMBER}]' (${env.BUILD_URL})")
        }
    //reference the sonar tool and start the analysis of the proxy
        stage("SonarQube analysis") {
        withSonarQubeEnv('sonarqube'){
                def sonarScanner = tool name: 'scanner', type: 'hudson.plugins.sonar.MsBuildSQRunnerInstallation'
                bat "${sonarScanner}/bin/sonar-scanner -Dsonar.projectKey=test -Dsonar.sources=apiproxy"
          }
        }
    //wait for webhook from sonarqube. Break build if qyalitygate not ok.
        stage("Quality Gate"){
            timeout(time: 10, unit: 'SECONDS') {
                def qg = waitForQualityGate()
                if (qg.status != 'OK') {
                    error "Pipeline aborted due to quality gate failure: ${qg.status}"
                    slackSend (color: '#FF0000', message: "QualityGate error '${qg.status}")
                }
            }
        }
    //Deploy the apiproxy
        stage ('Build & deploy') {
            withMaven(maven : 'maven_3_5_4'){
                def maven = tool name: 'maven_3_5_4', type: 'maven'
                bat 'mvn clean install -Ptest'
            }
        }
    }
    catch (e){
            slackSend (color: '#FF0000', message: "Failure '${env.STAGE_NAME} ${env.JOB_NAME} [${env.BUILD_NUMBER}]' (${env.BUILD_URL})")
    }
    finally {
    // send build finished notification 
        slackSend (color: '#00FF00', message: """FINISHED: Job "${env.STAGE_NAME} ${env.JOB_NAME} [${env.BUILD_NUMBER}]" (${env.BUILD_URL})""")
    }
}

1 Ответ

0 голосов
/ 19 октября 2018

Попробуйте вместо этого:

finally {
// send build finished notification 
  slackSend (color: '#00FF00', message: """FINISHED: Job "${env.STAGE_NAME} ${env.JOB_NAME} [${env.BUILD_NUMBER}]" (${env.BUILD_URL})""")
}

У вас была проблема с кавычками и проблема интерполяции переменных, насколько я вижу.

...