Bird
Raised Fist0
Jenkinsdevops~5 mins

Post-build actions in Jenkins - Commands & Configuration

Choose your learning style10 modes available
Introduction
After your Jenkins job finishes building your project, you often want to do extra steps like sending notifications or archiving files. Post-build actions let you automate these extra tasks easily.
When you want to send an email alert if the build fails or succeeds.
When you need to save build artifacts like compiled files for later use.
When you want to trigger another Jenkins job after the current one finishes.
When you want to publish test results automatically after the build.
When you want to clean up temporary files or notify a chat channel after build.
Commands
This command starts the Jenkins job named 'my-job' and waits for it to finish so you can see the result.
Terminal
jenkins-cli build my-job -s
Expected OutputExpected
Started build #15 Finished: SUCCESS
→
-s - Waits for the build to complete before returning.
Shows the console output of build number 15 of 'my-job' so you can check what happened during the build and post-build steps.
Terminal
jenkins-cli console my-job 15
Expected OutputExpected
[Pipeline] echo Build completed successfully [Pipeline] archiveArtifacts Archiving artifacts [Pipeline] mail Sending email notification Finished: SUCCESS
Key Concept

Post-build actions let you automate tasks that happen right after your build finishes, like notifications or saving files.

Common Mistakes
Not configuring any post-build actions, so important steps like notifications never happen.
You miss critical alerts or lose build artifacts because no follow-up tasks run.
Always add needed post-build actions in your Jenkins job configuration to automate these steps.
Configuring post-build actions that depend on files not generated during the build.
The post-build step fails because the expected files are missing.
Ensure your build produces the files before post-build actions try to use them.
Summary
Use post-build actions to automate tasks after your Jenkins build finishes.
Common post-build actions include sending emails, archiving artifacts, and triggering other jobs.
You can run and check your Jenkins job using jenkins-cli commands to verify post-build actions.

Practice

(1/5)
1. What is the main purpose of Post-build actions in Jenkins?
easy
A. To start the build process
B. To write the build script
C. To perform tasks automatically after the build finishes
D. To configure the Jenkins server settings

Solution

  1. Step 1: Understand Jenkins build phases

    Jenkins runs build steps first, then post-build actions after the build ends.
  2. Step 2: Identify the role of post-build actions

    Post-build actions automate tasks like notifications, archiving, or cleanup after the build completes.
  3. Final Answer:

    To perform tasks automatically after the build finishes -> Option C
  4. Quick Check:

    Post-build actions = tasks after build [OK]
Hint: Post-build actions run after build ends to automate tasks [OK]
Common Mistakes:
  • Confusing post-build actions with build steps
  • Thinking post-build actions start the build
  • Assuming post-build actions configure Jenkins server
2. Which of the following is the correct syntax to add a post-build action in a Jenkins pipeline script?
easy
A. build { post { echo 'Build finished' } }
B. pipeline { postbuild { echo 'Build finished' } }
C. steps { post { echo 'Build finished' } }
D. post { always { echo 'Build finished' } }

Solution

  1. Step 1: Recall Jenkins pipeline post syntax

    In declarative pipelines, post block defines post-build actions with conditions like always.
  2. Step 2: Match syntax options

    post { always { echo 'Build finished' } } uses correct post { always { ... } } syntax. Others use invalid blocks like build or postbuild.
  3. Final Answer:

    post { always { echo 'Build finished' } } -> Option D
  4. Quick Check:

    Post block syntax = post { always { echo 'Build finished' } } [OK]
Hint: Use 'post { always { ... } }' for post-build actions in pipeline [OK]
Common Mistakes:
  • Using 'postbuild' instead of 'post'
  • Placing post block inside 'steps'
  • Using 'build' block incorrectly
3. Given this Jenkins pipeline snippet, what will be printed after the build finishes successfully?
pipeline {
  agent any
  stages {
    stage('Build') {
      steps {
        echo 'Building...'
      }
    }
  }
  post {
    success {
      echo 'Build succeeded!'
    }
    failure {
      echo 'Build failed!'
    }
  }
}
medium
A. Building... Build failed!
B. Building... Build succeeded!
C. Build succeeded!
D. Build failed!

Solution

  1. Step 1: Analyze build steps

    The pipeline prints 'Building...' during the build stage.
  2. Step 2: Check post-build actions on success

    On successful build, the success block runs, printing 'Build succeeded!'.
  3. Final Answer:

    Building... Build succeeded! -> Option B
  4. Quick Check:

    Success post block runs after build [OK]
Hint: Success block runs only if build succeeds [OK]
Common Mistakes:
  • Confusing failure block with success block
  • Ignoring initial build echo
  • Assuming post block runs before build
4. You wrote this Jenkins pipeline post section but the notification never sends on build failure:
post {
  failure {
    mail(to: 'team@example.com', subject: 'Build Failed')
  }
}
What is the likely problem?
medium
A. The mail step requires proper Jenkins email configuration
B. The failure block should be inside steps
C. The mail step requires a steps block inside failure
D. The post block must be inside steps

Solution

  1. Step 1: Understand the mail step requirements

    The mail step requires the 'Email Extension Plugin' to be installed and SMTP server configured in Manage Jenkins > Configure System > Extended E-mail Notification.
  2. Step 2: Identify the likely problem

    Without proper email configuration (SMTP host, port, credentials, etc.), the notification won't send even if the syntax is correct.
  3. Final Answer:

    The mail step requires proper Jenkins email configuration -> Option A
  4. Quick Check:

    Mail needs SMTP config [OK]
Hint: Configure SMTP in Jenkins for mail step [OK]
Common Mistakes:
  • Not installing Email Extension plugin
  • Not setting SMTP server details
  • Missing 'from' address or credentials
5. You want to archive build artifacts only if the build succeeds and always send a notification email regardless of build result. Which Jenkins pipeline post section correctly implements this?
hard
A. post { success { archiveArtifacts 'build/*.jar' } always { mail(to: 'devs@example.com', subject: 'Build Notification') } }
B. post { always { archiveArtifacts 'build/*.jar' mail(to: 'devs@example.com', subject: 'Build Notification') } }
C. post { success { archiveArtifacts 'build/*.jar' mail(to: 'devs@example.com', subject: 'Build Notification') } }
D. post { failure { archiveArtifacts 'build/*.jar' } always { mail(to: 'devs@example.com', subject: 'Build Notification') } }

Solution

  1. Step 1: Identify conditions for each action

    Archiving should happen only on success, so it goes inside success. Email should always send, so it goes inside always.
  2. Step 2: Match options with conditions

    post { success { archiveArtifacts 'build/*.jar' } always { mail(to: 'devs@example.com', subject: 'Build Notification') } } correctly separates archive in success and mail in always. Others mix conditions incorrectly.
  3. Final Answer:

    post { success { archiveArtifacts 'build/*.jar' } always { mail(to: 'devs@example.com', subject: 'Build Notification') } } -> Option A
  4. Quick Check:

    Use success for archive, always for mail [OK]
Hint: Use 'success' for archive, 'always' for notifications [OK]
Common Mistakes:
  • Putting archive in always block
  • Sending mail only on success
  • Archiving on failure instead of success
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard