General Job ConfigurationΒΆ

The most straightforward way to create a job is simply to define a Job in YAML. It looks like this:

- job:
    name: job-name

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.

Previous topic

Matrix Project

Next topic

Builders

This Page