Merge "Create jenkins pipeline for k6 performance tests"
[infra/cicd.git] / jjb / global / jjb-macros.yaml
index 0d9e530ea73faa87bd82d08df7aabb98ad4e8e4c..c1c6abea06f14e8cfa3b0b3663c5a46360e8d26b 100644 (file)
@@ -1,17 +1,4 @@
 ---
-# these parameters are used for infra related variables
-- parameter:
-    name: infra-parameters
-    parameters:
-      - string:
-          name: JJB_GIT_REPO
-          default: https://git.openstack.org/openstack-infra/jenkins-job-builder
-          description: OpenStack JJB repo
-      - string:
-          name: JJB_VERSION
-          default: 2.9.1
-          description: OpenStack JJB version to install - matches to LFN JJB version
-
 # these parameters are used for setting the Gerrit Project on Nordix
 - parameter:
     name: project-parameters
           default: ssh://$GERRIT_USER@git.opendaylight.org:29418
           description: SSH URL to Project Repo on ODL Gerrit to clone repo
 
+- parameter:
+    name: opendev-gerrit-parameters
+    parameters:
+      - string:
+          name: GERRIT_USER
+          default: nordix
+          description: Non-interactive user to stream Gerrit Events on OpenDev Gerrit
+      - string:
+          name: GIT_BASE_HTTPS
+          default: https://review.opendev.org
+          description: HTTPS URL to Project Repo on OpenDev Gerrit to clone repo
+      - string:
+          name: GIT_BASE_SSH
+          default: ssh://$GERRIT_USER@review.opendev.org:29418
+          description: SSH URL to Project Repo on OpenDev Gerrit to clone repo
+
+- parameter:
+    name: oransc-gerrit-parameters
+    parameters:
+      - string:
+          name: GERRIT_USER
+          default: nordix
+          description: Non-interactive user to stream Gerrit Events on ORAN-SC Gerrit
+      - string:
+          name: GIT_BASE_HTTPS
+          default: https://gerrit.o-ran-sc.org/r
+          description: HTTPS URL to Project Repo on ORAN-SC Gerrit to clone repo
+      - string:
+          name: GIT_BASE_SSH
+          default: ssh://$GERRIT_USER@gerrit.o-ran-sc.org:29418
+          description: SSH URL to Project Repo on ORAN-SC Gerrit to clone repo
+
+- parameter:
+    name: fdio-gerrit-parameters
+    parameters:
+      - string:
+          name: GERRIT_USER
+          default: nordix
+          description: Non-interactive user to stream Gerrit Events on Fast Data Project Gerrit
+      - string:
+          name: GIT_BASE_HTTPS
+          default: https://gerrit.fd.io/r
+          description: HTTPS URL to Project Repo on Fast Data Project Gerrit to clone repo
+      - string:
+          name: GIT_BASE_SSH
+          default: ssh://$GERRIT_USER@gerrit.fd.io:29418
+          description: SSH URL to Project Repo on Fast Data Project Gerrit to clone repo
+
+# Verify job for Geode git tags to make sure there are in agreed format
+- builder:
+    name: 'verify-geode-tag-macro'
+    builders:
+      - shell:
+          !include-raw: ./verify_geode_tag.sh
+
+- builder:
+    name: 'wait-pkg-mgr-macro'
+    builders:
+      - shell:
+          !include-raw: ./scripts/wait-for-pkg-manager.sh
+
 # defaults for job build history
 - property:
     name: logrotate-default
           artifact-days-to-keep: 60
           artifact-num-to-keep: 200
 
-# defaults for SCM and Gerrit
+# defaults for SCM, Gerrit and GitHub
 - scm:
     name: git-scm
     scm:
           shallow-clone: false
           use-author: false
           ignore-notify: false
-          wipe-workspace: true
+          wipe-workspace: '{wipe_workspace}'
           prune: false
+          clean:
+            after: false
+            before: '{clean_before}'
           choosing-strategy: 'default'
 
 - scm:
           shallow-clone: false
           use-author: false
           ignore-notify: false
-          wipe-workspace: true
+          wipe-workspace: '{wipe_workspace}'
           prune: false
+          clean:
+            after: false
+            before: '{clean_before}'
           choosing-strategy: 'gerrit'
 
+- scm:
+    name: git-scm-github
+    scm:
+      - git:
+          url: 'https://github.com/$PROJECT.git'
+          branches:
+            - '*/{branch}'
+          refspec: '{refspec}'
+          timeout: 15
+          per-build-tag: false
+          skip-tag: true
+          shallow-clone: false
+          use-author: false
+          ignore-notify: false
+          wipe-workspace: '{wipe_workspace}'
+          prune: false
+          clean:
+            after: false
+            before: '{clean_before}'
+          choosing-strategy: 'default'
+          basedir: '{base_dir}'
+
 # triggers for Nordix Gerrit
 - trigger:
     name: nordix-gerrit-trigger-patchset-created
                 - compare-type: 'ANT'
                   pattern: '{files}'
 
+- trigger:
+    name: nordix-gerrit-patchset-created-or-push-upstream
+    triggers:
+      - gerrit:
+          server-name: 'Nordix Gerrit'
+          trigger-on:
+            - comment-added-contains-event:
+                comment-contains-value: 'push-upstream'
+            - patchset-created-event:
+                exclude-drafts: true
+          projects:
+            - project-compare-type: 'ANT'
+              project-pattern: '{project}'
+              branches:
+                - branch-compare-type: 'ANT'
+                  branch-pattern: '**/{branch}'
+              file-paths:
+                - compare-type: 'ANT'
+                  pattern: '{files}'
+
 # triggers for ONAP Gerrit
 - trigger:
     name: onap-gerrit-trigger-change-merged
           silent: true
           silent-start: true
 
+# triggers for ODL Gerrit
+- trigger:
+    name: odl-gerrit-trigger-change-merged
+    triggers:
+      - gerrit:
+          server-name: 'ODL Gerrit'
+          trigger-on:
+            - change-merged-event
+            - comment-added-contains-event:
+                comment-contains-value: 'remerge'
+          projects:
+            - project-compare-type: 'ANT'
+              project-pattern: '{project}'
+              branches:
+                - branch-compare-type: 'ANT'
+                  branch-pattern: '**/{branch}'
+              file-paths:
+                - compare-type: 'ANT'
+                  pattern: '{files}'
+          silent: true
+          silent-start: true
+
+# triggers for OpenDev Gerrit
+- trigger:
+    name: opendev-gerrit-trigger-change-merged
+    triggers:
+      - gerrit:
+          server-name: 'OpenDev Gerrit'
+          trigger-on:
+            - change-merged-event
+            - comment-added-contains-event:
+                comment-contains-value: 'remerge'
+          projects:
+            - project-compare-type: 'ANT'
+              project-pattern: '{project}'
+              branches:
+                - branch-compare-type: 'ANT'
+                  branch-pattern: '**/{branch}'
+              file-paths:
+                - compare-type: 'ANT'
+                  pattern: '{files}'
+          silent: true
+          silent-start: true
+
+# triggers for ORANSC Gerrit
+- trigger:
+    name: oransc-gerrit-trigger-change-merged
+    triggers:
+      - gerrit:
+          server-name: 'ORANSC Gerrit'
+          trigger-on:
+            - change-merged-event
+            - comment-added-contains-event:
+                comment-contains-value: 'remerge'
+          projects:
+            - project-compare-type: 'ANT'
+              project-pattern: '{project}'
+              branches:
+                - branch-compare-type: 'ANT'
+                  branch-pattern: '**/{branch}'
+              file-paths:
+                - compare-type: 'ANT'
+                  pattern: '{files}'
+          silent: true
+          silent-start: true
+
+# triggers for Fast Data Project Gerrit
+- trigger:
+    name: fdio-gerrit-trigger-change-merged
+    triggers:
+      - gerrit:
+          server-name: 'FDio Gerrit'
+          trigger-on:
+            - change-merged-event
+            - comment-added-contains-event:
+                comment-contains-value: 'remerge'
+          projects:
+            - project-compare-type: 'ANT'
+              project-pattern: '{project}'
+              branches:
+                - branch-compare-type: 'ANT'
+                  branch-pattern: '**/{branch}'
+              file-paths:
+                - compare-type: 'ANT'
+                  pattern: '{files}'
+          silent: true
+          silent-start: true
 
 # wrappers to use for jobs
 - wrapper:
               username: JJB_USERNAME
               password: JJB_USERTOKEN
 
+# wrappers to use for jobs
+- wrapper:
+    name: nordixinfra-harbor-creds-wrapper
+    wrappers:
+      - credentials-binding:
+          - username-password-separated:
+              credential-id: nordix-cicd-harbor-credentials
+              username: HARBOR_USERNAME
+              password: HARBOR_PASSWORD
+
+# wrappers to use for jobs
+- wrapper:
+    name: nordixinfra-eiffel-github-token
+    wrappers:
+      - credentials-binding:
+          - username-password-separated:
+              credential-id: nordixinfra-eiffel-username-personal-access-token
+              username: NORDIXINFRA_GITHUB_USERNAME
+              password: NORDIXINFRA_GITHUB_TOKEN
+
+# wrappers to use for jobs
+- wrapper:
+    name: nordix-gerrit-http-api-token
+    wrappers:
+      - credentials-binding:
+          - username-password-separated:
+              credential-id: nordixinfra-nordix-gerrit-http-api-token
+              username: GERRIT_USER
+              password: GERRIT_API_KEY
+
 # timeout wrapper to use for jobs
 - wrapper:
     name: build-timeout
     publishers:
       - slack:
           room: '{slack-channel}'
-          notify-failure: True
+          notify-start: '{notify-start}'
+          notify-success: '{notify-success}'
+          notify-failure: '{notify-failure}'
+          notify-back-to-normal: '{notify-back-to-normal}'
 
 # property to discard old builds
 - property:
           num-to-keep: 100
           artifact-days-to-keep: 30
           artifact-num-to-keep: 100
+
+- property:
+    name: est-ms-teams-rebase-jobs-webhook
+    properties:
+      - office-365-connector:
+            webhooks:
+              - url: "${EST_MS_TEAMS_NORDIX_REBASE_JOBS_WEBHOOK}"
+                name: full
+                start-notification: true
+                notify-success: true
+                notify-aborted: true
+                notify-not-built: true
+                notify-unstable: true
+                notify-failure: true
+                notify-back-to-normal: true
+                notify-repeated-failure: true