Jenkins Trigger

Jenkins Trigger

Certified

Wait for a Jenkins build to complete

Periodically polls Jenkins for completed builds on a specific job, advancing a watermark in the namespace KV store to guarantee exactly-once firing. Flat output properties describe the lowest matching completed build, while builds delivers newly completed matching builds in ascending order.

yaml
type: io.kestra.plugin.jenkins.Trigger

React when a Jenkins build finishes

yaml
id: jenkins_build_finished
namespace: company.team

triggers:
  - id: on_build_completed
    type: io.kestra.plugin.jenkins.Trigger
    serverUrl: https://jenkins.example.com
    username: "{{ secret('JENKINS_USER') }}"
    apiToken: "{{ secret('JENKINS_API_TOKEN') }}"
    jobName: folder/my-job
    interval: PT1M

tasks:
  - id: handle_event
    type: io.kestra.plugin.core.log.Log
    message: "Build #{{ trigger.buildNumber }} ended with {{ trigger.result }}"
Properties

Jenkins job path

Job name or foldered path using /; each segment is URL-encoded.

Jenkins base URL

Base HTTP(S) endpoint for the Jenkins instance (e.g., http://jenkins.example.com: 8080).

Defaultfalse

Specifies whether a trigger is allowed to start a new execution even if a previous run is still in progress.

API token

Jenkins API token or password paired with the username for Basic Auth.

Initial build number

Optional build number to start monitoring from. When omitted on first poll, initialized to the current highest build number so existing past builds are not re-fired.

DefaultPT1M
Formatduration

Polling interval

Interval between trigger evaluations. Defaults to 1 minute.

HTTP client options

Optional overrides for HTTP timeouts, proxies, or headers.

Definitions
allowFailedbooleanstring
Defaultfalse

If true, allow a failed response code (response code >= 400)

allowedResponseCodesarray
SubTypeinteger

List of response code allowed for this request

auth

The authentication to use.

type*object
passwordstring

The password for HTTP basic authentication.

usernamestring

The username for HTTP basic authentication.

type*object
tokenstring

The token for bearer token authentication.

type*object
passwordstring

The password for HTTP Digest authentication.

usernamestring

The username for HTTP Digest authentication.

defaultCharsetstring
DefaultUTF-8

The default charset for the request.

enabledTcpExtendedKeepAlivebooleanstring
Defaulttrue

Whether to enable TCP Keep-Alive extended socket options (TCP_KEEPIDLE, TCP_KEEPINTERVAL, TCP_KEEPCOUNT).

Set to false when running on Windows workers, as these extended socket options are not supported by the Windows JDK and will cause connection failures.

followRedirectsbooleanstring
Defaulttrue

Whether redirects should be followed automatically.

logsarray
SubTypestring
Possible Values
REQUEST_HEADERSREQUEST_BODYRESPONSE_HEADERSRESPONSE_BODY

The enabled log.

proxy

The proxy configuration.

addressstring

The address of the proxy server.

passwordstring

The password for proxy authentication.

portintegerstring

The port of the proxy server.

typestring
DefaultDIRECT
Possible Values
DIRECTHTTPSOCKS

The type of proxy to use.

usernamestring

The username for proxy authentication.

retry

Retry strategy for HTTP requests.

retry is disabled by default.

Retry with a fixed delay between attempts.

interval*string
Formatduration
type*object
behaviorstring
DefaultRETRY_FAILED_TASK
Possible Values
RETRY_FAILED_TASKCREATE_NEW_EXECUTION
maxAttemptsinteger
Minimum>= 1
maxDurationstring
Formatduration
warningOnRetryboolean
Defaultfalse

Retry with exponentially increasing delays between attempts.

interval*string
Formatduration
maxInterval*string
Formatduration
type*object
behaviorstring
DefaultRETRY_FAILED_TASK
Possible Values
RETRY_FAILED_TASKCREATE_NEW_EXECUTION
delayFactornumber
maxAttemptsinteger
Minimum>= 1
maxDurationstring
Formatduration
warningOnRetryboolean
Defaultfalse

Retry with a random delay within a configurable range between attempts.

maxInterval*string
Formatduration
minInterval*string
Formatduration
type*object
behaviorstring
DefaultRETRY_FAILED_TASK
Possible Values
RETRY_FAILED_TASKCREATE_NEW_EXECUTION
maxAttemptsinteger
Minimum>= 1
maxDurationstring
Formatduration
warningOnRetryboolean
Defaultfalse
retryOnStatusCodesarray
SubTypeinteger
Default[502,503,504]

HTTP status codes that should be retried.

Used for idempotent methods (GET, HEAD) without their own entry in retryOnStatusCodesByMethod. Non-idempotent methods are never retried on a status code unless listed in retryOnStatusCodesByMethod. Defaults to 502, 503 and 504 for idempotent methods (GET, HEAD) only.

retryOnStatusCodesByMethodobject
SubTypearray

Per-HTTP-method overrides for which status codes should be retried.

Keys are HTTP methods (e.g. GET, POST). A method with no entry here falls back to retryOnStatusCodes. This lets a caller retry more broadly for safe, read-only methods (for example, every 5xx and a 429 for GET/HEAD) while keeping a narrower list for methods that write, where retrying a request that may have already been processed by the origin risks duplicating the effect. Example: {GET: [429, 500, 502, 503, 504], HEAD: [429, 500, 502, 503, 504]}.

retryableTransportFailureMethodsarray
SubTypestring
Default["GET","HEAD"]

HTTP methods for which any transport-level failure may be retried.

A transport-level failure is a connection or timeout error rather than an HTTP response (e.g. a read timeout or a connection reset mid-request). For a method listed here, any such failure is retried. Defaults to GET and HEAD HTTP methods.

ssl

The SSL request options

insecureTrustAllCertificatesbooleanstring

Whether to disable checking of the remote SSL certificate.

Only applies if no trust store is configured. Note: This makes the SSL connection insecure and should only be used for testing. If you are using a self-signed certificate, set up a trust store instead.

timeout

The timeout configuration.

connectTimeoutstring

The time allowed to establish a connection to the server before failing.

readIdleTimeoutstring
DefaultPT5M

The time allowed for a read connection to remain idle before closing it.

Possible Values
SUCCESSUNSTABLEFAILURENOT_BUILTABORTED

Build result filter

Optional filter by build result: SUCCESS, UNSTABLE, FAILURE, NOT_BUILT, or ABORTED.

SubTypestring
Possible Values
CREATEDSUBMITTEDRUNNINGPAUSEDRESTARTEDKILLINGSUCCESSWARNINGFAILEDKILLEDCANCELLEDQUEUEDRETRYINGRETRIEDSKIPPEDBREAKPOINTRESUBMITTED

List of execution states after which a trigger should be stopped (a.k.a. disabled).

Jenkins username

Optional username used for Basic Auth when Jenkins is secured.

Defaulttrue

A condition that determines whether the trigger should run.

A Pebble expression evaluated at trigger time. The trigger fires only when the expression evaluates to a truthy value (true, a non-empty string, a non-zero number). Use this to gate trigger execution on dynamic runtime values such as execution labels, flow variables, or environment conditions.

Build number

Direct URL to the build in Jenkins

Newly completed matching builds in ascending order

Definitions
buildingboolean

Whether the build is in progress

durationinteger

Build duration in milliseconds

fullDisplayNamestring

Full display name of the build

numberinteger

Build number

resultstring

Build result (e.g., SUCCESS, FAILURE, UNSTABLE)

timestampstring
Formatdate-time

Build start timestamp

urlstring

Direct URL to the build in Jenkins

Build duration in milliseconds

Full display name of the build

Build result (e.g., SUCCESS, FAILURE, UNSTABLE)

Formatdate-time

Build start timestamp