Chore: Upgrade Jenkins-job-builder to 6.3.0
[releng/global-jjb.git] / jjb / lf-release-jobs.yaml
index b95ffe8..229b86e 100644 (file)
@@ -11,7 +11,7 @@
 # COMMON FUNCTIONS #
 ####################
 
-- lf_release_common: &lf_release_common
+- _lf_release_common: &lf_release_common
     name: lf-release-common
 
     #####################
@@ -32,7 +32,7 @@
 # RELEASE VERIFY #
 ##################
 
-- lf_release_verify: &lf_release_verify
+- _lf_release_verify: &lf_release_verify
     name: lf-release-verify
 
     ######################
@@ -44,6 +44,7 @@
     disable-job: false
     git-url: "$GIT_URL/$PROJECT"
     gerrit-skip-vote: false
+    stream: master
     use-release-file: true
 
     gerrit_verify_triggers:
@@ -56,6 +57,9 @@
           # yamllint disable-line rule:line-length
           comment-contains-value: '^Patch Set\s+\d+:\s+(recheck|reverify)\s*$'
 
+    github_included_regions:
+      - '(releases\/.*\.yaml|\.releases\/.*\.yaml)'
+
     #####################
     # Job Configuration #
     #####################
       - lf-release
 
 - job-template:
-    name: "{project-name}-release-verify"
+    name: "{project-name}-release-verify-{stream}"
     id: gerrit-release-verify
     <<: *lf_release_common
     # yamllint disable-line rule:key-duplicates
               project-pattern: "{project}"
               branches:
                 - branch-compare-type: "ANT"
-                  branch-pattern: "**"
+                  branch-pattern: "**/{branch}"
               file-paths:
                 - compare-type: REG_EXP
                   pattern: '(releases\/.*\.yaml|\.releases\/.*\.yaml)'
             unstable: "{gerrit-skip-vote}"
             notbuilt: "{gerrit-skip-vote}"
 
+- job-template:
+    name: "{project-name}-release-verify-{stream}"
+    id: github-release-verify
+    <<: *lf_release_common
+    # yamllint disable-line rule:key-duplicates
+    <<: *lf_release_verify
+
+    properties:
+      - lf-infra-properties:
+          build-days-to-keep: "{build-days-to-keep}"
+      - github:
+          url: "{github-url}/{github-org}/{project}"
+
+    wrappers:
+      - lf-infra-wrappers:
+          build-timeout: "{build-timeout}"
+          jenkins-ssh-credential: "{jenkins-ssh-credential}"
+
+    scm:
+      - lf-infra-github-scm:
+          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}"
+
+    triggers:
+      - github-pull-request:
+          trigger-phrase: ^(recheck|reverify)$
+          only-trigger-phrase: false
+          status-context: "Github Release Verify"
+          permit-all: true
+          github-hooks: true
+          white-list-target-branches:
+            - "{branch}"
+          included-regions: "{obj:github_included_regions}"
+
 #################
 # RELEASE MERGE #
 #################
 
-- lf_release_merge: &lf_release_merge
+- _lf_release_merge: &lf_release_merge
     name: lf-release-merge
 
     ######################
 
     build-days-to-keep: 7
     build-timeout: 15
+    cosign-password-id: cosign-password
+    cosign-private-key-id: cosign-private-key
     disable-job: false
     git-url: "$GIT_URL/$PROJECT"
+    stream: master
     use-release-file: true
 
     gerrit_merge_triggers:
       - comment-added-contains-event:
           comment-contains-value: '^Patch Set\s+\d+:\s+remerge\s*$'
 
+    github_included_regions:
+      - '(releases\/.*\.yaml|\.releases\/.*\.yaml)'
+
     #####################
     # Job Configuration #
     #####################
           stream: "$GERRIT_BRANCH"
       - lf-build-with-parameters-maven-release:
           use-release-file: "{use-release-file}"
+      - bool:
+          name: TAG_RELEASE
+          default: true
+          description: |
+            Tag Gerrit repo after release.
       - bool:
           name: DRY_RUN
           default: false
       - lf-release
 
 - job-template:
-    name: "{project-name}-release-merge"
+    name: "{project-name}-release-merge-{stream}"
     id: gerrit-release-merge
     <<: *lf_release_common
     # yamllint disable-line rule:key-duplicates
       - lf-infra-wrappers:
           build-timeout: "{build-timeout}"
           jenkins-ssh-credential: "{jenkins-ssh-release-credential}"
+      - credentials-binding:
+          - file:
+              credential-id: "{cosign-private-key-id}"
+              variable: COSIGN_PRIVATE_KEY
+          - text:
+              credential-id: "{cosign-password-id}"
+              variable: COSIGN_PASSWORD
 
     scm:
       - lf-infra-gerrit-scm:
           submodule-disable: true
           submodule-recursive: false
           submodule-timeout: 10
+          # release merge jobs build from commit not tip
           choosing-strategy: gerrit
 
     triggers:
               project-pattern: "{project}"
               branches:
                 - branch-compare-type: "ANT"
-                  branch-pattern: "**"
+                  branch-pattern: "**/{branch}"
               file-paths:
                 - compare-type: REG_EXP
                   pattern: '(releases\/.*\.yaml|\.releases\/.*\.yaml)'
 
+- job-template:
+    name: "{project-name}-release-merge-{stream}"
+    id: github-release-merge
+    <<: *lf_release_common
+    # yamllint disable-line rule:key-duplicates
+    <<: *lf_release_merge
+
+    properties:
+      - lf-infra-properties:
+          build-days-to-keep: "{build-days-to-keep}"
+      - github:
+          url: "{github-url}/{github-org}/{project}"
+
+    wrappers:
+      - lf-infra-wrappers:
+          build-timeout: "{build-timeout}"
+          jenkins-ssh-credential: "{jenkins-ssh-credential}"
+      - credentials-binding:
+          - file:
+              credential-id: "{cosign-private-key-id}"
+              variable: COSIGN_PRIVATE_KEY
+          - text:
+              credential-id: "{cosign-password-id}"
+              variable: COSIGN_PASSWORD
+
+    scm:
+      - lf-infra-github-scm:
+          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}"
+
+    triggers:
+      - github-pull-request:
+          trigger-phrase: "^remerge$"
+          only-trigger-phrase: true
+          status-context: "Github Release Merge"
+          permit-all: true
+          github-hooks: true
+          white-list-target-branches:
+            - "{branch}"
+          included-regions: "{obj:github_included_regions}"
+
 ################
 # PyPI RELEASE #
 ################
 
-- lf_pypi_verify_wrappers: &lf_pypi_verify_wrappers
+- _lf_pypi_verify_wrappers: &lf_pypi_verify_wrappers
     name: lf-pypi-verify-wrappers
 
     wrappers:
           build-timeout: "{build-timeout}"
           jenkins-ssh-credential: "{jenkins-ssh-credential}"
 
-- lf_pypi_release_wrappers: &lf_pypi_release_wrappers
+- _lf_pypi_release_wrappers: &lf_pypi_release_wrappers
     name: lf-pypi-release-wrappers
 
     wrappers:
           build-timeout: "{build-timeout}"
           jenkins-ssh-credential: "{jenkins-ssh-release-credential}"
 
-- lf_pypi_release: &lf_pypi_release
+- _lf_pypi_release: &lf_pypi_release
     name: lf-pypi-release
 
     ######################
           name: USE_RELEASE_FILE
           default: true
           description: "Set to False (unchecked) to build with parameters"
+      - bool:
+          name: TAG_RELEASE
+          default: true
+          description: |
+            Tag Gerrit repo after release.
       - bool:
           name: DRY_RUN
           default: false
           submodule-recursive: "{submodule-recursive}"
           submodule-timeout: "{submodule-timeout}"
           submodule-disable: "{submodule-disable}"
+          # release merge jobs build from commit not tip
           choosing-strategy: gerrit
 
     triggers:
               project-pattern: "{project}"
               branches:
                 - branch-compare-type: ANT
-                  branch-pattern: "**"
+                  branch-pattern: "**/{branch}"
               file-paths: "{obj:gerrit_release_trigger_file_paths}"
 
 - job-template:
               project-pattern: "{project}"
               branches:
                 - branch-compare-type: ANT
-                  branch-pattern: "**"
+                  branch-pattern: "**/{branch}"
               file-paths: "{obj:gerrit_release_trigger_file_paths}"
 
 - job-template:
 # PackageCloud RELEASE #
 ########################
 
-- lf_packagecloud_release_common: &lf_packagecloud_release_common
+- _lf_packagecloud_release_common: &lf_packagecloud_release_common
     name: lf-packagecloud-release-common
 
     ######################
     git-url: "$GIT_URL/$PROJECT"
     gerrit-skip-vote: false
     use-release-file: true
-    account-name: "{account-name}"
-    source-repo: "{source-repo}"
+    account-name: ""
+    source-repo: ""
 
     #####################
     # Job Configuration #
           name: DISTRIBUTION_TYPE
           default: "packagecloud"
           description: "The Jenkins release job distribution type."
+      - bool:
+          name: TAG_RELEASE
+          default: true
+          description: |
+            Tag Gerrit repo after release.
       - bool:
           name: DRY_RUN
           default: false
               project-pattern: "{project}"
               branches:
                 - branch-compare-type: "ANT"
-                  branch-pattern: "**"
+                  branch-pattern: "**/{branch}"
               file-paths:
                 - compare-type: REG_EXP
                   pattern: '(releases\/packagecloud.*\.yaml|\.releases\/packagecloud.*\.yaml)'
           submodule-disable: true
           submodule-recursive: false
           submodule-timeout: 10
+          # release merge jobs build from commit not tip
           choosing-strategy: gerrit
 
     triggers:
               project-pattern: "{project}"
               branches:
                 - branch-compare-type: "ANT"
-                  branch-pattern: "**"
+                  branch-pattern: "**/{branch}"
               file-paths:
                 - compare-type: REG_EXP
                   pattern: '(releases\/packagecloud.*\.yaml|\.releases\/packagecloud.*\.yaml)'