Merge "Fix autorelease notify script"
[releng/builder.git] / jjb / autorelease / autorelease-macros.yaml
1 # Macros for the AutoRelease project
2 - parameter:
3     name: autorelease-release-tag
4     parameters:
5         - string:
6             name: RELEASE_TAG
7             default: '{release-tag}'
8             description: "The Release train tag to use eg. Beryllium-SR1"
9
10 - parameter:
11     name: autorelease-release-branch
12     parameters:
13         - string:
14             name: RELEASE_BRANCH
15             default: '{release-branch}'
16             description: "The Release train branch to base build off eg. stable/beryllium"
17
18 - wrapper:
19     name: autorelease-build-timeout
20     wrappers:
21         - timeout:
22             type: absolute
23             timeout: 1440
24             fail: true
25
26 - builder:
27     name: autorelease-checkout-gerrit-patch
28     builders:
29         - shell: |
30             cd ${GERRIT_PROJECT}
31             echo "Checking out ${GERRIT_PROJECT} patch ${GERRIT_REFSPEC}..."
32             git fetch origin ${GERRIT_REFSPEC} && git checkout FETCH_HEAD
33             cd ..
34
35 - builder:
36     name: autorelease-cfp
37     builders:
38         - config-file-provider:
39             files:
40                 - file-id: 'autorelease-settings'
41                   variable: 'SETTINGS_FILE'
42                 - file-id: 'odl-global-settings'
43                   variable: 'GLOBAL_SETTINGS_FILE'
44
45 - builder:
46     name: autorelease-determine-merge-order
47     builders:
48        - shell: |
49           # TODO: Remove this condition once stable/beryllium is no longer
50           #       officially maintained.
51           if [ "$GERRIT_BRANCH" != "stable/beryllium" ]; then
52               virtualenv --system-site-packages $WORKSPACE/venv
53               source $WORKSPACE/venv/bin/activate
54               pip install --upgrade pip
55               pip install --upgrade networkx
56               pip freeze
57               ./scripts/determine-merge-order.py
58               deactivate
59               rm -rf $WORKSPACE/venv
60           fi
61
62 - builder:
63     name: autorelease-maven-deploy
64     builders:
65         - shell:
66             !include-raw:
67                 - include-raw-autorelease-maven-deploy.sh
68
69 - builder:
70     name: autorelease-maven-sources
71     builders:
72         - maven-target:
73             maven-version: '{maven-version}'
74             pom: 'pom.xml'
75             goals: '--quiet dependency:sources -DoutputFile=$WORKSPACE/sources.log -DappendOutput -Dmaven.repo.local=/tmp/r -Dorg.ops4j.pax.url.mvn.localRepository=/tmp/r'
76             java-opts:
77                 - '-Xmx4096m -XX:MaxPermSize=1024m'
78             settings: '{settings}'
79             settings-type: cfp
80             global-settings: '{global-settings}'
81             global-settings-type: cfp
82
83 - builder:
84     name: autorelease-maven-sources-post-process
85     builders:
86         - shell: |
87             awk '/The following files have NOT been resolved:/,/^$/' sources.log > missing-sources.log
88
89 - builder:
90     name: autorelease-generate-taglist
91     builders:
92         - shell: |
93             echo autorelease `git rev-parse --verify HEAD` ${RELEASE_TAG} | tee -a $WORKSPACE/taglist.log
94             git submodule foreach 'echo $path `git rev-parse --verify HEAD` ${RELEASE_TAG} | tee -a $WORKSPACE/taglist.log'
95
96 - builder:
97     name: autorelease-distribute-taglist
98     builders:
99         - shell: |
100             if [ -d "integration/distribution/distributions" ]; then
101                 cp -vf "$WORKSPACE/taglist.log" "integration/distribution/distributions/karaf/src/main/assembly/"
102             else
103                 cp -vf "$WORKSPACE/taglist.log" "integration/distribution/distribution-karaf/src/main/assembly/"
104             fi
105
106 - builder:
107     name: autorelease-generate-release-patches
108     builders:
109     - shell:
110         !include-raw:
111             - include-raw-autorelease-release-versions.sh
112
113 - builder:
114     name: autorelease-sys-stats
115     builders:
116         - shell: |
117             uname -a
118             df -h
119
120 - builder:
121     name: autorelease-get-integration-test-variables
122     builders:
123     - shell:
124         !include-raw:
125             - include-raw-autorelease-get-integration-test-variables.sh
126     - inject:
127         properties-file: variables.prop
128
129 - builder:
130     name: autorelease-generate-project-report
131     builders:
132     - shell:
133         !include-raw:
134             - include-raw-generate-project-report.sh
135
136 - builder:
137     name: autorelease-fix-relative-paths
138     builders:
139         - shell: |
140             ./scripts/fix-relativepaths.sh
141
142 - builder:
143     # include-raw-autorelease-notify-build-failure.sh searches console log for
144     # failures and emails the status to the release mailing list.
145     name: opendaylight-infra-notify-status
146     builders:
147         - shell:
148             !include-raw: include-raw-autorelease-notify-build-failure.sh