Skip to content

NimTechnology

Trình bày các công nghệ CLOUD một cách dễ hiểu.

  • Kubernetes & Container
    • Docker
    • Kubernetes
      • Ingress
      • Pod
    • Helm Chart
    • OAuth2 Proxy
    • Isito-EnvoyFilter
    • Apache Kafka
      • Kafka
      • Kafka Connect
      • Lenses
    • Vault
    • Longhorn – Storage
    • VictoriaMetrics
    • MetalLB
    • Kong Gateway
  • CI/CD
    • ArgoCD
    • ArgoWorkflows
    • Argo Events
    • Spinnaker
    • Jenkins
    • Harbor
    • TeamCity
    • Git
      • Bitbucket
  • Coding
    • DevSecOps
    • Terraform
      • GCP – Google Cloud
      • AWS – Amazon Web Service
      • Azure Cloud
    • Golang
    • Laravel
    • Python
    • Jquery & JavaScript
    • Selenium
  • Log, Monitor & Tracing
    • DataDog
    • Prometheus
    • Grafana
    • ELK
      • Kibana
      • Logstash
  • BareMetal
    • NextCloud
  • Toggle search form

[Jenkins] Lesson 8: example of Post in Jenkins Pipeline.

Posted on October 31, 2021October 31, 2021 By nim No Comments on [Jenkins] Lesson 8: example of Post in Jenkins Pipeline.

Contents

Toggle
  • Post
    • success, failure, always
    • change
    • unstable
    • fixed
    • regression
    • abored
    • cleanup

Post

https://www.jenkins.io/doc/book/pipeline/syntax/#post
post ở đây là khi bạn completed 1 Pipeline hay 1 stage thì chúng ta chạy “post” để kiểm tra cuối
Nghe vẫn khó hiểu thì bay ngay vào ví dụ.

success, failure, always

pipeline{
	agent{
	    label "k8s-permanent"
	}
	stages{
		stage("Build"){
		    steps{
		        echo "Building"
		    }
		}
	}
	post{
	    // Only runs if the current Pipeline's or stage's run has a "success" status
	    success{
	        echo "post->success is called"
	    }
	    
	    // Only runs if the current Pipeline's or stage's run has a "failed" status
	    failure{
	        echo "post->failure is called"
	    }
	    
	    // Only runs if the current Pipeline's or stage's run has a "failed" status
	    always{
	        echo "post->always is called"
	    }
	}
}

Giờ ta sửa cho stages bị error

pipeline{
	agent{
	    label "k8s-permanent"
	}
	stages{
		stage("Build"){
		    steps{
		        echo "Building"
		        error("Build error")
		    }
		}
	}
	post{
	    // Only runs if the current Pipeline's or stage's run has a "success" status
	    success{
	        echo "post->success is called"
	    }
	    
	    // Only runs if the current Pipeline's or stage's run has a "failed" status
	    failure{
	        echo "post->failure is called"
	    }
	    
	    // Only runs if the current Pipeline's or stage's run has a "failed" status
	    always{
	        echo "post->always is called"
	    }
	}
}
build error nên
run post always
run post failure

change

pipeline{
	agent{
	    label "k8s-permanent"
	}
	stages{
		stage("Build"){
		    steps{
		        echo "Building"
		      //  error("Build error")
		    }
		}
	}
	post{
	    // Only runs if the current Pipeline's or stage's run has a different completion status from its previous run
	    change{
	        echo "post->change is called"
	    }
	}
}
Vì build trước fail mà build hiện tại success
vì status khách nhau nên post change được run
pipeline{
	agent{
	    label "k8s-permanent"
	}
	stages{
		stage("Build"){
		    steps{
		        echo "Building"
		        //error("Build error")
		        script{
		            currentBuild.result = "UNSTABLE"
		        }
		    }
		}
	}
	post{
	    // Only runs if the current Pipeline's or stage's run has a different completion status from its previous run
	    changed{
	        echo "post->change is called"
	    }
	}
}
status Build UNSTABLE thì bạn sẽ thấy có dấu ! và màu vàng

giờ click lại luôn và không sửa pipeline

status build 77 và 78 giống nhau

unstable

pipeline{
	agent{
	    label "k8s-permanent"
	}
	stages{
		stage("Build"){
		    steps{
		        echo "Building"
		        //error("Build error")
		        script{
		            currentBuild.result = "UNSTABLE"
		        }
		    }
		}
	}
	post{
	    // Only runs if the current Pipeline's or stage's run has a different completion status from its previous run
	    changed{
	        echo "post->change is called"
	    }
	    
	    // Only runs if the current Pipeline's or stage's run has an "unstable", usually caused by test failure, code violations, etc
	    unstable{
	        echo "post->unstable is called"
	    }
	}
}

thêm post unstable thì ta sẽ có kết quả như sau

fixed

nó giống như alert OK ở hiện tại sau khi các build trước đã bị failure hay unstable

pipeline{
	agent{
	    label "k8s-permanent"
	}
	stages{
		stage("Build"){
		    steps{
		        echo "Building"
		        //error("Build error")
		      //  script{
		      //      currentBuild.result = "UNSTABLE"
		      //  }
		    }
		}
	}
	post{
	    // Only runs if the current Pipeline's or stage's run is  successful and the previous run failure and was unstable
	    fixed{
	        echo "post->fixed is called"
	    }
	}
}

regression

chỉ run nếu build hiện tại failure, unstable, aborted và build trước đó thành công

pipeline{
	agent{
	    label "k8s-permanent"
	}
	stages{
		stage("Build"){
		    steps{
		        echo "Building"
		        error("Build error")
		      //  script{
		      //      currentBuild.result = "UNSTABLE"
		      //  }
		    }
		}
	}
	post{
	    // Only runs if the current Pipeline's or stage's run is  failure, unstable, aborted and the previous run was successful
	    regression{
	        echo "post->regession is called"
	    }
	}
}

abored

pipeline{
	agent{
	    label "k8s-permanent"
	}
	stages{
		stage("Build"){
		    steps{
		        echo "Building"
		        //error("Build error")
		        script{
		            currentBuild.result = "ABORTED"
		        }
		    }
		}
	}
	post{
	    // Only runs if the current Pipeline's or stage's run is  failure, unstable, aborted and the previous run was successful
	    aborted{
	        echo "post->aborted is called"
	    }
	}
}

cleanup

nó sẽ run sau tất cả các post và ko quan tâm đến status stages hay pipeline

pipeline{
	agent{
	    label "k8s-permanent"
	}
	stages{
		stage("Build"){
		    steps{
		        echo "Building"
		        error("Build error")
		    }
		}
	}
	post{
	    // Only runs if the current Pipeline's or stage's run has a "success" status
	    success{
	        echo "post->success is called"
	    }
	    
	    // Only runs if the current Pipeline's or stage's run has a "failed" status
	    failure{
	        echo "post->failure is called"
	    }
	    
	    // Only runs if the current Pipeline's or stage's run has a "failed" status
	    always{
	        echo "post->always is called"
	    }
	    
	    //Run after every other post condition has been evaluated,  regardless of the status of Pipeline or Stage
	    cleanup{
	        echo "post->cleanup is called"
	    }
	}
}
Jenkins

Post navigation

Previous Post: [Jenkins] Lesson 7: Create a From by Jenkins
Next Post: [Jenkins] Lesson 9: Using buildDiscarder to keep build history in Jenkins

More Related Articles

[Jenkins] Share Libraries 9: Defining Pipeline Script In Call Method Jenkins
[Jenkins] Lesson 6: Parallel in Pipe Jenkins Jenkins
[Jenkins] Jobs will be created automatically by Jenkins Job Builder Jenkins
[Jenkins] Scripted Pipeline lesson 6: Stage _ Input Jenkins
[Jenkins] Command Jenkins helpfully Jenkins
[Jenkins] Scripted Pipeline lesson 5: Parallel_FailFast Jenkins

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

Tham Gia Group DevOps nhé!
Để Nim có nhiều động lực ra nhiều bài viết.
Để nhận được những thông báo mới nhất.

Recent Posts

  • [Argo Workflow] Create an access token for Argo Workflows July 14, 2025
  • [Argo Workflow] SSO Authentication for Argo Workflows. July 14, 2025
  • [AWS/EKS] Cache Docker image to accelerate EKS container deployment. July 10, 2025
  • [Laravel] Laravel Helpful June 26, 2025
  • [VScode] Hướng dẫn điều chỉnh font cho terminal June 20, 2025

Archives

  • July 2025
  • June 2025
  • May 2025
  • April 2025
  • March 2025
  • February 2025
  • January 2025
  • December 2024
  • November 2024
  • October 2024
  • September 2024
  • August 2024
  • July 2024
  • June 2024
  • May 2024
  • April 2024
  • March 2024
  • February 2024
  • January 2024
  • December 2023
  • November 2023
  • October 2023
  • September 2023
  • August 2023
  • July 2023
  • June 2023
  • May 2023
  • April 2023
  • March 2023
  • February 2023
  • January 2023
  • December 2022
  • November 2022
  • October 2022
  • September 2022
  • August 2022
  • July 2022
  • June 2022
  • May 2022
  • April 2022
  • March 2022
  • February 2022
  • January 2022
  • December 2021
  • November 2021
  • October 2021
  • September 2021
  • August 2021
  • July 2021
  • June 2021

Categories

  • BareMetal
    • NextCloud
  • CI/CD
    • Argo Events
    • ArgoCD
    • ArgoWorkflows
    • Git
      • Bitbucket
    • Harbor
    • Jenkins
    • Spinnaker
    • TeamCity
  • Coding
    • DevSecOps
    • Golang
    • Jquery & JavaScript
    • Laravel
    • NextJS 14 & ReactJS & Type Script
    • Python
    • Selenium
    • Terraform
      • AWS – Amazon Web Service
      • Azure Cloud
      • GCP – Google Cloud
  • Kubernetes & Container
    • Apache Kafka
      • Kafka
      • Kafka Connect
      • Lenses
    • Docker
    • Helm Chart
    • Isito-EnvoyFilter
    • Kong Gateway
    • Kubernetes
      • Ingress
      • Pod
    • Longhorn – Storage
    • MetalLB
    • OAuth2 Proxy
    • Vault
    • VictoriaMetrics
  • Log, Monitor & Tracing
    • DataDog
    • ELK
      • Kibana
      • Logstash
    • Fluent
    • Grafana
    • Prometheus
  • Uncategorized
  • Admin

Copyright © 2025 NimTechnology.