ReadTheDocs Jobs

Job Groups

Job groups are a great tool to configure categories of jobs together at the same time. Below the example are some starting point job-groups but we recommend creating your own to ensure that the jobs configured reflect the project’s needs.

An example project:

- job-group:
    name: odl-maven-jobs

    jobs:
      - gerrit-maven-clm
      - gerrit-maven-merge
      - gerrit-maven-release
      - gerrit-maven-verify
      - gerrit-maven-verify-dependencies:
          build-timeout: 180

    mvn-version: mvn35

- project:
    name: aaa
    jobs:
      - odl-maven-jobs

In this example we are using the job-group to assign a list of common jobs to the aaa project. The job-group also hardcodes mvn-version to mvn35 and build-timeout to 180 for all projects using this job-group.

A benefit of this method is for example disabling entire category of jobs by modifying the job-group, insert disable-job: true parameter against the jobs to disable.

Below is a list of Maven job groups:

---
- job-group:
    name: "{project-name}-rtd-jobs"

    jobs:
      - gerrit-rtd-merge
      - gerrit-rtd-verify

- job-group:
    name: "{project-name}-github-rtd-jobs"

    jobs:
      - github-rtd-merge
      - github-rtd-verify

Macros

lf-rtd-common

RTD verify and merge jobs are the same except for their scm, trigger, and builders definition. This anchor is the common template.

Job Templates

ReadTheDocs Merge

Merge job which triggers a POST of the docs project to readthedocs.

To use this job first configure the Generic API incoming webhook in ReadTheDocs. To do that follow these steps:

  1. Browse to https://readthedocs.org/dashboard/PROJECT/integrations/

  2. Click on Generic API incoming webhook

    Note

    If not available click on Add integration and add the Generic API incoming webhook.

  3. Copy the custom webhook URL, this is your rtd-build-url

    For example: https://readthedocs.org/api/v2/webhook/opendaylight/32321/

  4. Copy the token, this is your rtd-token

Template Names
  • {project-name}-rtd-merge-{stream}

  • gerrit-rtd-merge

  • github-rtd-merge

Comment Trigger

remerge

Required parameters
build-node

The node to run build on.

jenkins-ssh-credential

Credential to use for SSH. (Generally set in defaults.yaml)

rtd-build-url

This is the generic webhook url from readthedocs.org. Refer to the above instructions to generate one. (Check Admin > Integrations > Generic API incoming webhook)

rtd-token

The unique token for the project Generic webhook. Refer to the above instructions to generate one. (Check Admin > Integrations > Generic API incoming webhook)

Optional parameters
branch

Git branch to fetch for the build. (default: master)

build-days-to-keep

Days to keep build logs in Jenkins. (default: 7)

build-timeout

Timeout in minutes before aborting build. (default: 15)

git-url

base URL of git project. (default: https://github.com)

project-pattern

Project to trigger build against. (default: **)

stream

Keyword representing a release code-name. Often the same as the branch. (default: master)

submodule-recursive

Whether to checkout submodules recursively. (default: true)

submodule-timeout

Timeout (in minutes) for checkout operation. (default: 10)

submodule-disable

Disable submodule checkout operation. (default: false)

gerrit_merge_triggers

Override Gerrit Triggers.

gerrit_trigger_file_paths

Override file paths filter which checks which file modifications will trigger a build. default:

- compare-type: ANT
  pattern: '**/*.rst'
- compare-type: ANT
  pattern: '**/conf.py'

ReadTheDocs Verify

Verify job which runs tox to test the docs project

Template Names
  • {project-name}-rtd-verify-{stream}

  • gerrit-rtd-verify

  • github-rtd-verify

Comment Trigger

recheck|reverify

Required Parameters
build-node

The node to run build on.

jenkins-ssh-credential

Credential to use for SSH. (Generally set in defaults.yaml)

Optional Parameters
branch

Git branch to fetch for the build. (default: master)

build-days-to-keep

Days to keep build logs in Jenkins. (default: 7)

build-node

The node to run build on.

build-timeout

Timeout in minutes before aborting build. (default: 15)

doc-dir

Directory where tox will place built docs. as defined in the tox.ini (default: docs/_build/html)

gerrit-skip-vote

Skip voting for this job. (default: false)

git-url

URL clone project from. (default: $GIT_URL/$PROJECT)

project-pattern

Project to trigger build against. (default: **)

python-version

Python version (default: python2)

stream

Keyword representing a release code-name. Often the same as the branch. (default: master)

submodule-recursive

Whether to checkout submodules recursively. (default: true)

submodule-timeout

Timeout (in minutes) for checkout operation. (default: 10)

submodule-disable

Disable submodule checkout operation. (default: false)

gerrit_verify_triggers

Override Gerrit Triggers.

gerrit_trigger_file_paths

Override file paths filter which checks which file modifications will trigger a build. default:

- compare-type: ANT
  pattern: '**/*.rst'
- compare-type: ANT
  pattern: '**/conf.py'