---
-- job-group:
- name: '{project-name}-rtd-jobs'
-
- # This job group contains all the ReadTheDocs jobs
-
- jobs:
- - gerrit-rtd-merge
- - gerrit-rtd-verify
-
-- job-group:
- name: '{project-name}-github-rtd-jobs'
-
- # This job group contains all the ReadTheDocs jobs
-
- jobs:
- - github-rtd-merge
- - github-rtd-verify
####################
# COMMON FUNCTIONS #
- lf_rtd_common: &lf_rtd_common
name: 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
- #
- # Optional parameters:
- # :gerrit_trigger_file_paths: Override file paths which can be used to
- # filter which file modifications will trigger a build.
- # (default: - compare-type: ANT
- # pattern: '**/*.rst'
- # - compare-type: ANT
- # pattern: '**/conf.py')
######################
# Default parameters #
######################
gerrit_trigger_file_paths:
- - compare-type: ANT
- pattern: '**/*.rst'
- - compare-type: ANT
- pattern: '**/conf.py'
+ - compare-type: REG_EXP
+ pattern: '.*\.css'
+ - compare-type: REG_EXP
+ pattern: '.*\.html'
+ - compare-type: REG_EXP
+ pattern: '.*\.rst'
+ - compare-type: REG_EXP
+ pattern: '.*\/conf.py'
+
+ # github_included_regions MUST match gerrit_trigger_file_paths
+ github_included_regions:
+ - '.*\.css'
+ - '.*\.html'
+ - '.*\.rst'
+ - '.*\/conf.py'
#####################
# Job Configuration #
branch: '{branch}'
refspec: 'refs/heads/{branch}'
stream: '{stream}'
- lftools-version: '{lftools-version}'
wrappers:
- lf-infra-wrappers:
- lf_rtd_merge: &lf_rtd_merge
name: lf-rtd-merge
- # Merge job which triggers a POST of the docs project to readthedocs
- #
- # Required parameters:
- #
- # :rtd-project: This is the name of the project on ReadTheDocs.org.
- #
- # 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 seconds 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 that can be used to represent a release code-name.
- # Often the same as the branch. (default: master)
-
######################
# Default parameters #
######################
branch: master
build-days-to-keep: 7
build-timeout: 15
+ disable-job: false
git-url: https://github.com
+ github-url: 'https://github.com'
project-pattern: '**'
stream: master
submodule-recursive: true
+ gerrit_merge_triggers:
+ - change-merged-event
+ - comment-added-contains-event:
+ comment-contains-value: remerge$
+ - ref-updated-event
+
#####################
# Job Configuration #
#####################
+ disabled: '{disable-job}'
+
builders:
+ - lf-infra-pre-build
- lf-rtd-trigger-build:
- rtd-project: '{rtd-project}'
+ rtd-build-url: '{rtd-build-url}'
+ rtd-token: '{rtd-token}'
- job-template:
name: '{project-name}-rtd-merge-{stream}'
triggers:
- gerrit:
server-name: '{gerrit-server-name}'
- trigger-on:
- - change-merged-event
- - comment-added-contains-event:
- comment-contains-value: 'remerge$'
+ trigger-on: '{obj:gerrit_merge_triggers}'
projects:
- project-compare-type: 'ANT'
project-pattern: '{project-pattern}'
branches:
- branch-compare-type: 'ANT'
branch-pattern: '**/{branch}'
+ - branch-compare-type: 'ANT'
+ branch-pattern: 'refs/tags/**'
file-paths: '{obj:gerrit_trigger_file_paths}'
- job-template:
<<: *lf_rtd_merge
properties:
+ - lf-infra-properties:
+ build-days-to-keep: '{build-days-to-keep}'
- github:
- url: '{git-url}/{github-org}/{project}'
+ url: '{github-url}/{github-org}/{project}'
triggers:
- - lf-infra-github-pr-trigger:
+ - timed: 'H H * * *'
+ - github
+ - pollscm:
+ cron: ''
+ - github-pull-request:
trigger-phrase: '^remerge$'
- only-trigger-phrase: false
+ only-trigger-phrase: true
status-context: 'RTD Merge'
permit-all: true
github-hooks: true
- github-org: ''
- github_pr_whitelist:
- - ''
- github_pr_admin_list:
- - ''
- - timed: 'H H * * *'
+ org-list:
+ - '{github-org}'
+ white-list: '{obj:github_pr_whitelist}'
+ admin-list: '{obj:github_pr_admin_list}'
+ included-regions: '{obj:github_included_regions}'
+ white-list-target-branches:
+ - '{branch}'
#############
# RTD VERIFY#
- lf_rtd_verify: &lf_rtd_verify
name: lf-rtd-verify
- # Verify job which runs a tox build of the docs project
- #
- # 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 seconds before aborting build. (default: 15)
- # :doc-dir: Directory where tox will place built docs.
- # as defined in the tox.ini (default: docs/_build/html)
- # :git-url: URL clone project from. (default: $GIT_URL/$PROJECT)
- # :project-pattern: Project to trigger build against. (default: **)
- # :stream: Keyword that can be used to represent a release code-name.
- # Often the same as the branch. (default: master)
- # :submodule-recursive: Whether to checkout submodules recursively.
- # (default: true)
######################
# Default parameters #
branch: master
build-days-to-keep: 7
build-timeout: 15
+ disable-job: false
doc-dir: docs/_build/html
git-url: '$GIT_URL/$PROJECT'
+ github-url: 'https://github.com'
project-pattern: '**'
stream: master
submodule-recursive: true
+ submodule-timeout: 10
+ gerrit-skip-vote: false
+
+ gerrit_verify_triggers:
+ - patchset-created-event:
+ exclude-drafts: true
+ exclude-trivial-rebase: false
+ exclude-no-code-change: false
+ - draft-published-event
+ - comment-added-contains-event:
+ comment-contains-value: '^Patch Set[ ]+[0-9]+:([ ]+|[\n]+)(recheck|reverify)$'
#####################
# Job Configuration #
#####################
+ disabled: '{disable-job}'
+
builders:
+ - lf-infra-pre-build
- lf-rtd-verify:
doc-dir: '{doc-dir}'
scm:
- lf-infra-gerrit-scm:
- branch: '{branch}'
+ branch: '$GERRIT_BRANCH'
jenkins-ssh-credential: '{jenkins-ssh-credential}'
git-url: '{git-url}'
- refspec: ''
+ refspec: '' # Leave blank!! A later script will handle fetching
submodule-recursive: '{submodule-recursive}'
+ submodule-timeout: '{submodule-timeout}'
choosing-strategy: default
triggers:
- gerrit:
server-name: '{gerrit-server-name}'
- trigger-on:
- - change-merged-event
- - comment-added-contains-event:
- comment-contains-value: 'recheck$'
+ trigger-on: '{obj:gerrit_verify_triggers}'
projects:
- project-compare-type: 'ANT'
project-pattern: '{project-pattern}'
- branch-compare-type: 'ANT'
branch-pattern: '**/{branch}'
file-paths: '{obj:gerrit_trigger_file_paths}'
+ skip-vote:
+ successful: '{gerrit-skip-vote}'
+ failed: '{gerrit-skip-vote}'
+ unstable: '{gerrit-skip-vote}'
+ notbuilt: '{gerrit-skip-vote}'
- job-template:
name: '{project-name}-rtd-verify-{stream}'
<<: *lf_rtd_verify
properties:
+ - lf-infra-properties:
+ build-days-to-keep: '{build-days-to-keep}'
- github:
- url: '{git-url}/{github-org}/{project}'
+ url: '{github-url}/{github-org}/{project}'
scm:
- lf-infra-github-scm:
url: '{git-clone-url}{github-org}/{project}'
refspec: '+refs/pull/*:refs/remotes/origin/pr/*'
- branch: '{branch}'
+ branch: '$sha1'
submodule-recursive: '{submodule-recursive}'
+ submodule-timeout: '{submodule-timeout}'
choosing-strategy: default
jenkins-ssh-credential: '{jenkins-ssh-credential}'
triggers:
- - lf-infra-github-pr-trigger:
- trigger-phrase: '^recheck$'
+ - github-pull-request:
+ trigger-phrase: '^(recheck|reverify)$'
only-trigger-phrase: false
status-context: 'RTD Verify'
permit-all: true
github-hooks: true
- github-org: ''
- github_pr_whitelist:
- - ''
- github_pr_admin_list:
- - ''
+ included-regions: '{obj:github_included_regions}'
+ white-list-target-branches:
+ - '{branch}'