Fix: gradle jobs triggers and scm
[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_verify_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_gradle_merge_triggers:
72       - change-merged-event
73       - comment-added-contains-event:
74           comment-contains-value: '^Patch Set\s+\d+:\s+remerge\s*$'
75
76     gerrit_trigger_file_paths:
77       - compare-type: REG_EXP
78         pattern: ".*"
79
80 - job-template:
81     name: "{project-name}-gradle-build-{stream}"
82     id: gerrit-gradle-build
83     <<: *lf_gradle_common
84
85     builders:
86       - lf-infra-pre-build
87       - lf-update-java-alternatives:
88           java-version: "{java-version}"
89       - lf-infra-docker-login:
90           global-settings-file: "global-settings"
91           settings-file: "{mvn-settings}"
92       - gradle:
93           wrapper: "{wrapper}"
94           executable: true
95           tasks: |
96             build
97
98     scm:
99       - lf-infra-gerrit-scm:
100           jenkins-ssh-credential: "{jenkins-ssh-credential}"
101           git-url: "{git-url}"
102           refspec: "$GERRIT_REFSPEC"
103           branch: "$GERRIT_BRANCH"
104           submodule-recursive: "{submodule-recursive}"
105           submodule-timeout: "{submodule-timeout}"
106           submodule-disable: "{submodule-disable}"
107           choosing-strategy: gerrit
108
109     triggers:
110       - timed: "{obj:cron}"
111       - gerrit:
112           server-name: "{gerrit-server-name}"
113           trigger-on: "{obj:gerrit_gradle_verify_triggers}"
114           projects:
115             - project-compare-type: ANT
116               project-pattern: "{project}"
117               branches:
118                 - branch-compare-type: ANT
119                   branch-pattern: "**/{branch}"
120               file-paths: "{obj:gerrit_trigger_file_paths}"
121
122 - job-template:
123     name: "{project-name}-gradle-build-{stream}"
124     id: github-gradle-build
125     <<: *lf_gradle_common
126
127     builders:
128       - lf-infra-pre-build
129       - lf-update-java-alternatives:
130           java-version: "{java-version}"
131       - lf-infra-docker-login:
132           global-settings-file: "global-settings"
133           settings-file: "{mvn-settings}"
134       - gradle:
135           wrapper: "{wrapper}"
136           executable: true
137           tasks: |
138             build
139
140     scm:
141       - lf-infra-github-scm:
142           url: "{git-clone-url}{github-org}/{project}"
143           refspec: "+refs/pull/*:refs/remotes/origin/pr/*"
144           branch: "$sha1"
145           submodule-recursive: "{submodule-recursive}"
146           submodule-timeout: "{submodule-timeout}"
147           submodule-disable: "{submodule-disable}"
148           choosing-strategy: default
149           jenkins-ssh-credential: "{jenkins-ssh-credential}"
150
151     triggers:
152       - github-pull-request:
153           trigger-phrase: ^(recheck|reverify)$
154           only-trigger-phrase: false
155           status-context: "Gradle Verify"
156           permit-all: true
157           github-hooks: true
158           white-list-target-branches:
159             - "{branch}"
160
161 - job-template:
162     name: "{project-name}-gradle-publish-jar-{stream}"
163     id: gerrit-gradle-publish-jar
164     <<: *lf_gradle_common
165
166     builders:
167       - lf-infra-pre-build
168       - lf-update-java-alternatives:
169           java-version: "{java-version}"
170       - lf-infra-docker-login:
171           global-settings-file: "global-settings"
172           settings-file: "{mvn-settings}"
173       - gradle:
174           wrapper: "{wrapper}"
175           executable: true
176           tasks: |
177             shadowJar
178             publish
179
180     scm:
181       - lf-infra-gerrit-scm:
182           jenkins-ssh-credential: "{jenkins-ssh-credential}"
183           git-url: "{git-url}"
184           refspec: "$GERRIT_REFSPEC"
185           branch: "$GERRIT_BRANCH"
186           submodule-recursive: "{submodule-recursive}"
187           submodule-timeout: "{submodule-timeout}"
188           submodule-disable: "{submodule-disable}"
189           choosing-strategy: default
190
191     triggers:
192       - timed: "{obj:cron}"
193       - gerrit:
194           server-name: "{gerrit-server-name}"
195           trigger-on: "{obj:gerrit_gradle_merge_triggers}"
196           projects:
197             - project-compare-type: ANT
198               project-pattern: "{project}"
199               branches:
200                 - branch-compare-type: ANT
201                   branch-pattern: "**/{branch}"
202               file-paths: "{obj:gerrit_trigger_file_paths}"