jenkins - Jenkins STAGE_NAME 环境变量为空
问题描述
在我的管道中,我通过 slackSend 向 Slack 发送消息。但是,当我添加环境变量env.STAGE_NAME
时,它返回 null。我也试过: ${STAGE_NAME}
and ${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})""")
}
}
解决方案
试试这个:
finally {
// send build finished notification
slackSend (color: '#00FF00', message: """FINISHED: Job "${env.STAGE_NAME} ${env.JOB_NAME} [${env.BUILD_NUMBER}]" (${env.BUILD_URL})""")
}
从我所见,您遇到了引用问题和变量插值问题。
推荐阅读
- python - AWS Elastic Beanstalk 运行状况检查问题
- php - Twilio Gather 对 AWS S3 上托管的 PHP 的操作未执行
- angular - Angular Pipe 未使用参数正确转换数据
- android - Android Studio 总是要求下载系统镜像
- ios - 如何自定义 UINavigationBar 的过渡动画
- javascript - Vanilla js-游戏未运行
- java - Java 8 lamada Stream:如何获取属性子集?
- sql - 在 LINQPad 上运行但在 VS 上运行的查询返回 NullReference 错误
- c - 数独游戏:如何测试包含读取二进制文件的代码
- flask - JSONAPI:更新关系,包括属性