Merge "Add unified merge PoC job templates"
[ci-management.git] / jjb / global-templates-golang.yaml
1 ---
2 - job-template: &verify_golang_bolierplate
3     # Job template for Golang verify jobs
4     #
5     # The purpose of this job template is to run:
6     # 1. make build
7     #
8     # golangver can be set to golang110, golang111 or golang112
9     # depending on what version is needed by the project
10     # default is golang110
11     #
12     # Required Variables:
13     #     branch:    git branch (eg. stable/lithium or master)
14     #
15     # Optional Variables:
16     #     script:    build script to execute
17     #     pattern:   ant file-path pattern relative to the workspace used to
18     #                trigger the job
19
20     name: '{project-name}-{stream}-verify-golang'
21     path: '$WORKSPACE'
22     pattern: '**'
23     script: ''
24     golangver: 'golang110'
25
26     project-type: freestyle
27     concurrent: true
28     node: '{build-node}'
29
30     properties:
31       - infra-properties:
32           build-days-to-keep: '{build-days-to-keep}'
33
34     parameters:
35       - infra-parameters:
36           project: '{project}'
37           branch: '{branch}'
38           refspec: 'refs/heads/{branch}'
39           artifacts: '{archive-artifacts}'
40
41     scm:
42       - gerrit-trigger-scm:
43           refspec: '$GERRIT_REFSPEC'
44           choosing-strategy: 'gerrit'
45           submodule-recursive: '{submodule-recursive}'
46
47     wrappers:
48       - '{golangver}'
49       - infra-wrappers:
50           build-timeout: '{build-timeout}'
51
52     triggers:
53       - gerrit-trigger-patch-submitted:
54           server: '{server-name}'
55           project: '{project}'
56           branch: '{branch}'
57           files: '{pattern}'
58
59     builders:
60       - lf-infra-pre-build
61       - provide-maven-settings:
62           global-settings-file: 'global-settings'
63           settings-file: '{mvn-settings}'
64       - shell: |
65           #!/bin/bash
66           cd $WORKSPACE/{path}
67           make build
68       - shell: '{script}'
69
70     publishers:
71       - infra-shiplogs:
72           maven-version: '{maven-version}'
73
74 - job-template:
75     # Job template for Golang verify jobs with subproject support
76
77     <<: *verify_golang_bolierplate
78     name: '{project-name}-{stream}-{subproject}-verify-golang'
79
80 - job-template:
81     # Job template for Golang merge jobs
82     #
83     # The purpose of this job template is to run:
84     # 1. make deploy
85     #
86     # golangver can be set to golang110 or golang111
87     # depending on what version is needed by the project
88     # default is golang110
89     #
90     # Required Variables:
91     #     branch:    git branch (eg. stable/lithium or master)
92
93     name: '{project-name}-{stream}-merge-golang'
94     path: $WORKSPACE
95     golangver: 'golang110'
96
97     project-type: freestyle
98     node: '{build-node}'
99
100     properties:
101       - infra-properties:
102           build-days-to-keep: '{build-days-to-keep}'
103
104     parameters:
105       - infra-parameters:
106           project: '{project}'
107           branch: '{branch}'
108           refspec: 'refs/heads/{branch}'
109           artifacts: '{archive-artifacts}'
110       - maven-exec:
111           maven-version: '{maven-version}'
112
113     scm:
114       - gerrit-trigger-scm:
115           refspec: ''
116           choosing-strategy: 'default'
117           submodule-recursive: '{submodule-recursive}'
118
119     wrappers:
120       - '{golangver}'
121       - infra-wrappers:
122           build-timeout: '{build-timeout}'
123
124     triggers:
125       - gerrit-trigger-patch-merged:
126           server: '{server-name}'
127           project: '{project}'
128           branch: '{branch}'
129           files: '**'
130
131     builders:
132       - lf-infra-pre-build
133       - provide-maven-settings:
134           global-settings-file: 'global-settings'
135           settings-file: '{mvn-settings}'
136       - shell: |
137           #!/bin/bash
138           cd $WORKSPACE/{path}
139           make deploy
140
141     publishers:
142       - infra-shiplogs:
143           maven-version: '{maven-version}'
144
145 - job-template:
146     # Job template for building & pushing docker images
147     #
148     # golangver can be set to golang110 or golang111
149     # depending on what version is needed by the project
150     # default is golang110
151     #
152     # The purpose of this job template is to run:
153     #  1. login to the docker registry
154     #  2. run a specified shell builder
155     #
156
157     name: '{project-name}-{stream}-docker-golang-shell-daily'
158     golangver: 'golang110'
159     project-type: freestyle
160     node: 'ubuntu1804-docker-8c-8g'
161     disabled: false
162     properties:
163       - infra-properties:
164           build-days-to-keep: '{build-days-to-keep}'
165
166     parameters:
167       - infra-parameters:
168           project: '{project}'
169           branch: '{branch}'
170           refspec: 'refs/heads/{branch}'
171           artifacts: '{archive-artifacts}'
172     scm:
173       - gerrit-trigger-scm:
174           refspec: ''
175           choosing-strategy: 'default'
176           submodule-recursive: '{submodule-recursive}'
177
178     wrappers:
179       - '{golangver}'
180       - infra-wrappers:
181           build-timeout: '{build-timeout}'
182
183     triggers:
184       # 12 AM UTC
185       - timed: '@daily'
186       - gerrit-trigger-release-manually:
187           server: '{server-name}'
188           project: '{project}'
189           branch: '{branch}'
190
191     builders:
192       - lf-infra-pre-build
193       - provide-maven-settings:
194           global-settings-file: 'global-settings'
195           settings-file: '{mvn-settings}'
196
197       - docker-login
198
199       - shell: '{script}'
200
201     publishers:
202       - infra-shiplogs:
203           maven-version: '{maven-version}'
204
205 - job-template:
206     # Job template PoC for building & pushing snapshot docker images
207     # for CSIT verification
208     #
209     # golangver can be set to golang110 or golang111
210     # depending on what version is needed by the project
211     # default is golang110
212     #
213     # The purpose of this job template is to run:
214     #  1. login to the docker registry
215     #  2. run a specified shell builder
216     #
217
218     name: '{project-name}-{stream}-golang-docker-snapshot-PoC'
219     golangver: 'golang110'
220     project-type: freestyle
221     node: 'ubuntu1804-docker-8c-8g'
222     disabled: '{disabled}'
223     properties:
224       - infra-properties:
225           build-days-to-keep: '{build-days-to-keep}'
226
227     parameters:
228       - infra-parameters:
229           project: '{project}'
230           branch: '{branch}'
231           refspec: 'refs/heads/{branch}'
232           artifacts: '{archive-artifacts}'
233       - integration-unique-docker-tag:
234           unique-docker-tag: ''
235     scm:
236       - gerrit-trigger-scm:
237           refspec: '$GERRIT_REFSPEC'
238           choosing-strategy: 'gerrit'
239           submodule-recursive: '{submodule-recursive}'
240
241     wrappers:
242       - '{golangver}'
243       - infra-wrappers:
244           build-timeout: '{build-timeout}'
245
246     triggers:
247       # 12 AM UTC
248       - timed: '@daily'
249       - gerrit-trigger-release-manually:
250           server: '{server-name}'
251           project: '{project}'
252           branch: '{branch}'
253
254     builders:
255       - lf-infra-pre-build
256       - provide-maven-settings:
257           global-settings-file: 'global-settings'
258           settings-file: '{mvn-settings}'
259
260       - docker-login
261
262       - shell: '{script}'
263
264     publishers:
265       - infra-shiplogs:
266           maven-version: '{maven-version}'