X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=jjb%2Fautorelease%2Fautorelease-macros.yaml;h=e8d9cae84d79ca9df2a1cade8b7b30806c1e12fa;hb=9df3f548230c398ce40a07501a6c2fa58f77134f;hp=4d012d69b42a60c7643c291adfe90016941a0c1c;hpb=144623a4ffd48ac6f459e158fbaf4cc73c3a3be2;p=releng%2Fbuilder.git diff --git a/jjb/autorelease/autorelease-macros.yaml b/jjb/autorelease/autorelease-macros.yaml index 4d012d69b..e8d9cae84 100644 --- a/jjb/autorelease/autorelease-macros.yaml +++ b/jjb/autorelease/autorelease-macros.yaml @@ -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: @@ -28,10 +20,24 @@ 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 @@ -40,7 +46,7 @@ files: - file-id: 'autorelease-settings' variable: 'SETTINGS_FILE' - - file-id: 'odl-global-settings' + - file-id: 'global-settings' variable: 'GLOBAL_SETTINGS_FILE' - builder: @@ -52,7 +58,8 @@ PYTHON="$WORKSPACE/venv/bin/python" $PYTHON -m pip install --upgrade pip $PYTHON -m pip install --upgrade networkx - $PYTHON -m pip freeze + $PYTHON -m pip install --upgrade pipdeptree + pipdeptree ./scripts/determine-merge-order.py deactivate rm -rf $WORKSPACE/venv @@ -60,7 +67,7 @@ - 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 @@ -88,37 +95,42 @@ 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 @@ -131,31 +143,20 @@ - builder: name: autorelease-generate-release-notes builders: - - shell: | - cd $WORKSPACE/scripts/release_notes_management - java -jar target/autonotes.jar - if [ -f "$WORKSPACE/scripts/release_notes_management/projects/release-notes.rst" ]; then - mkdir -p $WORKSPACE/archives - cp -vf "$WORKSPACE/scripts/release_notes_management/projects/release-notes.rst" "$WORKSPACE/archives" - fi + - shell: !include-raw: + - generate-release-notes.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' +- builder: + name: autorelease-update-validate-projects + builders: + - shell: !include-raw-escape: update-validate-autorelease-projects.sh - publisher: - # generate sar accounting summary and copy sar data to archive - name: opendaylight-infra-sysstats + # 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-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