Remove Ubuntu 14.04 jobs
[ci-management.git] / jjb / global-macros.yaml
index de087dc..6aebfa0 100644 (file)
             name: MAVEN_SELECTOR
             default: '{maven}'
             description: 'Maven selector to be used by shell scripts'
+
+- 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'
+
 - parameter:
     name: repo-name-parameter
     parameters:
             default: '{repo-name}'
             description: 'Name of repo to which to publish packaging'
 
+- parameter:
+    name: compiler-parameter
+    parameters:
+        - string:
+            name: CC
+            default: '{cc}'
+            description: "CC parameter, can be gnu or clang"
+
+- parameter:
+    name: is-csit-vpp-job-parameter
+    parameters:
+        - string:
+            name: IS_CSIT_VPP_JOB
+            default: '{is-csit-vpp-job}'
+            description: "Parameter is True if this is a CSIT vpp job."
+
+- parameter:
+    name: stream-parameter
+    parameters:
+        - string:
+            name: STREAM
+            default: '{stream}'
+            description: "Stream job parameter to be used in shell scripts."
+
 
 ##### SCMS
 - scm:
             timeout: 360
             fail: true
 
+- wrapper:
+    # This wrapper is used for all jobs that require no-activity timeouts
+    name: fdio-infra-wrappers-non-activity-timeout
+    wrappers:
+      - timeout:
+          type: no-activity
+          timeout: '{build-timeout}'
+          fail: true
+      - timestamps
+      - ssh-agent-credentials:
+          users:
+            - 'jenkins-gerrit-credentials'
+      - jclouds:
+          single-use: True
+      - openstack:
+          single-use: True
+
 - wrapper:
     # This wrapper is required for all jobs as it configures the wrappers
     # needed by the fd.io infra.
           timeout: '{build-timeout}'
           timeout-var: 'BUILD_TIMEOUT'
           fail: true
+      - timestamps
+      - ssh-agent-credentials:
+          users:
+              - 'jenkins-gerrit-credentials'
       - jclouds:
           single-use: True
+      - openstack:
+          single-use: True
 
 ###### TRIGGERS
 - trigger:
                   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
 
 # Publishers
 - publisher:
             output-path: '{output-path}'
             other-files: ''
 
+- publisher:
+    name: fdio-infra-shiplogs
+    # To archive things, the job will need to create an "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:
+          builders:
+            - shell: !include-raw: include-raw-deploy-archives.sh
+            - maven-target:
+                maven-version: '{maven-version}'
+                pom: '.archives/deploy-archives.xml'
+                goals: 'clean deploy -V -B -q -Dmaven.repo.local=/tmp/r'
+                settings: 'jenkins-log-archives-settings'
+                settings-type: cfp
+                global-settings: 'global-settings'
+                global-settings-type: cfp
+            - description-setter:
+                regexp: '^Build logs: .*'
+          script-only-if-succeeded: false
+          script-only-if-failed: false
+          mark-unstable-if-failed: true
+      - workspace-cleanup:
+          fail-build: false
+
+- publisher:
+    name: retry-build-on-builder-error
+    publishers:
+      - naginator:
+          max-failed-builds: 1
+
 ###### BUILDERS
 - builder:
     name: ci-management-check-unicode
                 - file-id: '{settings-file}'
                   variable: 'SETTINGS_FILE'
 
+- property:
+    name: fdio-infra-properties
+    properties:
+        - build-discarder:
+            days-to-keep: '{build-days-to-keep}'
+            num-to-keep: '{build-num-to-keep}'
+
+
+- builder:
+    name: packer-validate
+    builders:
+        - config-file-provider:
+            files:
+                - file-id: 'packer-cloud-env'
+                  variable: 'CLOUDENV'
+        - shell: |
+            #!/bin/bash
+            cd packer
+            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
+                if [ $? -ne 0 ]; then
+                    break
+                fi
+            done
+
+
+- builder:
+    name: packer-build
+    builders:
+        - config-file-provider:
+            files:
+                - file-id: 'packer-cloud-env'
+                  variable: 'CLOUDENV'
+        - shell: |
+            #!/bin/bash
+            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