b7b93702c8ed77e9ef90cfc5e274cad610e41921
[releng/global-jjb.git] / jjb / lf-gradle-jobs.yaml
1 ####################
2 # COMMON FUNCTIONS #
3 ####################
4
5 - _lf_gradle_common: &lf_gradle_common
6     name: lf-gradle-common
7
8     ######################
9     # Default parameters #
10     ######################
11
12     branch: master
13     build-days-to-keep: 7
14     build-timeout: 60
15     disable-job: false
16     git-url: "$GIT_URL/$PROJECT"
17     github-url: https://github.com
18     java-version: openjdk17
19     stream: master
20     submodule-recursive: true
21     submodule-timeout: 10
22     submodule-disable: false
23     cron: "@daily"
24     wrapper: true
25
26     archive-artifacts: >
27       **/*.log
28       **/hs_err_*.log
29       **/target/**/feature.xml
30       **/target/failsafe-reports/failsafe-summary.xml
31       **/target/surefire-reports/*-output.txt
32
33     #####################
34     # Job Configuration #
35     #####################
36
37     project-type: freestyle
38     node: "{build-node}"
39
40     properties:
41       - lf-infra-properties:
42           build-days-to-keep: "{build-days-to-keep}"
43
44     parameters:
45       - lf-infra-parameters:
46           project: "{project}"
47           branch: "{branch}"
48           stream: "{stream}"
49       - string:
50           name: ARCHIVE_ARTIFACTS
51           default: "{archive-artifacts}"
52           description: Artifacts to archive to the logs server.
53
54     wrappers:
55       - lf-infra-wrappers:
56           build-timeout: "{build-timeout}"
57           jenkins-ssh-credential: "{jenkins-ssh-credential}"
58
59     publishers:
60       - lf-infra-publish
61
62     gerrit_gradle_triggers:
63       - patchset-created-event:
64           exclude-drafts: true
65           exclude-trivial-rebase: false
66           exclude-no-code-change: false
67       - draft-published-event
68       - comment-added-contains-event:
69           comment-contains-value: '^Patch Set\s+\d+:\s+(recheck|reverify)\s*$'
70
71     gerrit_trigger_file_paths:
72       - compare-type: REG_EXP
73         pattern: ".*"
74
75 - job-template:
76     name: "{project-name}-gradle-build-{stream}"
77     id: gerrit-gradle-build
78     <<: *lf_gradle_common
79
80     builders:
81       - lf-infra-pre-build
82       - lf-update-java-alternatives:
83           java-version: "{java-version}"
84       - lf-infra-docker-login:
85           global-settings-file: "global-settings"
86           settings-file: "{mvn-settings}"
87       - gradle:
88           wrapper: "{wrapper}"
89           executable: true
90           tasks: |
91             build
92
93     scm:
94       - lf-infra-gerrit-scm:
95           jenkins-ssh-credential: "{jenkins-ssh-credential}"
96           git-url: "{git-url}"
97           refspec: "$GERRIT_REFSPEC"
98           branch: "$GERRIT_BRANCH"
99           submodule-recursive: "{submodule-recursive}"
100           submodule-timeout: "{submodule-timeout}"
101           submodule-disable: "{submodule-disable}"
102           choosing-strategy: default
103
104     triggers:
105       - timed: "{obj:cron}"
106       - gerrit:
107           server-name: "{gerrit-server-name}"
108           trigger-on: "{obj:gerrit_gradle_triggers}"
109           projects:
110             - project-compare-type: ANT
111               project-pattern: "{project}"
112               branches:
113                 - branch-compare-type: ANT
114                   branch-pattern: "**/{branch}"
115               file-paths: "{obj:gerrit_trigger_file_paths}"
116
117 - job-template:
118     name: "{project-name}-gradle-build-{stream}"
119     id: github-gradle-build
120     <<: *lf_gradle_common
121
122     builders:
123       - lf-infra-pre-build
124       - lf-update-java-alternatives:
125           java-version: "{java-version}"
126       - lf-infra-docker-login:
127           global-settings-file: "global-settings"
128           settings-file: "{mvn-settings}"
129       - shell: |
130           ./gradlew build
131
132     scm:
133       - lf-infra-github-scm:
134           url: "{git-clone-url}{github-org}/{project}"
135           refspec: "+refs/pull/*:refs/remotes/origin/pr/*"
136           branch: "$sha1"
137           submodule-recursive: "{submodule-recursive}"
138           submodule-timeout: "{submodule-timeout}"
139           submodule-disable: "{submodule-disable}"
140           choosing-strategy: default
141           jenkins-ssh-credential: "{jenkins-ssh-credential}"
142
143     triggers:
144       - github-pull-request:
145           trigger-phrase: ^(recheck|reverify)$
146           only-trigger-phrase: false
147           status-context: "Gradle Verify"
148           permit-all: true
149           github-hooks: true
150           white-list-target-branches:
151             - "{branch}"