e7a5b63952211851cb18d38b54c42cb343a965fb
[ci-management.git] / jjb / validation / validation-docker.yaml
1 - project:
2
3     name: validation-docker
4     project: validation
5     mvn-settings: validation-settings
6     stream:
7       - master:
8           branch: '{stream}'
9           disabled: false
10
11     arch_tag:
12       - 'amd64':
13           slave_label: 'ubuntu1604-docker-8c-8g'
14       - 'arm64':
15           slave_label: 'aarch64_dev'
16
17     # settings for jobs run in multijob phases
18     docker-build-job-settings: &docker-build-job-settings
19       current-parameters: false
20       git-revision: true
21       node-parameters: false
22       predefined-parameters: |
23         GERRIT_REFNAME=$GERRIT_REFNAME
24       kill-phase-on: FAILURE
25       abort-all-jobs: false
26
27     jobs:
28       - "validation-{stream}-docker"
29       - "validation-docker-build-{arch_tag}-{stream}"
30       - "validation-docker-manifest-{stream}"
31
32 ########################
33 # job templates
34 ########################
35 - job-template:
36     name: 'validation-{stream}-docker'
37     project-type: multijob
38     disabled: '{obj:disabled}'
39     node: 'centos7-builder-2c-1g'
40
41     parameters:
42       - validation-job-parameters:
43           project: '{project}'
44           branch: '{branch}'
45           stream: '{stream}'
46
47     properties:
48       - throttle:
49           max-per-node: 1
50           option: 'project'
51       - build-blocker:
52           use-build-blocker: true
53           blocking-jobs:
54             - 'validation-docker-.*'
55           blocking-level: 'NODE'
56     scm:
57       - lf-infra-gerrit-scm:
58           jenkins-ssh-credential: '{jenkins-ssh-credential}'
59           git-url: '{git-url}/{project}.git'
60           refspec: ''
61           branch: '{branch}'
62           submodule-recursive: false
63           submodule-timeout: '{submodule-timeout}'
64           choosing-strategy: default
65
66     triggers:
67       # Build nigtly at 12:10 AM
68       - timed: '10 0 * * *'
69
70     builders:
71       - multijob:
72           name: 'build validation images'
73           execution-type: PARALLEL
74           projects:
75             - name: 'validation-docker-build-amd64-{stream}'
76               <<: *docker-build-job-settings
77             - name: 'validation-docker-build-arm64-{stream}'
78               <<: *docker-build-job-settings
79       - multijob:
80           name: 'publish validation manifests'
81           condition: SUCCESSFUL
82           execution-type: PARALLEL
83           projects:
84             - name: 'validation-docker-manifest-{stream}'
85               <<: *docker-build-job-settings
86
87     publishers:
88       - email:
89           recipients: 'cristina.pauna@enea.com'
90
91 - job-template:
92     name: 'validation-docker-build-{arch_tag}-{stream}'
93     disabled: '{obj:disabled}'
94     node: '{slave_label}'
95
96     parameters:
97       - validation-job-parameters:
98           project: '{project}'
99           branch: '{branch}'
100           stream: '{stream}'
101           arch_tag: '{arch_tag}'
102
103     properties:
104       - build-blocker:
105           use-build-blocker: true
106           blocking-jobs:
107             - 'validation-docker-build-.*'
108           blocking-level: 'NODE'
109     scm:
110      - lf-infra-gerrit-scm:
111           jenkins-ssh-credential: '{jenkins-ssh-credential}'
112           git-url: '{git-url}/{project}.git'
113           refspec: ''
114           branch: '{branch}'
115           submodule-recursive: false
116           submodule-timeout: '{submodule-timeout}'
117           choosing-strategy: default
118
119     builders:
120       - lf-infra-docker-login:
121           global-settings-file: global-settings
122           settings-file: '{mvn-settings}'
123       - shell: |
124           #!/bin/bash -ex
125           make -C docker push-all
126
127 - job-template:
128     name: 'validation-docker-manifest-{stream}'
129     node: 'ubuntu1604-docker-8c-8g'
130
131     parameters:
132       - validation-job-parameters:
133           project: '{project}'
134           branch: '{branch}'
135           stream: '{stream}'
136
137     disabled: '{obj:disabled}'
138
139     scm:
140      - lf-infra-gerrit-scm:
141           jenkins-ssh-credential: '{jenkins-ssh-credential}'
142           git-url: '{git-url}/{project}.git'
143           refspec: ''
144           branch: '{branch}'
145           submodule-recursive: false
146           submodule-timeout: '{submodule-timeout}'
147           choosing-strategy: default
148
149     builders:
150       - lf-infra-docker-login:
151           global-settings-file: global-settings
152           settings-file: '{mvn-settings}'
153       - shell: |
154           #!/bin/bash -ex
155           make -C docker/*/. .push_manifest
156
157 # parameter macro
158 - parameter:
159     name: validation-job-parameters
160     parameters:
161       - lf-infra-parameters:
162           project: '{project}'
163           stream: '{stream}'
164           branch: '{branch}'