Condition

Condition is the 'when' you want to update

Description

A "condition" stage defines if the "Target" stage stage of a pipeline should be executed or not. It runs a check (depending on the resource kind) that return a boolean indicating its success (true) or failure (true).

Please look at each kind of resource (shell, file, etc.) for details about "how is the success/failure determined?".

Parameters

NameRequiredDefaultDescription

sourceID

Sets to the only source if there is only 1 defined.

Reference of the "Source" to use as input value. Required if disablesourceinput is false and there are multiple sources defined.

disablesourceinput

false

Wether to expect an input source value or not

kind

-

Define the resource type used for the spec

name

-

Small description used in message, reports, etc.

spec

-

Define resource parameters, cfr to appropriated documentation

Examples

  • Example with only 1 source:

sources:
  printsName:
    kind: shell
    spec:
      command: echo Ada
conditions:
  checkIfFileExistsWithName:
    kind: shell
    # Implicit instruction (only source)
    # sourceID: printsName
    spec:
      # Should execute the command ""test -f Ada"" (e.g. tests if the file "Ada" exists)
      command: test -f
  • Example with source input disabled:

# Sources defined here
# ...
conditions:
  checkIfFileExistsWithName:
    kind: shell
    disablesourceinput: true
    spec:
      # Should execute the command "test -f pom.xml" (e.g. tests if the file "pom.xml" exists)
      # There are no source value appended
      command: test -f pom.xml
  • Example checking if a Docker Image is published on the registry. It verifies that the docker image jenkinsciinfra/plugin-site-api with the tag returned from the source exists on the DockerHub. The targets of this pipeline are not executed if this condition fails.

sources:
  tagVersion:
    kind: shell
    spec:
      command: echo v1.0.0

conditions:
  IsDockerImagePublished:
    name: |
      Is the Docker Image
      'jenkinsciinfra/plugin-site-api:{{ source `tagVersion` }}
      published on the registry?
    kind: dockerImage
    sourceID: tagVersion
    spec:
      image: "jenkinsciinfra/plugin-site-api"

# The targets defined below are not executed if
# the image 'jenkinsciinfra/plugin-site-api:v1.0.0'
# is absent on the DockerHub

Edit this page on GitHub