refactor email recipients to parameter with default value
[releng/builder.git] / jjb / releng-macros.yaml
index d9f268261c1bf11304d8357980dcb2b685867198..c7e397cba19c77f43cf059f134c7b6779b884315 100644 (file)
@@ -1,16 +1,16 @@
 # OLD Releng macros
 
 - parameter:
-    name: project-parameter
+    name: opendaylight-infra-parameters
     parameters:
         - string:
             name: PROJECT
             default: '{project}'
-            description: "JJB configured PROJECT parameter to identify an ODL Gerrit project"
-
-- parameter:
-    name: gerrit-parameters
-    parameters:
+            description: 'Parameter to identify an ODL Gerrit project'
+        - string:
+            name: ARCHIVE_ARTIFACTS
+            default: '{artifacts} **/target/surefire-reports/*-output.txt'
+            description: 'Space separated glob patterns for artifacts to archive into logs.opendaylight.org'
         - string:
             name: GERRIT_PROJECT
             default: '{project}'
             default: '{stage-id}'
             description: 'Nexus staging profile id'
 
+- parameter:
+    name: maven-exec
+    parameters:
+      - string:
+          name: MVN
+          default: '/w/tools/hudson.tasks.Maven_MavenInstallation/{maven-version}/bin/mvn'
+          description: 'Maven selector to be used by shell scripts'
+
 - scm:
     name: git-scm
     scm:
         - git:
-            credentials-id: '{credentials-id}'
+            credentials-id: 'opendaylight-jenkins-ssh'
             url: '$GIT_BASE'
             refspec: ''
             branches:
@@ -88,7 +96,7 @@
     name: git-scm-with-submodules
     scm:
         - git:
-            credentials-id: '{credentials-id}'
+            credentials-id: 'opendaylight-jenkins-ssh'
             url: '$GIT_BASE'
             refspec: ''
             branches:
     name: gerrit-trigger-scm
     scm:
         - git:
-            credentials-id: '{credentials-id}'
+            credentials-id: 'opendaylight-jenkins-ssh'
             url: '$GIT_BASE'
             refspec: '{refspec}'
             branches:
             timeout: 360
             fail: true
 
+# Used only by opflex-verify-{stream} and {project-name}-verify-{stream}-{maven}-{jdks}
 - trigger:
     name: gerrit-trigger-patch-submitted
-    triggers:
-        - gerrit:
-            server-name: 'OpenDaylight'
-            trigger-on:
-                - patchset-created-event:
-                    exclude-drafts: 'false'
-                    exclude-trivial-rebase: 'false'
-                    exclude-no-code-change: 'false'
-                - draft-published-event
-                - comment-added-contains-event:
-                    comment-contains-value: 'recheck'
-                - comment-added-contains-event:
-                    comment-contains-value: 'reverify'
-            projects:
-              - project-compare-type: 'ANT'
-                project-pattern: '{name}'
-                branches:
-                  - branch-compare-type: 'ANT'
-                    branch-pattern: '**/{branch}'
-
-- trigger:
-    name: gerrit-trigger-relevant-patch-submitted
     triggers:
         - gerrit:
             server-name: 'OpenDaylight'
                 branches:
                   - branch-compare-type: 'ANT'
                     branch-pattern: '**/{branch}'
+            skip-vote:
+                successful: true
+                failed: true
+                unstable: true
+                notbuilt: true
+            # Force Jenkins always vote the values it should already have voted
+            # during the prior verify phase
+            override-votes: true
+            gerrit-build-started-verified-value: 1
+            gerrit-build-successful-verified-value: 1
+            gerrit-build-failed-verified-value: 1
+            gerrit-build-unstable-verified-value: 1
+            gerrit-build-notbuilt-verified-value: 1
+            gerrit-build-started-codereview-value: 0
+            gerrit-build-successful-codereview-value: 0
+            gerrit-build-failed-codereview-value: 0
+            gerrit-build-unstable-codereview-value: 0
+            gerrit-build-notbuilt-codereview-value: 0
 
 - trigger:
     name: gerrit-trigger-patch-sonar
                 branches:
                     - branch-compare-type: 'ANT'
                       branch-pattern: '**/{branch}'
+            # Force Jenkins always vote the values it should already have voted
+            # during the prior verify phase
+            override-votes: true
+            gerrit-build-started-verified-value: 1
+            gerrit-build-successful-verified-value: 1
+            gerrit-build-failed-verified-value: 1
+            gerrit-build-unstable-verified-value: 1
+            gerrit-build-notbuilt-verified-value: 1
+            gerrit-build-started-codereview-value: 0
+            gerrit-build-successful-codereview-value: 0
+            gerrit-build-failed-codereview-value: 0
+            gerrit-build-unstable-codereview-value: 0
+            gerrit-build-notbuilt-codereview-value: 0
 
 - publisher:
     name: archive-artifacts
     name: email-notification
     publishers:
         - email-ext:
-            recipients: 'jenkins@lists.opendaylight.org'
-            reply-to:
+            recipients: '{email-recipients}'
+            reply-to: ''
             content-type: default
             subject: '{email-prefix} $PROJECT_NAME - Build # $BUILD_NUMBER - $BUILD_STATUS!'
             body: |
                       unhealthy: 40
 
 - publisher:
-    name: archive-build
+    name: opendaylight-infra-shiplogs
     # To archive things the job will need to create a "archives" directory in
     # the workspace and this macro will handle copying the contents of the
     # archives directory.
+    #
+    # Uses the build parameter ARCHIVE_ARTIFACTS if not empty to find files
+    # to archive. You can pass globstar patterns for example "**/*.xml **/*.log"
+    # as the archive pattern. This is a space separated list of files to archive.
+    #
     # Also ensure that the workspace is cleaned up at the end of the build.
     publishers:
         - postbuildscript:
             script-only-if-failed: False
             mark-unstable-if-failed: True
         - workspace-cleanup:
+            exclude:
+              # Do not clean up *.jenkins-trigger files for jobs that use a
+              # properties file as input for triggering another build.
+              - '**/*.jenkins-trigger'
             fail-build: false
 
 - builder:
     name: releng-stage-release
     builders:
         - shell: !include-raw: include-raw-stage-release.sh
+
+- wrapper:
+    # This wrapper is required for all jobs as it configures the wrappers
+    # needed by OpenDaylight infra.
+    name: opendaylight-infra-wrappers
+    wrappers:
+        - timeout:
+            type: absolute
+            timeout: '{build-timeout}'
+            timeout-var: 'BUILD_TIMEOUT'
+            fail: true
+        - timestamps
+        - ssh-agent-credentials:
+            users:
+                - 'opendaylight-jenkins-ssh'
+        - jclouds:
+            single-use: True
+        - openstack:
+            single-use: True
+
+- builder:
+    name: packer-validate
+    builders:
+        - config-file-provider:
+            files:
+                - file-id: 'packer-cloud-env'
+                  variable: 'CLOUDENV'
+        - shell: |
+            cd packer
+            export PACKER_LOG="yes" && \
+            export PACKER_LOG_PATH="packer-validate.log" && \
+                        packer.io validate -var-file=$CLOUDENV \
+                         -var-file=../packer/vars/{platform}.json \
+                         ../packer/templates/{template}.json
+
+- builder:
+    name: packer-build
+    builders:
+        - shell: |
+            cd packer
+            export PACKER_LOG="yes" && \
+            export PACKER_LOG_PATH="packer-build.log" && \
+                        packer.io build -var-file=$CLOUDENV \
+                         -var-file=../packer/vars/{platform}.json \
+                         ../packer/templates/{template}.json