尝试在Jenkins文件中捕获

时间:2018-12-19 12:08:47

标签: jenkins jenkins-declarative-pipeline

我对詹金斯的流水线和古怪的东西很陌生。请忽略环境变量,我将来会使用它

如果要根据项目状态发送成功或失败,我想在这里发送松弛信息,并在git pull上发送信息。我在尝试某些东西时遇到错误

pipeline {
    agent any
    environment { 
        val = 1
    }
    stages {
        stage('Started') {
            steps{
                slackSend(message: "STARTED")
            }
        }

        try {
            stage('SCM Checkout') {
                steps {
                    git url:'https://github.com/Abhishek24094/dev.git'
                }
            }
        }
        catch(Exception e) {
            slackSend(message: "Failure")
        }

        stage('finished') {
            steps{
                slackSend(message: "STARTED")
            }
        }
    }
}

1 个答案:

答案 0 :(得分:2)

您正在使用declarative pipeline(如第1行中的pipeline步骤所示)。

这不允许您运行普通的Groovy代码(例如try),而是围绕预定义的步骤(agentenvironmentstage等构建)。 )。

对您来说,一个好消息是您不需要此错误处理。相反,post允许您基于成功或失败在构建后运行步骤:

pipeline {
    // ..
    post {
        success {
            slackSend ( message: "STARTED")
        }
        failure { 
            slackSend ( message: "Failure")
        }
    }
}