Merge "Enable SBOM on etsicatalog project"
[ci-management.git] / jjb / global-templates-helm.yaml
index 038b359..475efa0 100644 (file)
@@ -1,4 +1,15 @@
 ---
+############
+# BUILDERS #
+############
+
+- builder:
+    name: oom-create-netrc
+    builders:
+      - inject:
+          properties-content: "SERVER_ID={server-id}"
+      - shell: !include-raw-escape: ../shell/oom-create-netrc.sh
+
 ###########
 # ANCHORS #
 ###########
     submodule-recursive: true
 
     # default params for helm jobs
-    pre_build_script: ''
+    build_script: ''
+    git-url: '$GIT_URL/$PROJECT'
     post_build_script: ''
+    pre_build_script: ''
+    submodule-disable: false
+    submodule-timeout: 10
+    build-timeout: 240
 
     #####################
     # Job Configuration #
     publishers:
       - lf-infra-publish
 
-- helm_verify_boiler_plate: &helm_verify_boiler_plate
-    name: helm_verify_boiler_plate
+#################
+# JOB TEMPLATES #
+#################
+- job-template:
+    name: '{project-name}-{stream}-verify-{helm_bin}'
+    # Job template for helm verify jobs
 
+    <<: *helm_job_boiler_plate
     concurrent: true
 
     scm:
       - gerrit-trigger-scm:
           refspec: '$GERRIT_REFSPEC'
-          choosing-strategy: 'default'
+          choosing-strategy: 'gerrit'
           submodule-recursive: '{submodule-recursive}'
 
     triggers:
-      - gerrit-trigger-patch-submitted:
+      - gerrit-trigger-helm-patch-submitted:
           status-context: '{project}-Helm-Verify'
           server: '{server-name}'
           project: '{project}'
           branch: '{branch}'
+          helm_bin: '{helm_bin}'
           files: '{files}'
 
-- helm_merge_boiler_plate: &helm_merge_boiler_plate
-    name: helm_merge_boiler_plate
+    builders:
+      - lf-infra-pre-build
+      - shell: |
+          echo "export HELM_BIN={helm_bin}" > helm.prop
+      - shell: '{obj:pre_build_script}'
+      - shell: '{obj:build_script}'
+
+- job-template:
+    name: '{project-name}-{stream}-merge-helm'
+    # Job template for Helm merge jobs
+
+    <<: *helm_job_boiler_plate
 
     scm:
       - gerrit-trigger-scm:
-          refspec: '$GERRIT_REFSPEC'
+          refspec: ''
           choosing-strategy: 'default'
           submodule-recursive: '{submodule-recursive}'
 
     triggers:
-      - gerrit-trigger-patch-merged:
+      - gerrit-trigger-helm-patch-merged:
           server: '{server-name}'
           project: '{project}'
           branch: '{branch}'
           files: '{files}'
-      - pollscm:
-          cron: ''
 
-#################
-# JOB TEMPLATES #
-#################
+    builders:
+      - lf-infra-pre-build
+      - lf-provide-maven-settings:
+          global-settings-file: '{mvn-global-settings}'
+          settings-file: '{mvn-settings}'
+      - shell: |
+          echo "export HELM_BIN=helm3.6" > helm.prop
+      - shell: '{obj:pre_build_script}'
+      - shell: '{obj:build_script}'
+      - oom-create-netrc:
+          server-id: oom-helm
+      - inject:
+          properties-content: |
+            BUILD_TYPE=snapshot
+      - shell: '{obj:post_build_script}'
+      - lf-provide-maven-settings-cleanup
+
 - job-template:
-    name: '{project-name}-{stream}-verify-helm'
+    name: '{project-name}-{stream}-verify-external-helm'
     # Job template for helm verify jobs
 
     <<: *helm_job_boiler_plate
-    # yamllint disable-line rule:key-duplicates
-    <<: *helm_verify_boiler_plate
+
+    parameters:
+      - lf-infra-parameters:
+          branch: '{branch}'
+          project: 'oom'
+          stream: '{stream}'
+          lftools-version: '{lftools-version}'
+
+    scm:
+      - lf-infra-gerrit-scm:
+          jenkins-ssh-credential: '{jenkins-ssh-credential}'
+          git-url: '{git-url}'
+          refspec: '$GERRIT_BRANCH'
+          branch: '$GERRIT_BRANCH'
+          submodule-recursive: '{submodule-recursive}'
+          submodule-timeout: '{submodule-timeout}'
+          submodule-disable: '{submodule-disable}'
+          choosing-strategy: default
+
+    triggers:
+      - gerrit-trigger-helm-patch-submitted:
+          status-context: '{project}-Helm-Verify'
+          server: '{server-name}'
+          project: '{project}'
+          branch: '{branch}'
+          files: '{files}'
 
     builders:
-      - shell: '{pre_build_script}'
-      - shell: '{build_script}'
-      - shell: '{post_build_script}'
+      - lf-infra-pre-build
+      - inject:
+          properties-content: 'HELM_MODULE={helm-module}'
+      - shell: !include-raw-escape: shell/apply-submodule-patch-oom.sh
+      - shell: |
+          echo "export HELM_BIN=helm3.6" > helm.prop
+      - shell: '{obj:pre_build_script}'
+      - shell: '{obj:build_script}'
 
 - job-template:
-    name: '{project-name}-{stream}-merge-helm'
+    name: '{project-name}-{stream}-merge-external-helm'
     # Job template for Helm merge jobs
 
     <<: *helm_job_boiler_plate
-    # yamllint disable-line rule:key-duplicates
-    <<: *helm_merge_boiler_plate
+
+    parameters:
+      - lf-infra-parameters:
+          branch: '{branch}'
+          project: 'oom'
+          stream: '{stream}'
+          lftools-version: '{lftools-version}'
+
+    scm:
+      - lf-infra-gerrit-scm:
+          jenkins-ssh-credential: '{jenkins-ssh-credential}'
+          git-url: '{git-url}'
+          refspec: '$GERRIT_BRANCH'
+          branch: '$GERRIT_BRANCH'
+          submodule-recursive: '{submodule-recursive}'
+          submodule-timeout: '{submodule-timeout}'
+          submodule-disable: '{submodule-disable}'
+          choosing-strategy: default
+
+    triggers:
+      - gerrit-trigger-helm-patch-merged:
+          server: '{server-name}'
+          project: '{project}'
+          branch: '{branch}'
+          files: '{files}'
+
+    builders:
+      - lf-infra-pre-build
+      - inject:
+          properties-content: 'HELM_MODULE={helm-module}'
+      - lf-provide-maven-settings:
+          global-settings-file: 'global-settings'
+          settings-file: '{mvn-settings}'
+      - shell: |
+          echo "export HELM_BIN=helm3.6" > helm.prop
+      - shell: '{obj:pre_build_script}'
+      - shell: '{obj:build_script}'
+      - oom-create-netrc:
+          server-id: oom-helm
+      - inject:
+          properties-content: |
+            BUILD_TYPE=snapshot
+      - shell: '{obj:post_build_script}'
+      - lf-provide-maven-settings-cleanup
+
+- job-template:
+    name: '{project-name}-{stream}-release-helm'
+    # Job template for Helm stage jobs
+
+    <<: *helm_job_boiler_plate
+
+    scm:
+      - gerrit-trigger-scm:
+          refspec: ''
+          choosing-strategy: 'default'
+          submodule-recursive: '{submodule-recursive}'
+
+    triggers:
+      - gerrit:
+          server-name: '{gerrit-server-name}'
+          trigger-on:
+            - comment-added-contains-event:
+                comment-contains-value: '^Patch Set\s+\d+:\s+release-helm\s*$'
+          projects:
+            - project-compare-type: 'ANT'
+              project-pattern: '{project}'
+              branches:
+                - branch-compare-type: 'ANT'
+                  branch-pattern: '**/{branch}'
+              file-paths:
+                - compare-type: 'ANT'
+                  pattern: '**'
 
     builders:
-      - shell: '{pre_build_script}'
-      - shell: '{build_script}'
-      - shell: '{post_build_script}'
+      - lf-infra-pre-build
+      - lf-provide-maven-settings:
+          global-settings-file: '{mvn-global-settings}'
+          settings-file: '{mvn-settings}'
+      - shell: |
+          echo "export HELM_BIN=helm3.6" > helm.prop
+      - shell: '{obj:pre_build_script}'
+      - shell: '{obj:build_script}'
+      - oom-create-netrc:
+          server-id: oom-helm
+      - inject:
+          properties-content: |
+            BUILD_TYPE=release
+      - shell: '{obj:post_build_script}'
+      - lf-provide-maven-settings-cleanup
 
 - job-template:
     name: '{project-name}-{subproject}-{stream}-verify-helm'
     # Job template for helm verify jobs
 
     <<: *helm_job_boiler_plate
-    # yamllint disable-line rule:key-duplicates
-    <<: *helm_verify_boiler_plate
 
+    disabled: true
     builders:
+      - lf-infra-pre-build
+      - shell: |
+          echo "export HELM_BIN=helm3.6" > helm.prop
       - shell: '{pre_build_script}'
       - shell: '{build_script}'
       - shell: '{post_build_script}'
     # Job template for helm merge jobs
 
     <<: *helm_job_boiler_plate
-    # yamllint disable-line rule:key-duplicates
-    <<: *helm_merge_boiler_plate
 
+    disabled: true
     builders:
+      - lf-infra-pre-build
+      - shell: |
+          echo "export HELM_BIN=helm3.6" > helm.prop
       - shell: '{pre_build_script}'
       - shell: '{build_script}'
+      - inject:
+          properties-content: |
+            BUILD_TYPE=snapshot
       - shell: '{post_build_script}'
 
 - job-template:
     #     branch:    git branch (eg. stable/lithium or master)
     <<: *helm_job_boiler_plate
 
+    disabled: true
     scm:
       - lf-infra-gerrit-scm:
           jenkins-ssh-credential: '{jenkins-ssh-credential}'
           refspec: '$GERRIT_REFSPEC'
           branch: '$GERRIT_BRANCH'
           submodule-recursive: true
+          submodule-timeout: '{submodule-timeout}'
+          submodule-disable: '{submodule-disable}'
           choosing-strategy: default
 
     builders:
+      - lf-infra-pre-build
+      - shell: |
+          echo "export HELM_BIN=helm3.6" > helm.prop
       - shell: '{pre_build_script}'
       - shell: '{build_script}'
       - shell: '{post_build_script}'
 
     triggers:
       # 11 AM UTC
-      - timed: 'H 11 * * *'
+      - timed: '@daily'
       - gerrit-trigger-release-manually:
           server: '{server-name}'
           project: '{project}'
           branch: '{branch}'
-