Chore: Upgrade Jenkins-job-builder to 6.3.0
[releng/global-jjb.git] / jjb / lf-rtd-jobs.yaml
index 9feaec1..24bef44 100644 (file)
@@ -1,47 +1,37 @@
 ---
-- 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
+- _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
 # RTD MERGE #
 #############
 
-- lf_rtd_merge: &lf_rtd_merge
+- _lf_rtd_merge: &lf_rtd_merge
     name: lf-rtd-merge
 
-    # Merge job which triggers a POST of the docs project to readthedocs
-    #
-    # Required parameters:
-    #
-    #     :build-node: The node to run build on.
-    #     :jenkins-ssh-credential: Credential to use for SSH. (Generally should
-    #         be configured in defaults.yaml)
-    #     :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-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)
-    #     :submodule-recursive: Whether to checkout submodules recursively.
-    #         (default: true)
-    #
-    #     :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_allowlist}"
+          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
+- _lf_rtd_verify: &lf_rtd_verify
     name: lf-rtd-verify
-    # Verify job which runs a tox build of the docs project
-    #
-    # Required Parameters:
-    #
-    #     :build-node: The node to run build on.
-    #     :jenkins-ssh-credential: Credential to use for SSH. (Generally should
-    #         be configured 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 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-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}"