Pass multiple pattern args in logs-deploy.sh
[releng/global-jjb.git] / jjb / lf-rtd-jobs.yaml
index 6dc3a99..9f686e2 100644 (file)
@@ -1,21 +1,4 @@
 ---
-- 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 #
@@ -61,7 +45,6 @@
           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}'