jenkins管道中电子邮件分机的If条件
如何基于多个项目在电子邮件正文中发送html文件? 使用下面的直接代码,我可以发送邮件,但如果我使用“if-else条件”,则其失败,是否可以在格式中使用if-condition 直接代码:jenkins管道中电子邮件分机的If条件,jenkins,jenkins-pipeline,jenkins-groovy,Jenkins,Jenkins Pipeline,Jenkins Groovy,如何基于多个项目在电子邮件正文中发送html文件? 使用下面的直接代码,我可以发送邮件,但如果我使用“if-else条件”,则其失败,是否可以在格式中使用if-condition 直接代码: always { emailext mimeType: 'text/html', body: '${FILE,path="./logs/${JOB_NAME}_Build_${BUILD_NUMBER}/misc/email_dashboard.html"}',
always {
emailext mimeType: 'text/html',
body: '${FILE,path="./logs/${JOB_NAME}_Build_${BUILD_NUMBER}/misc/email_dashboard.html"}',
subject: '${JOB_NAME} Report',
to: 'xyz.com'
}
我正在努力实现这样的目标:
post {
success {
archiveArtifacts 'logs/${JOB_BASE_NAME}_Build_${BUILD_NUMBER}/**/*, logs/static_results/*'
script {
load "logs/${JOB_BASE_NAME}_Build_${BUILD_NUMBER}/display/pipeline_vars.groovy"
}
}
if ((${NODE_NAME}.contains("KG"))&&(${JOB_NAME}.contains("Nightly"))) {
always {
emailext mimeType: 'text/html',
body: '${FILE,path="./logs/${JOB_NAME}_Build_${BUILD_NUMBER}/misc/email_dashboard.html"}',
subject: '${JOB_NAME} Report',
to: 'xyz.com'
}
}
else if ((${NODE_NAME}.contains("MT")) &&(${JOB_NAME}.contains("Feature"))) {
always {
emailext mimeType: 'text/html',
body: '${FILE,path="./logs/${JOB_NAME}_Build_${BUILD_NUMBER}/misc/email_dashboard.html"}',
subject: '${JOB_NAME} Report',
to: 'xyz.com'
}
}
}
这里的问题是,在
if-else
块中不能始终包含。在声明性管道
语法中,必须在脚本
块中使用if-else
,如下所示:
pipeline {
agent { label 'windows' }
//agent { label 'linux' }
stages {
stage('Echo') {
steps {
echo 'Inside Echo block'
}
}
}
post {
always {
script {
if ((env.NODE_NAME == "windows")) {
echo "Running on ${env.NODE_NAME} node"
}
else if ((env.NODE_NAME == "linux")) {
echo "Running on ${env.NODE_NAME} node"
}
}
}
}
}
输出:
这里的问题是,在if-else
块中不能始终包含。在声明性管道
语法中,必须在脚本
块中使用if-else
,如下所示:
pipeline {
agent { label 'windows' }
//agent { label 'linux' }
stages {
stage('Echo') {
steps {
echo 'Inside Echo block'
}
}
}
post {
always {
script {
if ((env.NODE_NAME == "windows")) {
echo "Running on ${env.NODE_NAME} node"
}
else if ((env.NODE_NAME == "linux")) {
echo "Running on ${env.NODE_NAME} node"
}
}
}
}
}
输出:
下面的代码解决了我的问题:
always {
script {
if (env.JOB_NAME.contains('Nightly'))
{
emailext (
to: '${DEFAULT_RECIPIENTS}',
subject: "${env.JOB_NAME}-Report",
body: '${FILE,path="./logs/${JOB_NAME}_Build_${BUILD_NUMBER}/misc/xyz.html"}',
attachLog: true,
attachmentsPattern: 'logs/${JOB_NAME}_Build_${BUILD_NUMBER}/misc/xyz.png',
)
}
}
}
下面的代码解决了我的问题:
always {
script {
if (env.JOB_NAME.contains('Nightly'))
{
emailext (
to: '${DEFAULT_RECIPIENTS}',
subject: "${env.JOB_NAME}-Report",
body: '${FILE,path="./logs/${JOB_NAME}_Build_${BUILD_NUMBER}/misc/xyz.html"}',
attachLog: true,
attachmentsPattern: 'logs/${JOB_NAME}_Build_${BUILD_NUMBER}/misc/xyz.png',
)
}
}
}
你试过这个建议了吗?如果有帮助,请回答。你试过这个建议了吗?如果有帮助,请给出答案。