X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=jjb%2Fautorelease%2Fautorelease-macros.yaml;h=2cc67e01d42c31d91eaff7e020ffd9f9f91b895d;hb=c66102093626187308b241f79772e4165f43fab6;hp=d23761bf092badd6b6e1ad715be76e6f8380bb42;hpb=22151310cb7c9d2de7140e71fb6de3dd6aa3c018;p=releng%2Fbuilder.git diff --git a/jjb/autorelease/autorelease-macros.yaml b/jjb/autorelease/autorelease-macros.yaml index d23761bf0..2cc67e01d 100644 --- a/jjb/autorelease/autorelease-macros.yaml +++ b/jjb/autorelease/autorelease-macros.yaml @@ -5,7 +5,7 @@ parameters: - string: name: RELEASE_TAG - default: '{release-tag}' + default: "{release-tag}" description: "The Release train tag to use eg. Beryllium-SR1" - wrapper: @@ -20,7 +20,7 @@ name: autorelease-checkout-gerrit-patch builders: - shell: | - #!/bin/bash + #!/bin/bash -l set -eu -o pipefail # If the project is autorelease then we do not need to cd @@ -34,59 +34,44 @@ # 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 - builders: - - config-file-provider: - files: - - file-id: 'autorelease-settings' - variable: 'SETTINGS_FILE' - - file-id: 'global-settings' - variable: 'GLOBAL_SETTINGS_FILE' - - builder: name: autorelease-determine-merge-order builders: - shell: | - virtualenv --system-site-packages $WORKSPACE/venv - source $WORKSPACE/venv/bin/activate + #!/bin/bash -l + set -xe -o pipefail + python3 -m venv $WORKSPACE/venv + . $WORKSPACE/venv/bin/activate PYTHON="$WORKSPACE/venv/bin/python" - $PYTHON -m pip install --upgrade pip $PYTHON -m pip install --upgrade networkx $PYTHON -m pip freeze ./scripts/determine-merge-order.py deactivate rm -rf $WORKSPACE/venv -- builder: - name: autorelease-maven-deploy - builders: - - shell: !include-raw: autorelease-maven-deploy.sh - - builder: name: autorelease-maven-sources builders: - maven-target: - maven-version: '{maven-version}' - pom: 'pom.xml' + maven-version: "{maven-version}" + pom: "pom.xml" goals: | - dependency:sources - --quiet - -DoutputFile=$WORKSPACE/sources.log - -DappendOutput - {opendaylight-infra-mvn-opts} + dependency:sources + --quiet + -DoutputFile=$WORKSPACE/sources.log + -DappendOutput + {opendaylight-infra-mvn-opts} java-opts: - - '-Xmx4096m -XX:MaxPermSize=1024m' - settings: '{settings}' + - "-Xmx4096m" + settings: "{settings}" settings-type: cfp - global-settings: '{global-settings}' + 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 @@ -95,7 +80,7 @@ builders: - integration-set-variables - shell: | - #!/bin/bash + #!/bin/bash -l set +e # DO NOT fail build if copying fails. cp -vf "$WORKSPACE/archives/patches/taglist.log" \ @@ -104,11 +89,21 @@ # DO NOT fail the build if copying failed. exit 0 +- builder: + name: autorelease-generate-artifact-versions + # Generate versions.csv containing version of all mvn artifacts in this build. + builders: + - shell: | + #!/bin/bash -l + 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 - prepare-release.sh - builder: @@ -128,13 +123,23 @@ - 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 + +- builder: + name: autorelease-update-project-views + builders: + - shell: !include-raw: update-autorelease-projects-views.sh + +- builder: + name: autorelease-update-validate-projects + builders: + - shell: !include-raw: update-validate-autorelease-projects.sh + +- builder: + name: autorelease-compare-projects + builders: + - shell: !include-raw: compare-autorelease-projects.sh - publisher: # Search console log for failures and email status to the release mailing list. @@ -142,6 +147,13 @@ publishers: - postbuildscript: builders: - - shell: !include-raw: notify-build-failure.sh - script-only-if-succeeded: false - script-only-if-failed: true + - role: BOTH + build-on: + - ABORTED + - FAILURE + - NOT_BUILT + - SUCCESS + - UNSTABLE + build-steps: + - shell: !include-raw: notify-build-failure.sh + mark-unstable-if-failed: true