--- # 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" - wrapper: name: autorelease-build-timeout wrappers: - timeout: type: absolute timeout: 1440 fail: true - builder: name: autorelease-checkout-gerrit-patch builders: - shell: | #!/bin/bash -l 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 # 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-determine-merge-order builders: - shell: | #!/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 networkx $PYTHON -m pip freeze ./scripts/determine-merge-order.py deactivate rm -rf $WORKSPACE/venv - 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" settings: "{settings}" settings-type: cfp global-settings: "{global-settings}" global-settings-type: cfp - shell: | awk '/The following files have NOT been resolved:/,/^$/' sources.log > missing-sources.log - builder: name: autorelease-distribute-taglist builders: - integration-set-variables - shell: | #!/bin/bash -l 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-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: - prepare-release.sh - builder: name: autorelease-get-integration-test-variables builders: - integration-set-variables - shell: !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 - builder: name: autorelease-generate-release-notes builders: - 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. name: opendaylight-infra-notify-status publishers: - postbuildscript: builders: - role: BOTH build-on: - ABORTED - FAILURE - NOT_BUILT - SUCCESS - UNSTABLE build-steps: - shell: !include-raw: notify-build-failure.sh mark-unstable-if-failed: true