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
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).
- 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.
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.