Running a Post Build script when a Jenkins job is aborted

后端 未结 4 1750
执笔经年
执笔经年 2021-02-07 02:23

Is there a possible way / plugin that can run a post build script when a Jenkins job is aborted. I do see that the post build plugin provides an action to execute a set of scrip

相关标签:
4条回答
  • 2021-02-07 02:30

    For a declarative Jenkins pipeline, you can achieve it as follows:

    pipeline {
        agent any
    
        options {
            timeout(time: 2, unit: 'MINUTES')   // abort on exceeding the timeout
        }
    
        stages {
            stage('Echo 1') {
               steps {
                  echo 'Hello World'
              } 
            }
            stage('Sleep'){
                steps {
                    sh 'sleep 180'
                }
            }
            stage('Wake up'){
                steps {
                    echo "Woken up"
                }
            }
        }
        // this post part is executed if job is aborted
        post {
            aborted {
                echo "Damn it. I was aborted!"
            }
        }
    }
    
    0 讨论(0)
  • 2021-02-07 02:36

    If you use a scripted pipeline, you can always use a try/catch/finally set, where the build gets executed in the try block and the postbuild steps are in the finally block. This way, even if the build fails, post build steps are executed.

    try {
            build here
    }catch(FlowInterruptedException interruptEx){
    
        catch exception here
    } finally {
    
        postBuild(parameters)
    
    }
    
    0 讨论(0)
  • 2021-02-07 02:41

    As far as I know, if a build is aborted, there's no way to execute any build steps (or post build steps) in it any more - which makes sense, that's what I would expect of "abort".

    What you could do is create another job that monitors the first one's status, and triggers if it was aborted (e.g. see the BuildResultTrigger plugin).

    Another solution might be to create a "wrapper" job, which calls the first one as a build step - this way you can execute additional steps after its completion, like checking its status, even if it was aborted.

    0 讨论(0)
  • 2021-02-07 02:48

    This question is positively answered here.

    The Post Build Task plugin is run even if a job is aborted.

    Use it to search the log text for "Build was aborted" and you can specify a shell script to run.

    Works like a charm. :-)

    0 讨论(0)
提交回复
热议问题