Merge "Remove mitaka jobs from vtn csit"
[releng/builder.git] / jjb / autorelease / autorelease-macros.yaml
index 623230906dbb9b3734a048390a5b829cabe70060..90cde777aac25465f1f095cb40cbefcd18e7e25e 100644 (file)
@@ -1,9 +1,155 @@
+---
 # Macros for the AutoRelease project
+- parameter:
+    name: autorelease-release-tag
+    parameters:
+      - string:
+          name: RELEASE_TAG
+          default: '{release-tag}'
+          description: "The Release train tag to use eg. Beryllium-SR1"
+
+- parameter:
+    name: autorelease-release-branch
+    parameters:
+      - string:
+          name: RELEASE_BRANCH
+          default: '{release-branch}'
+          description: "The Release train branch to base build off eg. stable/beryllium"
+
 - wrapper:
     name: autorelease-build-timeout
     wrappers:
-        - timeout:
-            type: elastic
-            elastic-percentage: 200
-            elastic-default-timeout: 300
-            fail: true
+      - timeout:
+          type: absolute
+          timeout: 1440
+          fail: true
+
+- builder:
+    name: autorelease-checkout-gerrit-patch
+    builders:
+      - shell: |
+          cd ${GERRIT_PROJECT}
+          echo "Checking out ${GERRIT_PROJECT} patch ${GERRIT_REFSPEC}..."
+          git fetch origin ${GERRIT_REFSPEC} && git checkout FETCH_HEAD
+          cd ..
+
+- builder:
+    name: autorelease-cfp
+    builders:
+      - config-file-provider:
+          files:
+            - file-id: 'autorelease-settings'
+              variable: 'SETTINGS_FILE'
+            - file-id: 'odl-global-settings'
+              variable: 'GLOBAL_SETTINGS_FILE'
+
+- builder:
+    name: autorelease-determine-merge-order
+    builders:
+      - shell: |
+          # TODO: Remove this condition once stable/beryllium is no longer
+          #       officially maintained.
+          if [ "$GERRIT_BRANCH" != "stable/beryllium" ]; then
+              virtualenv --system-site-packages $WORKSPACE/venv
+              source $WORKSPACE/venv/bin/activate
+              pip install --upgrade pip
+              pip install --upgrade networkx
+              pip freeze
+              ./scripts/determine-merge-order.py
+              deactivate
+              rm -rf $WORKSPACE/venv
+          fi
+
+- builder:
+    name: autorelease-maven-deploy
+    builders:
+      - shell: !include-raw: include-raw-autorelease-maven-deploy.sh
+
+- builder:
+    name: autorelease-maven-sources
+    builders:
+      - maven-target:
+          maven-version: '{maven-version}'
+          pom: 'pom.xml'
+          goals: |
+              dependency:sources
+              --quiet
+              -DoutputFile=$WORKSPACE/sources.log
+              -DappendOutput
+              {opendaylight-infra-mvn-opts}
+          java-opts:
+            - '-Xmx4096m -XX:MaxPermSize=1024m'
+          settings: '{settings}'
+          settings-type: cfp
+          global-settings: '{global-settings}'
+          global-settings-type: cfp
+
+- builder:
+    name: autorelease-maven-sources-post-process
+    builders:
+      - shell: |
+          awk '/The following files have NOT been resolved:/,/^$/' sources.log > missing-sources.log
+
+- builder:
+    name: autorelease-generate-taglist
+    builders:
+      - shell: |
+          echo autorelease `git rev-parse --verify HEAD` ${RELEASE_TAG} \
+              | tee -a $WORKSPACE/taglist.log
+          git submodule foreach 'echo $path `git rev-parse --verify HEAD` ${RELEASE_TAG} \
+              | tee -a $WORKSPACE/taglist.log'
+
+- builder:
+    name: autorelease-distribute-taglist
+    builders:
+      - integration-set-variables
+      - shell: |
+          if [ -d "integration/distribution/distributions" ]; then
+              cp -vf "$WORKSPACE/taglist.log" "integration/distribution/distributions/karaf/src/main/assembly/"
+          else
+              cp -vf "$WORKSPACE/taglist.log" "integration/distribution/$KARAF_ARTIFACT/src/main/assembly/"
+          fi
+
+- builder:
+    name: autorelease-generate-release-patches
+    builders:
+      - shell: !include-raw: include-raw-autorelease-release-versions.sh
+
+- builder:
+    name: autorelease-get-integration-test-variables
+    builders:
+      - integration-set-variables
+      - shell: !include-raw: include-raw-autorelease-get-integration-test-variables.sh
+      - inject:
+          properties-file: variables.prop
+
+- builder:
+    name: autorelease-fix-relative-paths
+    builders:
+      - shell: |
+          ./scripts/fix-relativepaths.sh
+
+- publisher:
+    # include-raw-autorelease-notify-build-failure.sh searches console log for
+    # failures and emails the status to the release mailing list.
+    name: opendaylight-infra-notify-status
+    publishers:
+      - postbuildscript:
+          builders:
+            - shell: !include-raw: include-raw-autorelease-notify-build-failure.sh
+          script-only-if-succeeded: 'False'
+          script-only-if-failed: 'True'
+
+- publisher:
+    # generate sar accounting summary and copy sar data to archive
+    name: opendaylight-infra-sysstats
+    publishers:
+      - postbuildscript:
+          builders:
+            - shell: |
+                mkdir -p archives/
+                cp /var/log/sa/* $_
+                # convert sar data to ascii format
+                sar -A -f /var/log/sa/sa$(date +%d) > archives/sar$(date +%d)
+          script-only-if-succeeded: false
+          script-only-if-failed: false