How to implement Post-Build stage using Jenkins Pipeline plug-in?

前端 未结 4 591
逝去的感伤
逝去的感伤 2020-12-05 03:42

After reading Jenkins tutorial explaining Pipeline plug-in, it seems that plug-in should make it possible to implement Post-Build steps. However documentati

4条回答
  •  广开言路
    2020-12-05 04:39

    try-catch blocks can be set up to handle errors like in real application code.

    For example:

    try {
        node {
            sh 'sleep 20' // <<- can abort here
        }
    } catch (Exception e) {
        println 'catch'
    } finally {
        println 'finally'
    }
    
    node {
        println 'second'
    }
    
    try {
        node {
            sh 'sleep 20' // <<- can abort here again
        }
    } catch (Exception e) {
        println 'catch'
    } finally {
        println 'finally'
    }
    

    And here is an example output with two aborts.

    Started by user me
    Replayed #3
    [Pipeline] node
    Running on my-node in /var/lib/jenkins-slave/workspace/my-job
    [Pipeline] {
    [Pipeline] sh
    [my-job] Running shell script
    + sleep 20
    
    Aborted by me
    
    Sending interrupt signal to process
    
    /var/lib/jenkins-slave/workspace/my-job@tmp/durable-9e1a15e6/script.sh: line 2: 10411 Terminated              sleep 20
    [Pipeline] }
    [Pipeline] // node
    [Pipeline] echo
    catch
    [Pipeline] echo
    finally
    [Pipeline] node
    Running on my-node in /var/lib/jenkins-slave/workspace/my-job
    [Pipeline] {
    [Pipeline] echo
    second
    [Pipeline] }
    [Pipeline] // node
    [Pipeline] node
    Running on my-node in /var/lib/jenkins-slave/workspace/my-job
    [Pipeline] {
    [Pipeline] sh
    [my-job] Running shell script
    + sleep 20
    
    Aborted by me
    
    Sending interrupt signal to process
    /var/lib/jenkins-slave/workspace/my-job@tmp/durable-d711100c/script.sh: line 2: 10416 Terminated              sleep 20
    [Pipeline] }
    [Pipeline] // node
    [Pipeline] echo
    catch
    [Pipeline] echo
    finally
    [Pipeline] End of Pipeline
    Finished: ABORTED
    

    Of course, this works for any exceptions happening during the execution.

提交回复
热议问题