📖 Scenario: You work in a team where multiple Jenkins pipelines depend on each other. One pipeline builds the application, and another deploys it. You want the deploy pipeline to start automatically after the build pipeline finishes successfully.
🎯 Goal: Build two Jenkins pipelines where the deploy pipeline is triggered automatically after the build pipeline completes. You will create the build pipeline, configure the deploy pipeline to trigger after the build, and verify the trigger works.
📋 What You'll Learn
Create a Jenkins pipeline named BuildApp with a simple build step
Create a Jenkins pipeline named DeployApp
Configure DeployApp to trigger automatically after BuildApp completes
Print a message in DeployApp to confirm it was triggered
💡 Why This Matters
🌍 Real World
In real projects, build and deploy pipelines often depend on each other. Automating triggers saves time and reduces errors.
💼 Career
Understanding pipeline triggers is essential for DevOps engineers to create efficient CI/CD workflows.
Progress0 / 4 steps
1
Create the BuildApp pipeline
Create a Jenkins pipeline named BuildApp with a pipeline block. Inside the stages, add one stage named Build that runs a shell command to print Building application....
Jenkins
Hint
Use pipeline block with agent any. Inside stages, add a stage('Build') with steps running sh 'echo Building application...'.
2
Create the DeployApp pipeline
Create a Jenkins pipeline named DeployApp with a pipeline block. Inside the stages, add one stage named Deploy that runs a shell command to print Deploying application....
Jenkins
Hint
Similar to the build pipeline, create a pipeline block with agent any. Add a stage('Deploy') with steps running sh 'echo Deploying application...'.
3
Configure DeployApp to trigger after BuildApp
In the DeployApp pipeline, add a triggers block inside the pipeline block. Use the upstream trigger to start DeployApp automatically after BuildApp completes successfully.
Jenkins
Hint
Inside the DeployApp pipeline, add triggers { upstream('BuildApp') } to trigger after the build pipeline.
4
Print confirmation in DeployApp pipeline
Add a post block inside the DeployApp pipeline. In the success section, add a step to print DeployApp triggered after BuildApp to confirm the trigger worked.
Jenkins
Hint
Use a post block with success inside the DeployApp pipeline to print the confirmation message.
Practice
(1/5)
1. What is the main purpose of using pipeline triggers in Jenkins?
easy
A. To delete old job logs automatically
B. To manually run jobs one by one
C. To stop all jobs from running
D. To automatically start a job when another job finishes
Solution
Step 1: Understand pipeline triggers
Pipeline triggers are used to start one job automatically after another job finishes.
Step 2: Identify the purpose
This automation helps connect jobs without manual intervention.
Final Answer:
To automatically start a job when another job finishes -> Option D
Quick Check:
Pipeline triggers = automatic job start [OK]
Hint: Triggers start jobs automatically after others finish [OK]
Common Mistakes:
Thinking triggers run jobs manually
Confusing triggers with log cleanup
Believing triggers stop jobs
2. Which syntax correctly triggers a downstream job named Build-App after the current pipeline completes successfully?
easy
A. build job: 'Build-App', propagate: true, wait: true
B. trigger job: 'Build-App' onSuccess
C. start job 'Build-App' after success
D. run job 'Build-App' always
Solution
Step 1: Recall Jenkins pipeline syntax for triggering jobs
The correct syntax uses the build step with parameters like job, propagate, and wait.
5. You want to create a Jenkins pipeline where Job A triggers Job B only if Job A succeeds, and Job B triggers Job C regardless of its result. Which configuration correctly achieves this?
hard
A. In Job A pipeline: build job: 'Job-B', propagate: true, wait: true In Job B pipeline: build job: 'Job-C', propagate: false, wait: false
B. In Job A pipeline: build job: 'Job-B', propagate: false, wait: false In Job B pipeline: build job: 'Job-C', propagate: true, wait: true
C. In Job A pipeline: build job: 'Job-B', propagate: true, wait: false In Job B pipeline: build job: 'Job-C', propagate: true, wait: true
D. In Job A pipeline: build job: 'Job-B', propagate: false, wait: true In Job B pipeline: build job: 'Job-C', propagate: false, wait: true
Solution
Step 1: Ensure Job B triggers only on Job A success
Using propagate: true in Job A means failure in Job B will fail Job A, so Job B runs only if Job A succeeds.
Step 2: Ensure Job C triggers regardless of Job B result
Using propagate: false and wait: false in Job B triggers Job C without waiting and ignores Job C's result.
Final Answer:
Option A matches these requirements -> Option A
Quick Check:
propagate true for success-only triggers, false for unconditional [OK]
Hint: Use propagate true for success-only, false for unconditional triggers [OK]
Common Mistakes:
Using propagate false when success-only is needed
Confusing wait true/false effects
Triggering downstream jobs incorrectly
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.