Build Triggers
Learn the concepts, configuration syntaxes, event hooks, and automation workflows required to wake up and execute pipelines without manual intervention.
What are Build Triggers?
Build Triggers are the automated initiation conditions that signal Jenkins to place a job into the execution queue. Instead of forcing operations teams to manually click run buttons, build triggers allow Jenkins to continuously listen for environment events or follow rigid calendars to start builds automatically.
Core Build Trigger Approaches
Jenkins evaluates pipeline starts using three main mechanism methodologies:
- Webhooks (Push-Driven): Instant signals sent directly from code repositories (like GitHub) that kick off a build immediately after a developer pushes a new code commit.
- Periodic / Cron Schedules (Time-Driven): Automations configured with standard cron syntax expressions to evaluate runs at specific recurring intervals (e.g., executing comprehensive tests every night at midnight).
- Downstream Dependencies (Event-Driven): Relational configurations where a pipeline monitors an entirely separate "upstream" task, firing itself automatically once that parent job completes successfully.
Key Concepts
SCM Polling vs. Webhook Efficiency
Understanding that SCM Polling repeatedly wastes system resources querying git endpoints looking for updates, whereas modern Webhooks post data to Jenkins instantly and only when actual changes happen.
The Quiet Period Buffer
Learning to configure brief delay thresholds (Quiet Periods) that instruct Jenkins to wait a set number of seconds before starting a job, letting rapid consecutive developer pushes merge into a single run pass.
Practical Jenkins Example
The following declarative pipeline block demonstrates how to declare native automated cron timing and upstream project dependencies using the `properties` block syntax:
pipeline {
agent any
// Defining automated trigger blocks natively in code
triggers {
// Runs automatically every weekday at 11:30 PM (Time-Driven)
cron('30 23 * * 1-5')
// Runs automatically whenever the 'Core-Framework-Build' job completes successfully (Event-Driven)
upstream(upstreamProjects: 'Core-Framework-Build', threshold: hudson.model.Result.SUCCESS)
}
stages {
stage('Automated Execution') {
steps {
echo 'Pipeline woke up successfully due to active configuration trigger constraints.'
echo "Current execution timestamp baseline registered."
}
}
}
}
Practice Exercise: Build a Time-Scheduled Pipeline
Step-by-Step Task Sequence:
- Open the script block workspace of an active test pipeline or spin up a new Pipeline item layout.
- Copy-paste the sample declarative `triggers` code block provided above right inside the main root pipeline braces.
- Modify the cron instruction line to run every fifteen minutes by setting it to: `cron('*/15 * * * *')`.
- Click Save to write the configuration properties metadata into your master node storage disk layer.
- Return to the main dashboard screen and wait for the time boundary pass to verify that your build pipeline launches itself automatically without clicking any options.
Summary
You have completed the Build Triggers lesson. Continue through the syllabus to learn how to inject dynamic runtime inputs into these automated runs using Parameterized Builds.