Merge "Update Ubuntu 16.04 mininet-ovs-26 image"
[releng/builder.git] / jjb / autorelease / autorelease-macros.yaml
index 288209521f886aeb5d185b97201354e90ad60e41..238fe9b5be20f767ac013208132bd49178171abe 100644 (file)
@@ -8,14 +8,6 @@
           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:
     name: autorelease-checkout-gerrit-patch
     builders:
       - shell: |
-          cd ${GERRIT_PROJECT}
+          #!/bin/bash
+          set -eu -o pipefail
+
+          # If the project is autorelease then we do not need to cd
+          if [ "$GERRIT_PROJECT" != "releng/autorelease" ]; then
+              cd "$WORKSPACE/$GERRIT_PROJECT"
+          fi
+
           echo "Checking out ${GERRIT_PROJECT} patch ${GERRIT_REFSPEC}..."
           git fetch origin ${GERRIT_REFSPEC} && git checkout FETCH_HEAD
-          cd ..
+
+          # If the project is autorelease then we need to init and update submodules
+          if [ "$GERRIT_PROJECT" == "releng/autorelease" ]; then
+              git submodule update --init
+              # The previous checkout might have failed to remove directory of a submodule being removed.
+              # See https://stackoverflow.com/a/10761699
+              git clean -dff
+          fi
 
 - builder:
     name: autorelease-cfp
           files:
             - file-id: 'autorelease-settings'
               variable: 'SETTINGS_FILE'
-            - file-id: 'odl-global-settings'
+            - file-id: '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
+          virtualenv --system-site-packages $WORKSPACE/venv
+          source $WORKSPACE/venv/bin/activate
+          PYTHON="$WORKSPACE/venv/bin/python"
+          $PYTHON -m pip install --upgrade pip
+          $PYTHON -m pip install --upgrade networkx
+          $PYTHON -m pip install --upgrade pipdeptree
+          pipdeptree
+          ./scripts/determine-merge-order.py
+          deactivate
+          rm -rf $WORKSPACE/venv
 
 - builder:
     name: autorelease-maven-deploy
     builders:
-      - shell: !include-raw: include-raw-autorelease-maven-deploy.sh
+      - shell: !include-raw: autorelease-maven-deploy.sh
 
 - builder:
     name: autorelease-maven-sources
           awk '/The following files have NOT been resolved:/,/^$/' sources.log > missing-sources.log
 
 - builder:
-    name: autorelease-generate-taglist
+    name: autorelease-distribute-taglist
     builders:
+      - integration-set-variables
       - 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'
+          #!/bin/bash
+          set +e  # DO NOT fail build if copying fails.
+
+          cp -vf "$WORKSPACE/archives/patches/taglist.log" \
+              "integration/distribution/$KARAF_ARTIFACT/src/main/assembly/"
+
+          # DO NOT fail the build if copying failed.
+          exit 0
 
 - builder:
-    name: autorelease-distribute-taglist
+    name: autorelease-generate-artifact-versions
+    # Generate versions.csv containing version of all mvn artifacts in this build.
     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
+          #!/bin/bash
+          set -eu -o pipefail
+          ./scripts/generate-artifact-versions.sh
+          mkdir -p "$WORKSPACE/archives"
+          mv versions.csv "$WORKSPACE/archives"
 
 - builder:
     name: autorelease-generate-release-patches
     builders:
       - shell: !include-raw:
           - ../global-jjb/shell/lftools-install.sh
-          - include-raw-autorelease-release-versions.sh
+          - prepare-release.sh
 
 - builder:
     name: autorelease-get-integration-test-variables
     builders:
       - integration-set-variables
-      - shell: !include-raw: include-raw-autorelease-get-integration-test-variables.sh
+      - shell: !include-raw: autorelease-get-integration-test-variables.sh
       - inject:
           properties-file: variables.prop
 
           fi
 
 - publisher:
-    # include-raw-autorelease-notify-build-failure.sh searches console log for
-    # failures and emails the status to the release mailing list.
+    # Search console log for failures and email 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: !include-raw: include-raw-autorelease-collect-sar.sh
+            - shell: !include-raw: notify-build-failure.sh
           script-only-if-succeeded: false
-          script-only-if-failed: false
+          script-only-if-failed: true