[CPS] Jobs for newdelhi branch
[ci-management.git] / jjb / global-templates-helm.yaml
index d6f1374..ccf19b5 100644 (file)
@@ -1,48 +1,79 @@
 ---
+############
+# BUILDERS #
+############
+
+- builder:
+    name: oom-create-netrc
+    builders:
+      - inject:
+          properties-content: "SERVER_ID={server-id}"
+      - shell: !include-raw-escape: ../shell/helm/oom-create-netrc.sh
+
+- builder:
+    name: helm-install
+    builders:
+      - inject:
+          properties-content: "HELM_VER={helm_ver}"
+      - shell: !include-raw-escape: ../shell/helm/helm-install.sh
+
 ###########
 # ANCHORS #
 ###########
-- helm_job_boiler_plate: &helm_job_boiler_plate
+- _helm_job_boiler_plate: &helm_job_boiler_plate
     name: helm_job_boiler_plate
 
     ######################
     # Default parameters #
     ######################
-
     branch: master
-    submodule-recursive: true
-
     # default params for helm jobs
-    build_script: ''
-    git-url: '$GIT_URL/$PROJECT'
-    post_build_script: ''
-    pre_build_script: ''
-    submodule-disable: false
-    submodule-timeout: 10
-    build-timeout: 180
+    build_script: ""
+    git-url: "$GIT_URL/$PROJECT"
+    post_build_script: ""
+    pre_build_script: ""
+    build-timeout: 240
 
     #####################
     # Job Configuration #
     #####################
 
     project-type: freestyle
-    node: '{build-node}'
+    node: "{build-node}"
 
     properties:
       - lf-infra-properties:
-          build-days-to-keep: '{build-days-to-keep}'
+          build-days-to-keep: "{build-days-to-keep}"
 
     parameters:
       - lf-infra-parameters:
-          branch: '{branch}'
-          project: '{project}'
-          stream: '{stream}'
-          lftools-version: '{lftools-version}'
+          branch: "{branch}"
+          project: "{project}"
+          stream: "{stream}"
+          lftools-version: "{lftools-version}"
+      - string:
+          name: HELM_BIN
+          default: "{helm_bin|helm3.8}"
+      - string:
+          name: BUILD_TYPE
+          default: "{build_type|snapshot}"
 
     wrappers:
       - lf-infra-wrappers:
-          build-timeout: '{build-timeout}'
-          jenkins-ssh-credential: '{jenkins-ssh-credential}'
+          build-timeout: "{build-timeout}"
+          jenkins-ssh-credential: "{jenkins-ssh-credential}"
+
+    builders:
+      - lf-infra-pre-build
+      - lf-provide-maven-settings:
+          global-settings-file: "{mvn-global-settings}"
+          settings-file: "{mvn-settings}"
+      - shell: "{obj:pre_build_script}"
+      - shell: "{obj:build_script}"
+      - oom-create-netrc:
+          server-id: oom-helm
+      - shell: "{obj:post_build_script}"
+      - lf-provide-maven-settings-cleanup
 
     publishers:
       - lf-infra-publish
@@ -51,7 +82,7 @@
 # JOB TEMPLATES #
 #################
 - job-template:
-    name: '{project-name}-{stream}-verify-helm'
+    name: "{project-name}-{stream}-verify-{helm_bin}"
     # Job template for helm verify jobs
 
     <<: *helm_job_boiler_plate
 
     scm:
       - gerrit-trigger-scm:
-          refspec: '$GERRIT_REFSPEC'
-          choosing-strategy: 'gerrit'
-          submodule-recursive: '{submodule-recursive}'
+          refspec: "$GERRIT_REFSPEC"
+          choosing-strategy: "gerrit"
+          submodule-recursive: "{submodule-recursive}"
 
     triggers:
       - gerrit-trigger-helm-patch-submitted:
-          status-context: '{project}-Helm-Verify'
-          server: '{server-name}'
-          project: '{project}'
-          branch: '{branch}'
-          files: '{files}'
-
-    builders:
-      - lf-infra-pre-build
-      - shell: '{obj:pre_build_script}'
-      - shell: '{obj:build_script}'
+          server: "{server-name}"
+          project: "{project}"
+          branch: "{branch}"
+          files: "{files}"
 
 - job-template:
-    name: '{project-name}-{stream}-merge-helm'
+    name: "{project-name}-{stream}-merge-helm"
     # Job template for Helm merge jobs
 
     <<: *helm_job_boiler_plate
 
     scm:
       - gerrit-trigger-scm:
-          refspec: ''
-          choosing-strategy: 'default'
-          submodule-recursive: '{submodule-recursive}'
+          refspec: ""
+          choosing-strategy: "default"
+          submodule-recursive: "{submodule-recursive}"
 
     triggers:
       - gerrit-trigger-helm-patch-merged:
-          server: '{server-name}'
-          project: '{project}'
-          branch: '{branch}'
-          files: '{files}'
-
-    builders:
-      - lf-infra-pre-build
-      - lf-provide-maven-settings:
-          global-settings-file: '{mvn-global-settings}'
-          settings-file: '{mvn-settings}'
-      - shell: '{obj:pre_build_script}'
-      - shell: '{obj:build_script}'
-      - lf-infra-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-external-helm'
-    # Job template for helm verify jobs
-
-    <<: *helm_job_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:
-      - lf-infra-pre-build
-      - inject:
-          properties-content: 'HELM_MODULE={helm-module}'
-      - shell: !include-raw-escape: shell/apply-submodule-patch-oom.sh
-      - shell: '{obj:pre_build_script}'
-      - shell: '{obj:build_script}'
+          server: "{server-name}"
+          project: "{project}"
+          branch: "{branch}"
+          files: "{files}"
 
 - job-template:
-    name: '{project-name}-{stream}-merge-external-helm'
-    # Job template for Helm merge jobs
+    name: "{project-name}-{stream}-release-helm"
+    # Job template for Helm stage jobs
 
     <<: *helm_job_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
+      - gerrit-trigger-scm:
+          refspec: ""
+          choosing-strategy: "default"
+          submodule-recursive: "{submodule-recursive}"
 
     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: '{obj:pre_build_script}'
-      - shell: '{obj:build_script}'
-      - lf-infra-create-netrc:
-          server-id: oom-helm
-      - inject:
-          properties-content: |
-            BUILD_TYPE=snapshot
-      - shell: '{obj:post_build_script}'
-      - lf-provide-maven-settings-cleanup
+      - 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: "**"
 
 - job-template:
-    name: '{project-name}-{stream}-stage-helm'
-    # Job template for Helm stage jobs
+    name: "{project-name}-{stream}-verify-make-{helm_bin}"
 
     <<: *helm_job_boiler_plate
 
     scm:
       - gerrit-trigger-scm:
-          refspec: ''
-          choosing-strategy: 'default'
-          submodule-recursive: '{submodule-recursive}'
+          refspec: ""
+          choosing-strategy: "default"
+          submodule-recursive: "{submodule-recursive}"
 
     triggers:
-      - pollscm:
-          cron: '0 22 * * *'
       - gerrit:
+          server-name: "{gerrit-server-name}"
           trigger-on:
             - comment-added-contains-event:
-                comment-contains-value: '^stage-helm$'
+                comment-contains-value: '^Patch Set\s+\d+:\s+helm-latest\s*$'
+          projects:
+            - project-compare-type: "ANT"
+              project-pattern: "{project}"
+              branches:
+                - branch-compare-type: "ANT"
+                  branch-pattern: "**/{branch}"
+              file-paths:
+                - compare-type: "ANT"
+                  pattern: "**"
 
     builders:
       - lf-infra-pre-build
-      - lf-provide-maven-settings:
-          global-settings-file: '{mvn-global-settings}'
-          settings-file: '{mvn-settings}'
-      - shell: '{obj:pre_build_script}'
-      - shell: '{obj:build_script}'
-      - lf-infra-create-netrc:
-          server-id: oom-helm
-      - inject:
-          properties-content: |
-            BUILD_TYPE=staging
-      - 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
-
-    disabled: true
-    builders:
-      - lf-infra-pre-build
-      - shell: '{pre_build_script}'
-      - shell: '{build_script}'
-      - shell: '{post_build_script}'
-
-- job-template:
-    name: '{project-name}-{subproject}-{stream}-merge-helm'
-    # Job template for helm merge jobs
-
-    <<: *helm_job_boiler_plate
-
-    disabled: true
-    builders:
-      - lf-infra-pre-build
-      - shell: '{pre_build_script}'
-      - shell: '{build_script}'
-      - shell: '{post_build_script}'
-
-- job-template:
-    name: '{project-name}-{stream}-update-helm-weekly'
-    # Job template for weekly helm update jobs
-    #
-    # Required Variables:
-    #     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}'
-          git-url: '$GIT_URL/$PROJECT'
-          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: '{pre_build_script}'
-      - shell: '{build_script}'
-      - shell: '{post_build_script}'
-
-    triggers:
-      # 11 AM UTC
-      - timed: '@daily'
-      - gerrit-trigger-release-manually:
-          server: '{server-name}'
-          project: '{project}'
-          branch: '{branch}'
+      - helm-install:
+          helm_ver: 3.10.2
+      - shell: "{obj:pre_build_script}"
+      - shell: "{obj:build_script}"