6206395840be8ba23c62e7be40abdcf72f2c58b9
[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           # TODO: Remove this condition once stable/beryllium is no longer
51           #       officially maintained.
52           if [ "$GERRIT_BRANCH" != "stable/beryllium" ]; then
53               virtualenv --system-site-packages $WORKSPACE/venv
54               source $WORKSPACE/venv/bin/activate
55               pip install --upgrade pip
56               pip install --upgrade networkx
57               pip freeze
58               ./scripts/determine-merge-order.py
59               deactivate
60               rm -rf $WORKSPACE/venv
61           fi
62
63 - builder:
64     name: autorelease-maven-deploy
65     builders:
66       - shell: !include-raw: include-raw-autorelease-maven-deploy.sh
67
68 - builder:
69     name: autorelease-maven-sources
70     builders:
71       - maven-target:
72           maven-version: '{maven-version}'
73           pom: 'pom.xml'
74           goals: |
75               dependency:sources
76               --quiet
77               -DoutputFile=$WORKSPACE/sources.log
78               -DappendOutput
79               {opendaylight-infra-mvn-opts}
80           java-opts:
81             - '-Xmx4096m -XX:MaxPermSize=1024m'
82           settings: '{settings}'
83           settings-type: cfp
84           global-settings: '{global-settings}'
85           global-settings-type: cfp
86
87 - builder:
88     name: autorelease-maven-sources-post-process
89     builders:
90       - shell: |
91           awk '/The following files have NOT been resolved:/,/^$/' sources.log > missing-sources.log
92
93 - builder:
94     name: autorelease-generate-taglist
95     builders:
96       - shell: |
97           echo autorelease `git rev-parse --verify HEAD` ${RELEASE_TAG} \
98               | tee -a $WORKSPACE/taglist.log
99           git submodule foreach 'echo $path `git rev-parse --verify HEAD` ${RELEASE_TAG} \
100               | tee -a $WORKSPACE/taglist.log'
101
102 - builder:
103     name: autorelease-distribute-taglist
104     builders:
105       - integration-set-variables
106       - shell: |
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 - builder:
114     name: autorelease-generate-release-patches
115     builders:
116       - shell: !include-raw: include-raw-autorelease-release-versions.sh
117
118 - builder:
119     name: autorelease-get-integration-test-variables
120     builders:
121       - integration-set-variables
122       - shell: !include-raw: include-raw-autorelease-get-integration-test-variables.sh
123       - inject:
124           properties-file: variables.prop
125
126 - builder:
127     name: autorelease-fix-relative-paths
128     builders:
129       - shell: |
130           ./scripts/fix-relativepaths.sh
131
132 - builder:
133     name: autorelease-generate-release-notes
134     builders:
135       - shell: |
136           # TODO: Remove this condition once stable/beryllium is no longer
137           #       officially maintained.
138           if [ "$GERRIT_BRANCH" != "stable/beryllium" ]; then
139               cd $WORKSPACE/scripts/release_notes_management
140               java -jar target/autonotes.jar
141           fi
142
143 - publisher:
144     # include-raw-autorelease-notify-build-failure.sh searches console log for
145     # failures and emails the status to the release mailing list.
146     name: opendaylight-infra-notify-status
147     publishers:
148       - postbuildscript:
149           builders:
150             - shell: !include-raw: include-raw-autorelease-notify-build-failure.sh
151           script-only-if-succeeded: 'False'
152           script-only-if-failed: 'True'
153
154 - publisher:
155     # generate sar accounting summary and copy sar data to archive
156     name: opendaylight-infra-sysstats
157     publishers:
158       - postbuildscript:
159           builders:
160             - shell: !include-raw: include-raw-autorelease-collect-sar.sh
161           script-only-if-succeeded: false
162           script-only-if-failed: false