Merge "Update cloud image Ubuntu18.04 mininet ovs"
[releng/builder.git] / jjb / releng-maven-mri-stage.yaml
1 ####################
2 # COMMON FUNCTIONS #
3 ####################
4
5 - releng_maven_mri_common: &releng_maven_mri_common
6     name: releng-maven-mri-common
7
8     ######################
9     # Default parameters #
10     ######################
11
12     archive-artifacts: >
13       **/*.log
14       **/hs_err_*.log
15       **/target/**/feature.xml
16       **/target/failsafe-reports/failsafe-summary.xml
17       **/target/surefire-reports/*-output.txt
18
19     #####################
20     # Job Configuration #
21     #####################
22
23     project-type: freestyle
24     node: "{build-node}"
25
26     properties:
27       - lf-infra-properties:
28           build-days-to-keep: "{build-days-to-keep}"
29
30     parameters:
31       - lf-infra-parameters:
32           project: "{project}"
33           branch: "{branch}"
34           stream: "{stream}"
35       - lf-infra-maven-parameters:
36           mvn-opts: "{mvn-opts}"
37           mvn-params: "{mvn-params}"
38           mvn-version: "{mvn-version}"
39       - string:
40           name: ARCHIVE_ARTIFACTS
41           default: "{archive-artifacts}"
42           description: Artifacts to archive to the logs server.
43
44     wrappers:
45       - lf-infra-wrappers:
46           build-timeout: "{build-timeout}"
47           jenkins-ssh-credential: "{jenkins-ssh-credential}"
48
49     publishers:
50       # TODO: Make email notification work.
51       # - lf-infra-email-notify:
52       #     email-recipients: '{email-recipients}'
53       #     email-prefix: '[releng]'
54       - lf-infra-publish
55
56 - builder:
57     name: maven-mri-stage
58     builders:
59       - lf-provide-maven-settings:
60           global-settings-file: "{mvn-global-settings}"
61           settings-file: "{mvn-settings}"
62       - lf-infra-create-netrc:
63           server-id: "{mvn-staging-id}"
64       # include-raw-escape fails due to JJB bug
65       - shell: !include-raw-escape:
66           - global-jjb/shell/common-variables.sh
67           - releng-maven-mri-stage.sh
68       - lf-provide-maven-settings-cleanup
69
70 ###############
71 # Maven Stage #
72 ###############
73
74 - releng_maven_mri_stage: &releng_maven_mri_stage
75     name: releng-maven-mri-stage
76
77     ######################
78     # Default parameters #
79     ######################
80
81     branch: master
82     build-days-to-keep: 30 # 30 days in case a release takes long to get approved.
83     build-timeout: 60
84     cron: "@daily"
85     disable-job: false
86     git-url: "$GIT_URL/$PROJECT"
87     github-url: "https://github.com"
88     java-version: openjdk8
89     maven-versions-plugin: false
90     version-properties-file: version.properties
91     mvn-central: false
92     mvn-global-settings: global-settings
93     mvn-goals: clean deploy
94     mvn-opts: ""
95     mvn-params: ""
96     mvn-version: mvn35
97     ossrh-profile-id: ""
98     mvn-pom: ""
99     sbom-flags: ""
100     sbom-path: "$WORKSPACE"
101     sbom-generator: false
102     sbom-generator-version: "v0.0.15"
103     sign-artifacts: false
104     sign-mode: serial
105     stream: master
106     submodule-recursive: true
107     submodule-timeout: 10
108     submodule-disable: false
109
110     gerrit_release_triggers:
111       - comment-added-contains-event:
112           comment-contains-value: '^Patch Set\s+\d+:\s+stage-(maven-)?release\s*$'
113
114     gerrit_trigger_file_paths:
115       - compare-type: ANT
116         pattern: "**"
117
118     # github_included_regions MUST match gerrit_trigger_file_paths
119     github_included_regions:
120       - ".*"
121
122     #####################
123     # Job Configuration #
124     #####################
125
126     disabled: "{disable-job}"
127
128     parameters:
129       - lf-infra-parameters:
130           project: "{project}"
131           branch: "{branch}"
132           stream: "{stream}"
133       - lf-infra-maven-parameters:
134           mvn-opts: "{mvn-opts}"
135           mvn-params: "{mvn-params}"
136           mvn-version: "{mvn-version}"
137           staging-profile-id: "{staging-profile-id}"
138       - distribution-karaf-version:
139           karaf-version: "{karaf-version}"
140       - bool:
141           name: MAVEN_VERSIONS_PLUGIN
142           default: "{maven-versions-plugin}"
143           description: Use maven-versions-plugin to update pom versions.
144       - string:
145           name: ARCHIVE_ARTIFACTS
146           default: "{archive-artifacts}"
147           description: Artifacts to archive to the logs server.
148       - string:
149           name: STAGING_PROFILE_ID
150           default: "{staging-profile-id}"
151           description: Nexus staging profile ID.
152       - string:
153           name: SBOM_GENERATOR_VERSION
154           default: "{sbom-generator-version}"
155           description: SBOM generator version to download and run.
156       - string:
157           name: SBOM_PATH
158           default: "{sbom-path}"
159           description: path where SBOM needs to be executed.
160
161     builders:
162       - lf-infra-pre-build
163       - lf-jacoco-nojava-workaround
164       - integration-set-variables
165       - lf-maven-install:
166           mvn-version: "{mvn-version}"
167       - lf-update-java-alternatives:
168           java-version: "{java-version}"
169       - lf-provide-maven-settings:
170           global-settings-file: "{mvn-global-settings}"
171           settings-file: "{mvn-settings}"
172       - lf-maven-versions-plugin:
173           maven-versions-plugin: "{maven-versions-plugin}"
174           version-properties-file: "{version-properties-file}"
175           mvn-version: "{mvn-version}"
176           mvn-pom: "{mvn-pom}"
177           mvn-settings: "{mvn-settings}"
178       - shell: !include-raw-escape: global-jjb/shell/maven-patch-release.sh
179       - lf-maven-build:
180           mvn-goals: "{mvn-goals}"
181       # With SBOM Generator
182       - conditional-step:
183           condition-kind: boolean-expression
184           condition-expression: "{sbom-generator}"
185           steps:
186             - shell: echo 'Running SBOM Generator'
187             - lf-infra-maven-sbom-generator:
188                 sbom-flags: "{sbom-flags}"
189       - lf-sigul-sign-dir:
190           sign-artifacts: "{sign-artifacts}"
191           sign-dir: "$WORKSPACE/m2repo"
192           sign-mode: "{sign-mode}"
193       - maven-mri-stage:
194           mvn-global-settings: "{mvn-global-settings}"
195           mvn-settings: "{mvn-settings}"
196           mvn-staging-id: "{mvn-staging-id}"
197       - lf-maven-central:
198           mvn-central: "{mvn-central}"
199           mvn-global-settings: "{mvn-global-settings}"
200           mvn-settings: "{mvn-settings}"
201           ossrh-profile-id: "{ossrh-profile-id}"
202       - lf-provide-maven-settings-cleanup
203       - inject:
204           properties-file: maven-staged-bundle.env
205       - trigger-builds:
206           - project: "{project-name}-distribution-mri-test-{stream}"
207             block: true
208             predefined-parameters: |
209               BUNDLE_URL=$BUNDLE_URL
210               KARAF_VERSION=$KARAF_VERSION
211
212 - job-template:
213     name: "{project-name}-maven-mri-stage-{stream}"
214     id: gerrit-maven-mri-stage
215     <<: *releng_maven_mri_common
216     # yamllint disable-line rule:key-duplicates
217     <<: *releng_maven_mri_stage
218
219     scm:
220       - lf-infra-gerrit-scm:
221           jenkins-ssh-credential: "{jenkins-ssh-credential}"
222           git-url: "{git-url}"
223           refspec: "$GERRIT_REFSPEC"
224           branch: "$GERRIT_BRANCH"
225           submodule-recursive: "{submodule-recursive}"
226           submodule-timeout: "{submodule-timeout}"
227           submodule-disable: "{submodule-disable}"
228           choosing-strategy: default