1 # SPDX-License-Identifier: Apache-2.0
2 ##############################################################################
3 # Copyright (c) 2019 The Linux Foundation and others.
4 # All rights reserved. This program and the accompanying materials
5 # are made available under the terms of the Apache License, Version 2.0
6 # which accompanies this distribution, and is available at
7 # http://www.apache.org/licenses/LICENSE-2.0
8 ##############################################################################
14 - lf_release_common: &lf_release_common
15 name: lf-release-common
21 project-type: freestyle
25 - lf-infra-properties:
35 - lf_release_verify: &lf_release_verify
36 name: lf-release-verify
38 ######################
39 # Default parameters #
40 ######################
45 git-url: "$GIT_URL/$PROJECT"
46 gerrit-skip-vote: false
47 use-release-file: true
49 gerrit_verify_triggers:
50 - patchset-created-event:
52 exclude-trivial-rebase: false
53 exclude-no-code-change: false
54 - draft-published-event
55 - comment-added-contains-event:
56 comment-contains-value: |
57 ^Patch Set[ ]+[0-9]+:([ ]+|[\n]+)(recheck|reverify)$
63 disabled: "{disable-job}"
66 - lf-infra-parameters:
68 branch: "$GERRIT_BRANCH"
69 stream: "$GERRIT_BRANCH"
70 - lf-build-with-parameters-maven-release:
71 use-release-file: "{use-release-file}"
76 condition-kind: regex-match
77 regex: "^.*-docker-.*"
80 - lf-provide-maven-settings:
81 global-settings-file: "global-settings"
82 settings-file: "{mvn-settings}"
83 - shell: !include-raw-escape: ../shell/docker-login.sh
84 - lf-provide-maven-settings-cleanup
85 - config-file-provider:
87 - file-id: sigul-config
88 variable: SIGUL_CONFIG
89 - file-id: sigul-password
90 variable: SIGUL_PASSWORD
93 - file-id: signing-pubkey
94 variable: SIGNING_PUBKEY
95 - shell: !include-raw-escape: ../shell/sigul-configuration.sh
96 - shell: !include-raw-escape: ../shell/sigul-install.sh
100 name: "{project-name}-release-verify"
101 id: gerrit-release-verify
102 <<: *lf_release_common
103 # yamllint disable-line rule:key-duplicates
104 <<: *lf_release_verify
108 build-timeout: "{build-timeout}"
109 jenkins-ssh-credential: "{jenkins-ssh-credential}"
112 - lf-infra-gerrit-scm:
114 refspec: "$GERRIT_REFSPEC"
115 branch: "$GERRIT_BRANCH"
116 submodule-disable: true
117 submodule-recursive: false
118 submodule-timeout: 10
119 choosing-strategy: gerrit
120 jenkins-ssh-credential: "{jenkins-ssh-credential}"
124 server-name: "{gerrit-server-name}"
125 trigger-on: "{obj:gerrit_verify_triggers}"
127 - project-compare-type: "ANT"
128 project-pattern: "{project}"
130 - branch-compare-type: "ANT"
133 - compare-type: REG_EXP
134 pattern: '(releases\/.*\.yaml|\.releases\/.*\.yaml)'
136 successful: "{gerrit-skip-vote}"
137 failed: "{gerrit-skip-vote}"
138 unstable: "{gerrit-skip-vote}"
139 notbuilt: "{gerrit-skip-vote}"
145 - lf_release_merge: &lf_release_merge
146 name: lf-release-merge
148 ######################
149 # Default parameters #
150 ######################
152 build-days-to-keep: 7
155 git-url: "$GIT_URL/$PROJECT"
156 use-release-file: true
158 gerrit_merge_triggers:
159 - change-merged-event
160 - comment-added-contains-event:
161 comment-contains-value: remerge$
163 #####################
164 # Job Configuration #
165 #####################
167 disabled: "{disable-job}"
170 - lf-infra-parameters:
172 branch: "$GERRIT_BRANCH"
173 stream: "$GERRIT_BRANCH"
174 - lf-build-with-parameters-maven-release:
175 use-release-file: "{use-release-file}"
180 If DRY_RUN is enabled artifacts are not published.
185 condition-kind: regex-match
186 regex: "^.*-docker-.*"
187 label: "{build-node}"
189 - lf-provide-maven-settings:
190 global-settings-file: "global-settings"
191 settings-file: "{mvn-settings}"
192 - shell: !include-raw-escape: ../shell/docker-login.sh
193 - lf-provide-maven-settings-cleanup
194 - config-file-provider:
196 - file-id: sigul-config
197 variable: SIGUL_CONFIG
198 - file-id: sigul-password
199 variable: SIGUL_PASSWORD
202 - file-id: signing-pubkey
203 variable: SIGNING_PUBKEY
204 - shell: !include-raw-escape: ../shell/sigul-configuration.sh
205 - shell: !include-raw-escape: ../shell/sigul-install.sh
209 name: "{project-name}-release-merge"
210 id: gerrit-release-merge
211 <<: *lf_release_common
212 # yamllint disable-line rule:key-duplicates
213 <<: *lf_release_merge
217 build-timeout: "{build-timeout}"
218 jenkins-ssh-credential: "{jenkins-ssh-release-credential}"
221 - lf-infra-gerrit-scm:
222 jenkins-ssh-credential: "{jenkins-ssh-credential}"
224 refspec: "$GERRIT_REFSPEC"
225 branch: "$GERRIT_BRANCH"
226 submodule-disable: true
227 submodule-recursive: false
228 submodule-timeout: 10
229 choosing-strategy: default
233 server-name: "{gerrit-server-name}"
234 trigger-on: "{obj:gerrit_merge_triggers}"
236 - project-compare-type: "ANT"
237 project-pattern: "{project}"
239 - branch-compare-type: "ANT"
242 - compare-type: REG_EXP
243 pattern: '(releases\/.*\.yaml|\.releases\/.*\.yaml)'
249 - lf_pypi_verify_wrappers: &lf_pypi_verify_wrappers
250 name: lf-pypi-verify-wrappers
254 build-timeout: "{build-timeout}"
255 jenkins-ssh-credential: "{jenkins-ssh-credential}"
257 - lf_pypi_release_wrappers: &lf_pypi_release_wrappers
258 name: lf-pypi-release-wrappers
262 build-timeout: "{build-timeout}"
263 jenkins-ssh-credential: "{jenkins-ssh-release-credential}"
265 - lf_pypi_release: &lf_pypi_release
266 name: lf-pypi-release
268 ######################
269 # Default parameters #
270 ######################
272 branch: master # for github
273 build-days-to-keep: 7
276 gerrit-skip-vote: false
277 git-url: "$GIT_URL/$PROJECT"
278 github-url: "https://github.com"
280 pypi-stage-index: https://test.pypi.org/simple
281 submodule-disable: true
282 submodule-recursive: false
283 submodule-timeout: 10
284 use-release-file: true
286 # define once and use twice; jobs MUST NOT override
287 gerrit_release_trigger_file_paths:
288 - compare-type: REG_EXP
289 pattern: '(releases\/.*\.yaml|\.releases\/.*\.yaml)'
291 # yamllint disable-line rule:line-length
292 # github_release_included_regions MUST match gerrit_release_trigger_file_paths
293 github_release_included_regions:
294 - 'releases\/.*\.yaml'
295 - '.releases\/.*\.yaml'
298 - lf-infra-parameters:
300 branch: "$GERRIT_BRANCH"
301 stream: "$GERRIT_BRANCH"
302 # accept all entries defined in the release-yaml file
304 name: DISTRIBUTION_TYPE
306 description: "The Jenkins release job distribution type."
310 description: "The partial path of logs from the PyPI merge job."
314 description: "The PyPI project name."
318 description: "The Python compatibility version, example: 3.6"
322 description: "The module version, example: 1.0.0"
323 # special parameters for manual use of the Jenkins job
325 name: USE_RELEASE_FILE
327 description: "Set to False (unchecked) to build with parameters"
331 description: "Set to True (checked) to skip uploading artifacts"
335 - config-file-provider:
337 - file-id: sigul-config
338 variable: SIGUL_CONFIG
339 - file-id: sigul-password
340 variable: SIGUL_PASSWORD
343 - file-id: signing-pubkey
344 variable: SIGNING_PUBKEY
345 - shell: !include-raw-escape: ../shell/sigul-configuration.sh
346 - shell: !include-raw-escape: ../shell/sigul-install.sh
348 properties-content: |
349 PYPI_INDEX={pypi-stage-index}
350 REPOSITORY={pypi-repo}
351 - shell: !include-raw-escape: ../shell/release-job.sh
354 name: "{project-name}-pypi-release-merge"
355 id: gerrit-pypi-release-merge
356 <<: *lf_release_common
357 <<: *lf_pypi_release_wrappers
361 - lf-infra-gerrit-scm:
362 jenkins-ssh-credential: "{jenkins-ssh-credential}"
364 refspec: "$GERRIT_REFSPEC"
365 branch: "$GERRIT_BRANCH"
366 submodule-recursive: "{submodule-recursive}"
367 submodule-timeout: "{submodule-timeout}"
368 submodule-disable: "{submodule-disable}"
369 choosing-strategy: gerrit
373 server-name: "{gerrit-server-name}"
375 - change-merged-event
376 - comment-added-contains-event:
377 comment-contains-value: '^Patch Set\s+\d+:\s+remerge\s*$'
379 - project-compare-type: "ANT"
380 project-pattern: "{project}"
382 - branch-compare-type: ANT
384 file-paths: "{obj:gerrit_release_trigger_file_paths}"
387 name: "{project-name}-pypi-release-merge"
388 id: github-pypi-release-merge
389 <<: *lf_release_common
390 <<: *lf_pypi_release_wrappers
395 url: "{github-url}/{github-org}/{project}"
398 - lf-infra-github-scm:
399 url: "{git-clone-url}{github-org}/{project}"
401 branch: "refs/heads/{branch}"
402 submodule-recursive: "{submodule-recursive}"
403 submodule-timeout: "{submodule-timeout}"
404 submodule-disable: "{submodule-disable}"
405 choosing-strategy: default
406 jenkins-ssh-credential: "{jenkins-ssh-credential}"
409 - github-pull-request:
410 trigger-phrase: "^(remerge)$"
411 only-trigger-phrase: false
412 status-context: "PyPI Release Merge"
415 white-list-target-branches:
417 included-regions: "{obj:github_release_included_regions}"
420 name: "{project-name}-pypi-release-verify"
421 id: gerrit-pypi-release-verify
422 <<: *lf_release_common
423 <<: *lf_pypi_verify_wrappers
427 - lf-infra-gerrit-scm:
428 jenkins-ssh-credential: "{jenkins-ssh-credential}"
430 refspec: "$GERRIT_REFSPEC"
431 branch: "$GERRIT_BRANCH"
432 submodule-recursive: "{submodule-recursive}"
433 submodule-timeout: "{submodule-timeout}"
434 submodule-disable: "{submodule-disable}"
435 choosing-strategy: gerrit
439 server-name: "{gerrit-server-name}"
441 - patchset-created-event:
443 exclude-trivial-rebase: false
444 exclude-no-code-change: false
445 - draft-published-event
446 - comment-added-contains-event:
447 # yamllint disable-line rule:line-length
448 comment-contains-value: '^Patch Set\s+\d+:\s+(recheck|reverify)\s*$'
450 - project-compare-type: "ANT"
451 project-pattern: "{project}"
453 - branch-compare-type: ANT
455 file-paths: "{obj:gerrit_release_trigger_file_paths}"
458 name: "{project-name}-pypi-release-verify"
459 id: github-pypi-release-verify
460 <<: *lf_release_common
461 <<: *lf_pypi_verify_wrappers
466 url: "{github-url}/{github-org}/{project}"
469 - lf-infra-github-scm:
470 url: "{git-clone-url}{github-org}/{project}"
472 branch: "refs/heads/{branch}"
473 submodule-recursive: "{submodule-recursive}"
474 submodule-timeout: "{submodule-timeout}"
475 submodule-disable: "{submodule-disable}"
476 choosing-strategy: default
477 jenkins-ssh-credential: "{jenkins-ssh-credential}"
480 - github-pull-request:
481 trigger-phrase: "^(recheck|reverify)$"
482 only-trigger-phrase: false
483 status-context: "PyPI Release Verify"
486 white-list-target-branches:
488 included-regions: "{obj:github_release_included_regions}"