Giter Club home page Giter Club logo

jjb-gotchas's Introduction

JJB gotchas

Examples of confusing behavior of Jenkins Job Builder.

$ jenkins-jobs --version
Jenkins Job Builder version: 3.10.0

Example templates/A_intro

Templates

template.yaml

- job-template:
    name: '{foo}-{bar}'

- project:
    name: derp
    jobs:
      - '{foo}-{bar}'
    bar:
      - x
      - y
    foo:
      - a
      - b

Jobs created

  • a-x
  • a-y
  • b-x
  • b-y

Example templates/B_defaults

Templates

template.yaml

- defaults:
    name: 'global'
    foo:
      - a
      - b

- job-template:
    name: '{foo}-{bar}'

- project:
    name: derp
    jobs:
      - '{foo}-{bar}'
    bar:
      - x
      - y

Jobs created

  • ['a', 'b']-x
  • ['a', 'b']-y

Example templates/C1_include

Templates

template.yaml

- job-template:
    name: '{foo}-{bar}'

- project:
    name: derp
    jobs:
      - '{foo}-{bar}'
    bar:
      - x
      - y
    foo: !include: foo.yaml.inc

foo.yaml.inc

- a
- b

Jobs created

  • a-x
  • a-y
  • b-x
  • b-y

Example templates/C2_include_with_var

Templates

template.yaml

- defaults:
    name: 'global'
    include_name: foo

- job-template:
    name: '{foo}-{bar}'

- project:
    name: derp
    jobs:
      - '{foo}-{bar}'
    bar:
      - x
      - y
    foo: !include: '{include_name}.yaml.inc'

foo.yaml.inc

- a
- b

Jobs created

  • ['a', 'b']-x
  • ['a', 'b']-y

Example templates/D_include_empty_file

Templates

template.yaml

- job-template:
    name: '{foo}-{bar}'

- project:
    name: derp
    jobs:
      - '{foo}-{bar}'
    bar:
      - x
      - y
    foo: !include: foo.yaml.inc

foo.yaml.inc

Jobs created

  • None-x
  • None-y

Example templates/E_include_empty_list

Templates

template.yaml

- job-template:
    name: '{foo}-{bar}'

- project:
    name: derp
    jobs:
      - '{foo}-{bar}'
    bar:
      - x
      - y
    foo: !include: foo.yaml.inc

foo.yaml.inc

[]

Jobs created

Example templates/F_include_configuration

Templates

template.yaml

- job-template:
    name: '{foo}-{bar}'

- project:
    name: derp
    jobs:
      - '{foo}-{bar}'
    bar:
      - x
      - y
    configuration: !include: configuration.yaml.inc
    foo: '{configuration[foo]}'

configuration.yaml.inc

foo:
  - a
  - b

Jobs created

  • ['a', 'b']-x
  • ['a', 'b']-y

Example templates/G_copy_defaults

Templates

template.yaml

- defaults:
    name: 'global'
    foosrc:
      - a
      - b

- job-template:
    name: '{foo}-{bar}'

- project:
    name: derp
    jobs:
      - '{foo}-{bar}'
    bar:
      - x
      - y
    foo: '{foosrc}'

Jobs created

  • ['a', 'b']-x
  • ['a', 'b']-y

Example templates/H_j2_yaml

Templates

template.yaml

- defaults:
    name: 'global'
    release: N

- job-template:
    name: '{foo}-{bar}'

- project:
    name: derp
    jobs:
      - '{foo}-{bar}'
    bar:
      - x
      - y
    foo: !j2-yaml: |
      {% if release == 'M' %}
      - a
      {% elif release == 'N' %}
      - a
      - b
      {% else %}
      []
      {% endif %}

Jobs created

  • ['a', 'b']-x
  • ['a', 'b']-y

jjb-gotchas's People

Contributors

woky avatar

Stargazers

 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.