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