2 # This file contains job templates for Docker projects.
9 name: lf-docker-get-container-tag
12 condition-kind: regex-match
13 regex: git-describe-params
14 label: '{docker-use-params-from}'
16 - shell: !include-raw-escape:
17 - ../shell/docker-get-git-describe.sh
19 condition-kind: regex-match
20 regex: yaml-file-params
21 label: '{docker-use-params-from}'
23 - shell: !include-raw-escape:
24 - ../shell/docker-get-yaml-tag.sh
26 # Import the docker image information from the previous build step
27 properties-file: 'env_docker_inject.txt'
35 DOCKER_ARGS={docker-build-args}
36 DOCKER_NAME={docker-name}
37 DOCKER_ROOT={docker-root}
38 CONTAINER_PULL_REGISTRY={container-public-registry}
39 - shell: !include-raw-escape:
40 - ../shell/docker-build.sh
47 CONTAINER_PUSH_REGISTRY={container-push-registry}
48 - shell: !include-raw-escape:
49 - ../shell/docker-push.sh
55 - lf_docker_common: &lf_docker_common
56 name: lf-docker-common
58 project-type: freestyle
61 ######################
62 # Default parameters #
63 ######################
68 submodule-disable: false
69 submodule-recursive: true
71 pre_docker_build_script: ''
72 post_docker_build_script: ''
74 docker-root: '$WORKSPACE'
76 git-url: '$GIT_URL/$PROJECT'
82 disabled: '{disable-job}'
85 - lf-infra-properties:
86 build-days-to-keep: '{build-days-to-keep}'
89 - lf-infra-parameters:
92 refspec: 'refs/heads/{branch}'
97 build-timeout: '{build-timeout}'
98 jenkins-ssh-credential: '{jenkins-ssh-credential}'
103 - docker_verify_common: &docker_verify_common
104 name: docker-verify-common
109 - lf-infra-gerrit-scm:
110 jenkins-ssh-credential: '{jenkins-ssh-credential}'
112 refspec: '$GERRIT_REFSPEC'
113 branch: '$GERRIT_BRANCH'
114 submodule-disable: '{submodule-disable}'
115 submodule-recursive: '{submodule-recursive}'
116 submodule-timeout: '{submodule-timeout}'
117 choosing-strategy: gerrit
119 gerrit_verify_triggers:
120 - patchset-created-event:
122 exclude-trivial-rebase: false
123 exclude-no-code-change: false
124 - draft-published-event
125 - comment-added-contains-event:
126 comment-contains-value: '^Patch Set[ ]+[0-9]+:([ ]+|[\n]+)(recheck|reverify)$'
130 - lf-infra-docker-login:
131 global-settings-file: 'global-settings'
132 settings-file: '{mvn-settings}'
133 - shell: '{pre_docker_build_script}'
134 - lf-docker-get-container-tag
136 - shell: '{post_docker_build_script}'
137 - lf-provide-maven-settings-cleanup
139 - docker_merge_common: &docker_merge_common
140 name: docker-merge-common
143 - lf-infra-gerrit-scm:
144 jenkins-ssh-credential: '{jenkins-ssh-credential}'
146 refspec: '$GERRIT_REFSPEC'
147 branch: '$GERRIT_BRANCH'
148 submodule-disable: '{submodule-disable}'
149 submodule-recursive: '{submodule-recursive}'
150 submodule-timeout: '{submodule-timeout}'
151 choosing-strategy: gerrit
153 gerrit_merge_triggers:
154 - change-merged-event
155 - comment-added-contains-event:
156 comment-contains-value: remerge$
160 - lf-infra-docker-login:
161 global-settings-file: 'global-settings'
162 settings-file: '{mvn-settings}'
163 - shell: '{pre_docker_build_script}'
164 - lf-docker-get-container-tag
166 - shell: '{post_docker_build_script}'
167 # Provided all steps have already passed, push the docker image
169 - lf-provide-maven-settings-cleanup
176 name: '{project-name}-docker-verify-{stream}'
177 id: gerrit-docker-verify
178 # Job template for Docker verify jobs
180 # The purpose of this job template is to run a docker build, and potentially
181 # test validation of the docker image
183 <<: *lf_docker_common
184 # yamllint disable-line rule:key-duplicates
185 <<: *docker_verify_common
189 server-name: '{gerrit-server-name}'
190 trigger-on: '{obj:gerrit_verify_triggers}'
192 - project-compare-type: ANT
193 project-pattern: '{project}'
195 - branch-compare-type: ANT
196 branch-pattern: '**/{branch}'
199 name: '{project-name}-docker-verify-{stream}'
200 id: github-docker-verify
201 # Job template for Docker verify jobs
203 # The purpose of this job template is to run a docker build, and potentially
204 # test validation of the docker image
206 <<: *lf_docker_common
207 # yamllint disable-line rule:key-duplicates
208 <<: *docker_verify_common
211 - lf-infra-properties:
212 build-days-to-keep: '{build-days-to-keep}'
214 url: '{github-url}/{github-org}/{project}'
217 - lf-infra-github-scm:
218 url: '{git-clone-url}{github-org}/{project}'
219 refspec: '+refs/pull/*:refs/remotes/origin/pr/*'
221 submodule-recursive: '{submodule-recursive}'
222 submodule-timeout: '{submodule-timeout}'
223 submodule-disable: '{submodule-disable}'
224 choosing-strategy: default
225 jenkins-ssh-credential: '{jenkins-ssh-credential}'
228 - github-pull-request:
229 trigger-phrase: '^(recheck|reverify)$'
230 only-trigger-phrase: false
231 status-context: 'Docker Verify'
234 white-list-target-branches:
236 included-regions: '{obj:github_included_regions}'
243 name: '{project-name}-docker-merge-{stream}'
244 id: gerrit-docker-merge
245 # Job template for Docker merge jobs
247 # The purpose of this job template is to run a docker build, and potentially
248 # test validation of the docker image
250 <<: *lf_docker_common
251 # yamllint disable-line rule:key-duplicates
252 <<: *docker_merge_common
256 server-name: '{gerrit-server-name}'
257 trigger-on: '{obj:gerrit_merge_triggers}'
259 - project-compare-type: ANT
260 project-pattern: '{project}'
262 - branch-compare-type: ANT
263 branch-pattern: '**/{branch}'
266 name: '{project-name}-docker-merge-{stream}'
267 id: github-docker-merge
268 # Job template for Docker merge jobs
270 # The purpose of this job template is to run a docker build, and potentially
271 # test validation of the docker image
273 <<: *lf_docker_common
274 # yamllint disable-line rule:key-duplicates
275 <<: *docker_merge_common
278 - lf-infra-properties:
279 build-days-to-keep: '{build-days-to-keep}'
281 url: '{github-url}/{github-org}/{project}'
284 - lf-infra-github-scm:
285 url: '{git-clone-url}{github-org}/{project}'
287 branch: 'refs/heads/{branch}'
288 submodule-recursive: '{submodule-recursive}'
289 submodule-timeout: '{submodule-timeout}'
290 submodule-disable: '{submodule-disable}'
291 choosing-strategy: default
292 jenkins-ssh-credential: '{jenkins-ssh-credential}'
298 - github-pull-request:
299 trigger-phrase: '^remerge$'
300 only-trigger-phrase: true
301 status-context: 'Docker Merge'
306 white-list: '{obj:github_pr_whitelist}'
307 admin-list: '{obj:github_pr_admin_list}'
308 white-list-target-branches:
310 included-regions: '{obj:github_included_regions}'