Skip to content
Permalink
master
Switch branches/tags
Go to file
…s master" term from the warning in the Web UI (#1481)

* Cleanup master/slave terminology from documentation

* remove 'controller' from description

Agent configurations can be also managed on the controller side

* Update demos/kubernetes/README.md

Co-authored-by: Tim Jacomb <t.jacomb@kainos.com>
8 contributors

Users who have contributed to this file

@jetersen @darxriggs @ooxi @timja @ndeloof @iptizer @yogeek @akatsadimas

How to create initial "seed" job

Requires job-dsl >= 1.74

Configuration is not just about setting up Jenkins controller, it's also about creating an initial set of jobs. For this purpose, we delegate to the popular job-dsl-plugin and run a job-dsl script to create an initial set of jobs.

Typical usage is to rely on a multi-branch, or organization folder job type, so further jobs will be dynamically created. So a multi-branch seed job will prepare a controller to be fully configured for CI/CD targeting a repository or organization.

Job-DSL plugin uses groovy syntax for its job configuration DSL, so you'll have to mix YAML and groovy within your configuration-as-code file:

jenkins:
  systemMessage: "Simple seed job example"
jobs:
  - script: |
      multibranchPipelineJob('configuration-as-code') {
          branchSources {
              git {
                  id = 'configuration-as-code'
                  remote('https://github.com/jenkinsci/configuration-as-code-plugin.git')
              }
          }
      }

Using Groovy scripting is also supported. Variables may be used with the $varname syntax. When using ${variable} the variable is substituted by a credential, not by the Groovy variable. To use it nevertheless, the $ sign may be escaped using ^. See the following example:

jenkins:
  systemMessage: "Seed job with loop."
jobs:
  - script: |
      jobarray = ['job1','job2']
      for(currentjob in jobarray)
      multibranchPipelineJob("$currentjob") { // normal variable syntax
          branchSources {
              git {
                  id = "^${currentjob}"       // accessing variable with escaping
                  remote('https://github.com/jenkinsci/configuration-as-code-plugin.git')
              }
          }
      }

Examples

Please refer to demos for examples to configure more complex jobs.