Merge "Add builder autorelease-deps to invoke 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 - trigger:
27     name: autorelease-trigger-patch-site-merged
28     triggers:
29         - gerrit:
30             server-name: 'OpenDaylight'
31             trigger-on:
32                 - change-merged-event
33                 - comment-added-contains-event:
34                     comment-contains-value: 'republish'
35             projects:
36               - project-compare-type: 'ANT'
37                 project-pattern: '{name}'
38                 branches:
39                     - branch-compare-type: 'ANT'
40                       branch-pattern: '**/{branch}'
41                 file-paths:
42                     - compare-type: ANT
43                       pattern: src/site/**
44                     - compare-type: ANT
45                       pattern: site.xml
46
47 - trigger:
48     name: autorelease-trigger-patch-site-submitted
49     triggers:
50         - gerrit:
51             server-name: 'OpenDaylight'
52             trigger-on:
53                 - patchset-created-event:
54                     exclude-drafts: 'true'
55                     exclude-trivial-rebase: 'false'
56                     exclude-no-code-change: 'true'
57                 - draft-published-event
58                 - comment-added-contains-event:
59                     comment-contains-value: 'recheck'
60                 - comment-added-contains-event:
61                     comment-contains-value: 'reverify'
62             projects:
63               - project-compare-type: 'ANT'
64                 project-pattern: '{name}'
65                 branches:
66                   - branch-compare-type: 'ANT'
67                     branch-pattern: '**/{branch}'
68                 file-paths:
69                     - compare-type: ANT
70                       pattern: src/site/**
71                     - compare-type: ANT
72                       pattern: site.xml
73
74 - builder:
75     name: autorelease-checkout-gerrit-patch
76     builders:
77         - shell: |
78             cd ${GERRIT_PROJECT}
79             echo "Checking out ${GERRIT_PROJECT} patch ${GERRIT_REFSPEC}..."
80             git fetch origin ${GERRIT_REFSPEC} && git checkout FETCH_HEAD
81             cd ..
82
83 - builder:
84     name: autorelease-cfp
85     builders:
86         - config-file-provider:
87             files:
88                 - file-id: 'autorelease-settings'
89                   variable: 'SETTINGS_FILE'
90                 - file-id: 'odl-global-settings'
91                   variable: 'GLOBAL_SETTINGS_FILE'
92
93 - builder:
94     name: autorelease-determine-merge-order
95     builders:
96        - shell: |
97           virtualenv --system-site-packages $WORKSPACE/venv
98           source $WORKSPACE/venv/bin/activate
99           pip install --upgrade pip
100           pip install --upgrade networkx
101           pip freeze
102           ./scripts/determine-merge-order.py
103           deactivate
104           rm -rf $WORKSPACE/venv
105
106 - builder:
107     name: autorelease-maven-deploy
108     builders:
109         - shell:
110             !include-raw:
111                 - include-raw-autorelease-maven-deploy.sh
112
113 - builder:
114     name: autorelease-maven-sources
115     builders:
116         - maven-target:
117             maven-version: '{maven-version}'
118             pom: 'pom.xml'
119             goals: '--quiet dependency:sources -DoutputFile=$WORKSPACE/sources.log -DappendOutput -Dmaven.repo.local=/tmp/r -Dorg.ops4j.pax.url.mvn.localRepository=/tmp/r'
120             java-opts:
121                 - '-Xmx4096m -XX:MaxPermSize=1024m'
122             settings: '{settings}'
123             settings-type: cfp
124             global-settings: '{global-settings}'
125             global-settings-type: cfp
126
127 - builder:
128     name: autorelease-maven-sources-post-process
129     builders:
130         - shell: |
131             awk '/The following files have NOT been resolved:/,/^$/' sources.log > missing-sources.log
132
133 - builder:
134     name: autorelease-generate-taglist
135     builders:
136         - shell: |
137             echo autorelease `git rev-parse --verify HEAD` ${RELEASE_TAG} | tee -a $WORKSPACE/taglist.log
138             git submodule foreach 'echo $path `git rev-parse --verify HEAD` ${RELEASE_TAG} | tee -a $WORKSPACE/taglist.log'
139
140 - builder:
141     name: autorelease-distribute-taglist
142     builders:
143         - shell: |
144             if [ -d "integration/distribution/distributions" ]; then
145                 cp -vf "$WORKSPACE/taglist.log" "integration/distribution/distributions/karaf/src/main/assembly/"
146             else
147                 cp -vf "$WORKSPACE/taglist.log" "integration/distribution/distribution-karaf/src/main/assembly/"
148             fi
149
150 - builder:
151     name: autorelease-generate-release-patches
152     builders:
153     - shell:
154         !include-raw:
155             - include-raw-autorelease-release-versions.sh
156
157 - builder:
158     name: autorelease-sys-stats
159     builders:
160         - shell: |
161             uname -a
162             df -h
163
164 - builder:
165     name: autorelease-get-integration-test-variables
166     builders:
167     - shell:
168         !include-raw:
169             - include-raw-autorelease-get-integration-test-variables.sh
170     - inject:
171         properties-file: variables.prop
172
173 - builder:
174     name: autorelease-generate-project-report
175     builders:
176     - shell:
177         !include-raw:
178             - include-raw-generate-project-report.sh