General Job Configuration
The most straightforward way to create a job is simply to define a
Job in YAML. It looks like this:
That’s not very useful, so you’ll want to add some actions such as
Builders, and perhaps Publishers. Those are described
later. There are a few basic optional fields for a Job definition:
- job:
name: job-name
project-type: freestyle
defaults: global
disabled: false
display-name: 'Fancy job name'
concurrent: true
workspace: /srv/build-area/job-name
quiet-period: 5
block-downstream: false
block-upstream: false
Job Parameters: |
- project-type:
Defaults to “freestyle”, but “maven” can also be specified.
- defaults:
Specifies a set of Defaults to use for this job, defaults to
‘’global’‘. If you have values that are common to all of your jobs,
create a global Defaults object to hold them, and no further
configuration of individual jobs is necessary. If some jobs
should not use the global defaults, use this field to specify a
different set of defaults.
- disabled:
Boolean value to set whether or not this job should be disabled in
Jenkins. Defaults to false (job will be enabled).
- display-name:
Optional name shown for the project throughout the Jenkins web GUI in
place of the actual job name. The jenkins_jobs tool cannot fully remove
this trait once it is set, so use caution when setting it. Setting it to
the same string as the job’s name is an effective un-set workaround.
Alternately, the field can be cleared manually using the Jenkins web
interface.
- concurrent:
Boolean value to set whether or not Jenkins can run this job
concurrently. Defaults to false.
- workspace:
Path for a custom workspace. Defaults to Jenkins default
configuration.
- quiet-period:
Number of seconds to wait between consecutive runs of this job.
Defaults to 0.
- block-downstream:
Boolean value to set whether or not this job must block while
downstream jobs are running. Downstream jobs are determined
transitively. Defaults to false.
- block-upstream:
Boolean value to set whether or not this job must block while
upstream jobs are running. Upstream jobs are determined
transitively. Defaults to false.
- auth-token:
Specifies an authentication token that allows new builds to be
triggered by accessing a special predefined URL. Only those who
know the token will be able to trigger builds remotely.
|
The Logrotate section allows you to automatically remove old build
history. It adds the logrotate attribute to the Job
definition.
All logrotate attributes have default “-1” value so you don’t need to specify
that explicitly
Example:
- job:
name: test_job
logrotate:
daysToKeep: 3
numToKeep: 20
artifactDaysToKeep: -1
artifactNumToKeep: -1
The Assigned Node section allows you to specify which Jenkins node (or
named group) should run the specified job. It adds the node
attribute to the Job definition.
Example:
- job:
name: test_job
node: precise
That speficies that the job should be run on a Jenkins node or node group
named precise.