Merge "Fix yamllint for packetcable"
[releng/builder.git] / jjb / releng-macros.yaml
index 610feab6b903e8fd2e4e14aeb805035d0f301406..ca11a7c861b88873ca974ce55ed29b55050e3072 100644 (file)
@@ -15,7 +15,7 @@
             description: 'Parameter to identify an ODL Gerrit project'
         - string:
             name: ARCHIVE_ARTIFACTS
-            default: '{artifacts} **/target/surefire-reports/*-output.txt'
+            default: '{artifacts} **/target/surefire-reports/*-output.txt **/hs_err_*.log **/target/feature/feature.xml'
             description: 'Space separated glob patterns for artifacts to archive into logs.opendaylight.org'
         - string:
             name: GERRIT_PROJECT
             body: |
                 $PROJECT_NAME - Build # $BUILD_NUMBER - $BUILD_STATUS:
 
-                Check console output at $BUILD_URL to view the results.
+                Please refer to the logs server URL for console logs when possible
+                and use the Jenkins Build URL as a last resort.
+
+                Console Logs URL:
+                https://logs.opendaylight.org/$SILO/$JENKINS_HOSTNAME/$JOB_NAME/$BUILD_NUMBER
+
+                Jenkins Build URL:
+                $BUILD_URL
             unstable: true
             fixed: true
             send-to:
     publishers:
         - postbuildscript:
             builders:
-                - shell: |
-                    if [ -d "$WORKSPACE/.venv-openstack" ]; then
-                        # TODO: Remove the condition once we are no longer using
-                        #       JClouds plugin.
-                        if [ -z "$JCLOUDS_IPS" ]; then
-                            source $WORKSPACE/.venv-openstack/bin/activate
-                            openstack --os-cloud rackspace stack delete --yes $STACK_NAME
-                        fi
-                    fi
+                - shell: !include-raw: include-raw-stack-delete.sh
                 - shell: !include-raw: include-raw-deploy-archives.sh
                 - maven-target:
                         maven-version: '{maven-version}'
         - shell: !include-raw: opendaylight-infra-stack.sh
         - shell: !include-raw-escape: opendaylight-infra-copy-ssh-keys.sh
 
+- builder:
+    name: opendaylight-infra-push-gerrit-patch
+    # opendaylight-infra-push-gerrit-patch.sh allows a job to push a patch to
+    # Gerrit in an automated fashion. This is meant for tasks that creates
+    # the same patch regularly and needs the ability to detect if an unreviewed
+    # patch already exists. In which case it will update the existing patch.
+    #
+    # Note: This patch assumes the $WORKSPACE contains the project repo with
+    #       the files changed already "git add" and waiting for a "git commit" call.
+    #
+    # This script requires the following JJB variables to be passed in:
+    #     {project}       Gerrit project-name
+    #     {gerrit-topic}  Gerrit topic, please make a unique topic.
+    #     {gerrit-commit-message} Commit message to assign to commit.
+    # NOTE: Requires git review to be installed on node.
+    builders:
+        - shell: !include-raw: opendaylight-infra-push-gerrit-patch.sh
+
+- builder:
+    name: distribute-build-url
+    # Place URL of the current run of a build job to a file at given path.
+    builders:
+        - shell: 'echo "$BUILD_URL" > {path}/build.url'
+
 - builder:
     name: wipe-org-opendaylight-repo
     builders:
         - ssh-agent-credentials:
             users:
                 - 'opendaylight-jenkins-ssh'
-        - jclouds:
-            single-use: True
         - openstack:
             single-use: True
 
                   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
+            varfiles="../packer/vars/*"
+            templates="../packer/templates/*"
+            provision="../packer/provision/*.sh"
+            for v in $varfiles; do
+                [[ "${v##*/}" =~ ^(cloud-env.*)$ ]] && continue
+                for t in $templates; do
+                    export PACKER_LOG="yes" && \
+                    export PACKER_LOG_PATH="packer-validate-${v##*/}-${t##*/}.log" && \
+                                packer.io validate -var-file=$CLOUDENV \
+                                -var-file=$v $t
+                    if [ $? -ne 0 ]; then
+                        break
+                    fi
+                done
+            done
+            for p in $provision; do
+                /bin/bash -n $p > provision-validate-${p##*/}.log 2>&1
+            done
+
 
 - builder:
     name: packer-build
     builders:
+        - config-file-provider:
+            files:
+                - file-id: 'packer-cloud-env'
+                  variable: 'CLOUDENV'
         - shell: |
             cd packer
             export PACKER_LOG="yes" && \
     name: verify-gpg-signature
     builders:
         - shell: !include-raw: include-raw-verify-gpg-signatures.sh
+
+- builder:
+    name: opendaylight-infra-jjbini
+    builders:
+    - config-file-provider:
+          files:
+            - file-id: 'jjbini'
+              target: '$HOME/.config/jenkins_jobs/jenkins_jobs.ini'