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
42 - config-file-provider:
44 - file-id: 'autorelease-settings'
45 variable: 'SETTINGS_FILE'
46 - file-id: 'global-settings'
47 variable: 'GLOBAL_SETTINGS_FILE'
50 name: autorelease-determine-merge-order
53 virtualenv --system-site-packages $WORKSPACE/venv
54 source $WORKSPACE/venv/bin/activate
55 PYTHON="$WORKSPACE/venv/bin/python"
56 $PYTHON -m pip install --upgrade pip
57 $PYTHON -m pip install --upgrade networkx
58 $PYTHON -m pip install --upgrade pipdeptree
60 ./scripts/determine-merge-order.py
62 rm -rf $WORKSPACE/venv
65 name: autorelease-maven-deploy
67 - shell: !include-raw: autorelease-maven-deploy.sh
70 name: autorelease-maven-sources
73 maven-version: '{maven-version}'
78 -DoutputFile=$WORKSPACE/sources.log
80 {opendaylight-infra-mvn-opts}
82 - '-Xmx4096m -XX:MaxPermSize=1024m'
83 settings: '{settings}'
85 global-settings: '{global-settings}'
86 global-settings-type: cfp
89 name: autorelease-maven-sources-post-process
92 awk '/The following files have NOT been resolved:/,/^$/' sources.log > missing-sources.log
95 name: autorelease-distribute-taglist
97 - integration-set-variables
100 set +e # DO NOT fail build if copying fails.
102 cp -vf "$WORKSPACE/archives/patches/taglist.log" \
103 "integration/distribution/$KARAF_ARTIFACT/src/main/assembly/"
105 # DO NOT fail the build if copying failed.
109 name: autorelease-generate-artifact-versions
110 # Generate versions.csv containing version of all mvn artifacts in this build.
115 ./scripts/generate-artifact-versions.sh
116 mkdir -p "$WORKSPACE/archives"
117 mv versions.csv "$WORKSPACE/archives"
120 name: autorelease-generate-release-patches
122 - shell: !include-raw:
123 - ../global-jjb/shell/lftools-install.sh
127 name: autorelease-get-integration-test-variables
129 - integration-set-variables
130 - shell: !include-raw: autorelease-get-integration-test-variables.sh
132 properties-file: variables.prop
135 name: autorelease-fix-relative-paths
138 ./scripts/fix-relativepaths.sh
141 name: autorelease-generate-release-notes
144 cd $WORKSPACE/scripts/release_notes_management
145 java -jar target/autonotes.jar
146 if [ -f "$WORKSPACE/scripts/release_notes_management/projects/release-notes.rst" ]; then
147 mkdir -p $WORKSPACE/archives
148 cp -vf "$WORKSPACE/scripts/release_notes_management/projects/release-notes.rst" "$WORKSPACE/archives"
152 # Search console log for failures and email status to the release mailing list.
153 name: opendaylight-infra-notify-status
157 - shell: !include-raw: notify-build-failure.sh
158 script-only-if-succeeded: false
159 script-only-if-failed: true