2 # Macros for the AutoRelease project
4 name: autorelease-release-tag
8 default: '{release-tag}'
9 description: "The Release train tag to use eg. Beryllium-SR1"
12 name: autorelease-build-timeout
20 name: autorelease-checkout-gerrit-patch
26 # If the project is autorelease then we do not need to cd
27 if [ "$GERRIT_PROJECT" != "releng/autorelease" ]; then
28 cd "$WORKSPACE/$GERRIT_PROJECT"
31 echo "Checking out ${GERRIT_PROJECT} patch ${GERRIT_REFSPEC}..."
32 git fetch origin ${GERRIT_REFSPEC} && git checkout FETCH_HEAD
34 # If the project is autorelease then we need to init and update submodules
35 if [ "$GERRIT_PROJECT" == "releng/autorelease" ]; then
36 git submodule update --init
37 # The previous checkout might have failed to remove directory of a submodule being removed.
38 # See https://stackoverflow.com/a/10761699
43 name: autorelease-determine-merge-order
47 virtualenv --system-site-packages $WORKSPACE/venv
48 source $WORKSPACE/venv/bin/activate
49 PYTHON="$WORKSPACE/venv/bin/python"
50 $PYTHON -m pip install --upgrade networkx
52 ./scripts/determine-merge-order.py
54 rm -rf $WORKSPACE/venv
57 name: autorelease-maven-sources
60 maven-version: '{maven-version}'
65 -DoutputFile=$WORKSPACE/sources.log
67 {opendaylight-infra-mvn-opts}
69 - '-Xmx4096m -XX:MaxPermSize=1024m'
70 settings: '{settings}'
72 global-settings: '{global-settings}'
73 global-settings-type: cfp
75 awk '/The following files have NOT been resolved:/,/^$/' sources.log > missing-sources.log
78 name: autorelease-distribute-taglist
80 - integration-set-variables
83 set +e # DO NOT fail build if copying fails.
85 cp -vf "$WORKSPACE/archives/patches/taglist.log" \
86 "integration/distribution/$KARAF_ARTIFACT/src/main/assembly/"
88 # DO NOT fail the build if copying failed.
92 name: autorelease-generate-artifact-versions
93 # Generate versions.csv containing version of all mvn artifacts in this build.
98 ./scripts/generate-artifact-versions.sh
99 mkdir -p "$WORKSPACE/archives"
100 mv versions.csv "$WORKSPACE/archives"
103 name: autorelease-generate-release-patches
105 - shell: !include-raw:
109 name: autorelease-get-integration-test-variables
111 - integration-set-variables
112 - shell: !include-raw: autorelease-get-integration-test-variables.sh
114 properties-file: variables.prop
117 name: autorelease-fix-relative-paths
120 ./scripts/fix-relativepaths.sh
123 name: autorelease-generate-release-notes
125 - shell: !include-raw:
126 - generate-release-notes.sh
129 name: autorelease-update-project-views
131 - shell: !include-raw: update-autorelease-projects-views.sh
134 name: autorelease-update-validate-projects
136 - shell: !include-raw: update-validate-autorelease-projects.sh
139 name: autorelease-compare-projects
141 - shell: !include-raw: compare-autorelease-projects.sh
144 # Search console log for failures and email status to the release mailing list.
145 name: opendaylight-infra-notify-status
157 - shell: !include-raw: notify-build-failure.sh
158 mark-unstable-if-failed: true