Merge "Revert "Make packer jobs build sequentially""
[releng/builder.git] / jjb / autorelease / autorelease-macros.yaml
1 ---
2 # Macros for the AutoRelease project
3 - parameter:
4     name: autorelease-release-tag
5     parameters:
6       - string:
7           name: RELEASE_TAG
8           default: '{release-tag}'
9           description: "The Release train tag to use eg. Beryllium-SR1"
10
11 - parameter:
12     name: autorelease-release-branch
13     parameters:
14       - string:
15           name: RELEASE_BRANCH
16           default: '{release-branch}'
17           description: "The Release train branch to base build off eg. stable/beryllium"
18
19 - wrapper:
20     name: autorelease-build-timeout
21     wrappers:
22       - timeout:
23           type: absolute
24           timeout: 1440
25           fail: true
26
27 - builder:
28     name: autorelease-checkout-gerrit-patch
29     builders:
30       - shell: |
31           cd ${GERRIT_PROJECT}
32           echo "Checking out ${GERRIT_PROJECT} patch ${GERRIT_REFSPEC}..."
33           git fetch origin ${GERRIT_REFSPEC} && git checkout FETCH_HEAD
34           cd ..
35
36 - builder:
37     name: autorelease-cfp
38     builders:
39       - config-file-provider:
40           files:
41             - file-id: 'autorelease-settings'
42               variable: 'SETTINGS_FILE'
43             - file-id: 'odl-global-settings'
44               variable: 'GLOBAL_SETTINGS_FILE'
45
46 - builder:
47     name: autorelease-determine-merge-order
48     builders:
49       - shell: |
50           virtualenv --system-site-packages $WORKSPACE/venv
51           source $WORKSPACE/venv/bin/activate
52           PYTHON="$WORKSPACE/venv/bin/python"
53           $PYTHON -m pip install --upgrade pip
54           $PYTHON -m pip install --upgrade networkx
55           $PYTHON -m pip freeze
56           ./scripts/determine-merge-order.py
57           deactivate
58           rm -rf $WORKSPACE/venv
59
60 - builder:
61     name: autorelease-maven-deploy
62     builders:
63       - shell: !include-raw: include-raw-autorelease-maven-deploy.sh
64
65 - builder:
66     name: autorelease-maven-sources
67     builders:
68       - maven-target:
69           maven-version: '{maven-version}'
70           pom: 'pom.xml'
71           goals: |
72               dependency:sources
73               --quiet
74               -DoutputFile=$WORKSPACE/sources.log
75               -DappendOutput
76               {opendaylight-infra-mvn-opts}
77           java-opts:
78             - '-Xmx4096m -XX:MaxPermSize=1024m'
79           settings: '{settings}'
80           settings-type: cfp
81           global-settings: '{global-settings}'
82           global-settings-type: cfp
83
84 - builder:
85     name: autorelease-maven-sources-post-process
86     builders:
87       - shell: |
88           awk '/The following files have NOT been resolved:/,/^$/' sources.log > missing-sources.log
89
90 - builder:
91     name: autorelease-generate-taglist
92     builders:
93       - shell: |
94           echo autorelease `git rev-parse --verify HEAD` ${RELEASE_TAG} \
95               | tee -a $WORKSPACE/taglist.log
96           git submodule foreach 'echo $path `git rev-parse --verify HEAD` ${RELEASE_TAG} \
97               | tee -a $WORKSPACE/taglist.log'
98
99 - builder:
100     name: autorelease-distribute-taglist
101     builders:
102       - integration-set-variables
103       - shell: |
104           #!/bin/bash
105           set +e  # DO NOT fail build if copying fails.
106
107           if [ -d "integration/distribution/distributions" ]; then
108               cp -vf "$WORKSPACE/taglist.log" "integration/distribution/distributions/karaf/src/main/assembly/"
109           else
110               cp -vf "$WORKSPACE/taglist.log" "integration/distribution/$KARAF_ARTIFACT/src/main/assembly/"
111           fi
112
113           # DO NOT fail the build if copying failed.
114           exit 0
115
116 - builder:
117     name: autorelease-generate-release-patches
118     builders:
119       - shell: !include-raw:
120           - ../global-jjb/shell/lftools-install.sh
121           - include-raw-autorelease-release-versions.sh
122
123 - builder:
124     name: autorelease-get-integration-test-variables
125     builders:
126       - integration-set-variables
127       - shell: !include-raw: include-raw-autorelease-get-integration-test-variables.sh
128       - inject:
129           properties-file: variables.prop
130
131 - builder:
132     name: autorelease-fix-relative-paths
133     builders:
134       - shell: |
135           ./scripts/fix-relativepaths.sh
136
137 - builder:
138     name: autorelease-generate-release-notes
139     builders:
140       - shell: |
141           cd $WORKSPACE/scripts/release_notes_management
142           java -jar target/autonotes.jar
143           if [ -f  "$WORKSPACE/scripts/release_notes_management/projects/release-notes.rst" ]; then
144               mkdir -p $WORKSPACE/archives
145               cp -vf "$WORKSPACE/scripts/release_notes_management/projects/release-notes.rst" "$WORKSPACE/archives"
146           fi
147
148 - publisher:
149     # include-raw-autorelease-notify-build-failure.sh searches console log for
150     # failures and emails the status to the release mailing list.
151     name: opendaylight-infra-notify-status
152     publishers:
153       - postbuildscript:
154           builders:
155             - shell: !include-raw: include-raw-autorelease-notify-build-failure.sh
156           script-only-if-succeeded: 'False'
157           script-only-if-failed: 'True'
158
159 - publisher:
160     # generate sar accounting summary and copy sar data to archive
161     name: opendaylight-infra-sysstats
162     publishers:
163       - postbuildscript:
164           builders:
165             - shell: !include-raw: include-raw-autorelease-collect-sar.sh
166           script-only-if-succeeded: false
167           script-only-if-failed: false