Feat: Run merge jobs twice a week
[releng/builder.git] / jjb / releng-templates-java.yaml
1 ---
2 - job-group:
3     name: odl-maven-jobs-jdk11
4
5     jobs:
6       - gerrit-maven-clm:
7           nexus-iq-namespace: odl-
8           nexus-iq-stage: release
9
10       - gerrit-maven-merge:
11           build-timeout: 180
12
13       - gerrit-maven-stage:
14           sign-artifacts: true
15           sbom-generator: true
16           cron: ""
17
18       - gerrit-maven-mri-stage:
19           sbom-generator: true
20           sign-artifacts: true
21           cron: ""
22
23     java-version: openjdk11
24     mvn-version: mvn38
25
26 - job-group:
27     name: odl-maven-jobs-jdk17
28
29     jobs:
30       - gerrit-maven-clm:
31           nexus-iq-namespace: odl-
32           nexus-iq-stage: release
33           mvn-opts: "--add-opens java.base/java.util=ALL-UNNAMED"
34
35       - gerrit-maven-merge:
36           build-timeout: 180
37
38       - gerrit-maven-stage:
39           sbom-generator: true
40           sign-artifacts: true
41           cron: ""
42
43       - gerrit-maven-mri-stage:
44           sbom-generator: true
45           sign-artifacts: true
46           cron: ""
47
48     java-version: openjdk17
49     mvn-version: mvn38
50
51 - job-group:
52     name: odl-maven-verify-jobs
53
54     jobs:
55       - gerrit-maven-verify
56       - gerrit-maven-verify-dependencies:
57           build-timeout: 180
58
59     mvn-version: mvn38
60
61 - job-group:
62     name: odl-maven-verify-jobs-jdk17
63
64     jobs:
65       - gerrit-maven-verify
66       - gerrit-maven-verify-dependencies:
67           build-timeout: 180
68
69     java-version: openjdk17
70     mvn-version: mvn38
71
72 - job-template:
73     name: "{project-name}-integration-{stream}"
74
75     ######################
76     # Default parameters #
77     ######################
78
79     archive-artifacts: >
80       **/*.log
81       **/hs_err_*.log
82       **/target/**/feature.xml
83       **/target/failsafe-reports/failsafe-summary.xml
84       **/target/surefire-reports/*-output.txt
85     mvn-goals: clean install
86     disable-job: false
87
88     #####################
89     # Job Configuration #
90     #####################
91
92     project-type: freestyle
93     node: "{build-node}"
94     jdk: "{java-version}"
95     disabled: "{disable-job}"
96
97     properties:
98       - opendaylight-infra-properties:
99           build-days-to-keep: "{build-days-to-keep}"
100
101     parameters:
102       - opendaylight-infra-parameters:
103           os-cloud: "{os-cloud}"
104           project: "{project}"
105           branch: "{branch}"
106           refspec: "refs/heads/{branch}"
107           artifacts: "{archive-artifacts}"
108
109     scm:
110       - git-scm:
111           refspec: ""
112           branch: "{branch}"
113
114     wrappers:
115       - opendaylight-infra-wrappers:
116           build-timeout: "{build-timeout}"
117
118     triggers:
119       - reverse:
120           jobs: "{dependencies}"
121           result: "success"
122
123     builders:
124       - lf-jacoco-nojava-workaround
125       - lf-provide-maven-settings:
126           global-settings-file: "global-settings"
127           settings-file: "{mvn-settings}"
128       - maven-target:
129           maven-version: "mvn35"
130           goals: |
131             {mvn-goals}
132             {opendaylight-infra-mvn-opts}
133           java-opts:
134             - "{mvn-opts}"
135           settings: "{mvn-settings}"
136           settings-type: cfp
137           global-settings: "global-settings"
138           global-settings-type: cfp
139
140     publishers:
141       - email-notification:
142           email-recipients: "{email-recipients}"
143           email-prefix: "{email-upstream}"
144       - findbugs
145       - lf-jacoco-report
146       - lf-infra-publish
147
148 - job-template:
149     name: "{project-name}-merge-{stream}"
150
151     ######################
152     # Default parameters #
153     ######################
154     disable-job: "false"
155
156     archive-artifacts: >
157       **/*.log
158       **/hs_err_*.log
159       **/target/**/feature.xml
160       **/target/failsafe-reports/failsafe-summary.xml
161       **/target/surefire-reports/*-output.txt
162     cron: "0 0 * * tue,sat"
163     mvn-opts: ""
164     mvn-version: mvn35
165
166     #####################
167     # Job Configuration #
168     #####################
169
170     # Need to keep jobs that deploy to Nexus at end of build as Maven
171     # projects. Maybe reconsider this once upstream moves deploy to a
172     # separate lifecycle:
173     #     https://issues.apache.org/jira/browse/MNG-5666
174     project-type: maven
175     node: "{build-node}"
176     jdk: "{java-version}"
177     disabled: "{disable-job}"
178
179     properties:
180       - opendaylight-infra-properties:
181           build-days-to-keep: 14
182
183     parameters:
184       - opendaylight-infra-parameters:
185           os-cloud: "{os-cloud}"
186           project: "{project}"
187           branch: "{branch}"
188           refspec: "refs/heads/{branch}"
189           artifacts: "{archive-artifacts}"
190       - string:
191           name: STREAM
192           default: "{stream}"
193           description: "String representing release name"
194
195     scm:
196       - gerrit-trigger-scm:
197           refspec: ""
198           choosing-strategy: "default"
199
200     wrappers:
201       - opendaylight-infra-wrappers:
202           build-timeout: "{build-timeout}"
203
204     triggers:
205       - timed: "{obj:cron}"
206       - gerrit-trigger-patch-merged:
207           gerrit-server-name: "{gerrit-server-name}"
208           name: "{project}"
209           branch: "{branch}"
210           files: "**"
211           forbidden-files: ""
212
213     prebuilders:
214       - lf-jacoco-nojava-workaround
215       - lf-provide-maven-settings:
216           global-settings-file: "global-settings"
217           settings-file: "{mvn-settings}"
218       - lf-maven-install:
219           mvn-version: "{mvn-version}"
220
221     # TODO: Do we want to apply sophisticated checks as in *-distribution-check-*?
222     maven:
223       maven-name: "{mvn-version}"
224       goals: >
225         {mvn-goals}
226         -Dmerge
227         -Dstream={stream}
228         {opendaylight-infra-mvn-opts}
229       maven-opts: "{mvn-opts}"
230       settings: "{mvn-settings}"
231       settings-type: cfp
232       global-settings: "global-settings"
233       global-settings-type: cfp
234       post-step-run-condition: UNSTABLE
235
236     reporters:
237       - findbugs
238
239     publishers:
240       - email-notification:
241           email-recipients: "{email-recipients}"
242           email-prefix: "[{project-name}]"
243       - maven-deploy:
244           id: ""
245           unique-version: true
246           deploy-unstable: false
247       - lf-jacoco-report
248       - lf-infra-publish