---
-- 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.
######################
# 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 #
#####################
project-type: freestyle
- node: '{build-node}'
+ node: "{build-node}"
properties:
- lf-infra-properties:
parameters:
- lf-infra-parameters:
- project: '{project}'
- branch: '{branch}'
- refspec: 'refs/heads/{branch}'
- stream: '{stream}'
- lftools-version: '{lftools-version}'
+ project: "{project}"
+ branch: "{branch}"
+ refspec: "refs/heads/{branch}"
+ stream: "{stream}"
wrappers:
- lf-infra-wrappers:
- build-timeout: '{build-timeout}'
- jenkins-ssh-credential: '{jenkins-ssh-credential}'
+ build-timeout: "{build-timeout}"
+ jenkins-ssh-credential: "{jenkins-ssh-credential}"
publishers:
- lf-infra-publish
- 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)
- #
- # :gerrit_merge_triggers: Override Gerrit Triggers.
- # :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 #
######################
branch: master
build-days-to-keep: 7
build-timeout: 15
+ disable-job: false
git-url: https://github.com
- project-pattern: '**'
+ 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$
+ comment-contains-value: '^Patch Set\s+\d+:\s+remerge\s*$'
#####################
# 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}'
+ name: "{project-name}-rtd-merge-{stream}"
id: gerrit-rtd-merge
<<: *lf_rtd_common
# yamllint disable-line rule:key-duplicates
triggers:
- gerrit:
- server-name: '{gerrit-server-name}'
- trigger-on: '{obj:gerrit_merge_triggers}'
+ server-name: "{gerrit-server-name}"
+ trigger-on: "{obj:gerrit_merge_triggers}"
projects:
- - project-compare-type: 'ANT'
- project-pattern: '{project-pattern}'
+ - project-compare-type: "ANT"
+ project-pattern: "{project-pattern}"
branches:
- - branch-compare-type: 'ANT'
- branch-pattern: '**/{branch}'
- file-paths: '{obj:gerrit_trigger_file_paths}'
+ - branch-compare-type: "ANT"
+ branch-pattern: "**/{branch}"
+ - branch-compare-type: "ANT"
+ branch-pattern: "refs/tags/**"
+ file-paths: "{obj:gerrit_trigger_file_paths}"
- job-template:
- name: '{project-name}-rtd-merge-{stream}'
+ name: "{project-name}-rtd-merge-{stream}"
id: github-rtd-merge
<<: *lf_rtd_common
# yamllint disable-line rule:key-duplicates
<<: *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:
- trigger-phrase: '^remerge$'
- only-trigger-phrase: false
- status-context: 'RTD Merge'
+ - timed: "H H * * *"
+ - github
+ - pollscm:
+ cron: ""
+ - github-pull-request:
+ trigger-phrase: "^remerge$"
+ 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)
- #
- # :gerrit_verify_triggers: Override Gerrit Triggers.
- # :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 #
branch: master
build-days-to-keep: 7
build-timeout: 15
+ disable-job: false
doc-dir: docs/_build/html
- git-url: '$GIT_URL/$PROJECT'
- project-pattern: '**'
+ git-url: "$GIT_URL/$PROJECT"
+ github-url: "https://github.com"
+ project-pattern: "**"
+ python-version: python3
stream: master
submodule-recursive: true
+ submodule-timeout: 10
+ submodule-disable: false
+ gerrit-skip-vote: false
gerrit_verify_triggers:
- patchset-created-event:
- exclude-drafts: false
+ exclude-drafts: true
exclude-trivial-rebase: false
exclude-no-code-change: false
- draft-published-event
- comment-added-contains-event:
- comment-contains-value: recheck$
+ comment-contains-value: '^Patch Set\s+\d+:\s+(recheck|reverify)\s*$'
#####################
# Job Configuration #
#####################
+ disabled: "{disable-job}"
+
builders:
+ - lf-infra-pre-build
- lf-rtd-verify:
- doc-dir: '{doc-dir}'
+ doc-dir: "{doc-dir}"
+ python-version: "{python-version}"
- job-template:
- name: '{project-name}-rtd-verify-{stream}'
+ name: "{project-name}-rtd-verify-{stream}"
id: gerrit-rtd-verify
concurrent: true
<<: *lf_rtd_common
scm:
- lf-infra-gerrit-scm:
- branch: '{branch}'
- jenkins-ssh-credential: '{jenkins-ssh-credential}'
- git-url: '{git-url}'
- refspec: ''
- submodule-recursive: '{submodule-recursive}'
+ branch: "$GERRIT_BRANCH"
+ jenkins-ssh-credential: "{jenkins-ssh-credential}"
+ git-url: "{git-url}"
+ refspec: "" # Leave blank!! A later script will handle fetching
+ submodule-recursive: "{submodule-recursive}"
+ submodule-timeout: "{submodule-timeout}"
+ submodule-disable: "{submodule-disable}"
choosing-strategy: default
triggers:
- gerrit:
- server-name: '{gerrit-server-name}'
- trigger-on: '{obj:gerrit_verify_triggers}'
+ server-name: "{gerrit-server-name}"
+ trigger-on: "{obj:gerrit_verify_triggers}"
projects:
- - project-compare-type: 'ANT'
- project-pattern: '{project-pattern}'
+ - project-compare-type: "ANT"
+ project-pattern: "{project-pattern}"
branches:
- - branch-compare-type: 'ANT'
- branch-pattern: '**/{branch}'
- file-paths: '{obj:gerrit_trigger_file_paths}'
+ - 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}'
+ name: "{project-name}-rtd-verify-{stream}"
id: github-rtd-verify
concurrent: true
<<: *lf_rtd_common
<<: *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}'
- submodule-recursive: '{submodule-recursive}'
+ url: "{git-clone-url}{github-org}/{project}"
+ refspec: "+refs/pull/*:refs/remotes/origin/pr/*"
+ branch: "$sha1"
+ submodule-recursive: "{submodule-recursive}"
+ submodule-timeout: "{submodule-timeout}"
+ submodule-disable: "{submodule-disable}"
choosing-strategy: default
- jenkins-ssh-credential: '{jenkins-ssh-credential}'
+ 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'
+ 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}"