3eef018500cff639ef6d18ede2e94026372fe3dd
[releng.git] / jjb / doctor / doctor.yaml
1 ---
2 - project:
3     name: doctor
4
5     project: '{name}'
6     project-name: '{name}'
7     project-pattern: '{project}'
8
9     stream:
10       - master:
11           branch: '{stream}'
12           gs-pathname: ''
13           disabled: false
14       - gambia: &gambia
15           branch: 'stable/{stream}'
16           gs-pathname: '/{stream}'
17           disabled: false
18       - fraser:
19           branch: 'stable/{stream}'
20           gs-pathname: '/{stream}'
21           disabled: false
22
23     installer:
24       - 'apex'
25       - 'fuel'
26       - 'daisy'
27
28     arch:
29       - 'x86_64'
30       - 'aarch64'
31
32     inspector:
33       - 'sample'
34       - 'congress'
35
36     exclude:
37       - installer: 'apex'
38         arch: 'aarch64'
39       - installer: 'daisy'
40         arch: 'aarch64'
41
42     jobs:
43       - 'doctor-verify-{stream}'
44       - 'doctor-verify-fault_management-{installer}-{inspector}-{arch}-{stream}'
45       - 'doctor-verify-maintenance-{installer}-{inspector}-{arch}-{stream}'
46       - 'doctor-verify-all-{installer}-{inspector}-{arch}-{stream}'
47
48 - job-template:
49     name: 'doctor-verify-{stream}'
50     disabled: '{obj:disabled}'
51     project-type: 'multijob'
52     parameters:
53       - project-parameter:
54           project: '{project}'
55           branch: '{branch}'
56       - 'doctor-slave-parameter'
57     scm:
58       - git-scm-gerrit
59     triggers:
60       - 'doctor-verify':
61           project: '{project}'
62           branch: '{branch}'
63           files: 'doctor_tests/**'
64
65     builders:
66       - shell: |
67          #!/bin/bash
68          # we do nothing here as the main stuff will be done
69          # in phase jobs
70          echo "Triggering phase jobs!"
71       - multijob:
72           name: 'doctor-verify-sample'
73           execution-type: PARALLEL
74           projects:
75             - name: 'doctor-verify-fault_management-daisy-sample-x86_64-{stream}'
76               predefined-parameters: |
77                 PROJECT=$PROJECT
78                 GERRIT_BRANCH=$GERRIT_BRANCH
79                 GERRIT_REFSPEC=$GERRIT_REFSPEC
80                 GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER
81                 GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE
82               kill-phase-on: FAILURE
83               git-revision: true
84             - name: 'doctor-verify-all-apex-sample-x86_64-{stream}'
85               predefined-parameters: |
86                 PROJECT=$PROJECT
87                 GERRIT_BRANCH=$GERRIT_BRANCH
88                 GERRIT_REFSPEC=$GERRIT_REFSPEC
89                 GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER
90                 GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE
91               kill-phase-on: FAILURE
92               git-revision: true
93             - name: 'doctor-verify-fault_management-fuel-sample-x86_64-{stream}'
94               predefined-parameters: |
95                 PROJECT=$PROJECT
96                 GERRIT_BRANCH=$GERRIT_BRANCH
97                 GERRIT_REFSPEC=$GERRIT_REFSPEC
98                 GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER
99                 GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE
100               kill-phase-on: FAILURE
101               git-revision: true
102       - multijob:
103           name: 'doctor-verify-congress'
104           execution-type: PARALLEL
105           projects:
106             - name: 'doctor-verify-fault_management-apex-congress-x86_64-{stream}'
107               predefined-parameters: |
108                 PROJECT=$PROJECT
109                 GERRIT_BRANCH=$GERRIT_BRANCH
110                 GERRIT_REFSPEC=$GERRIT_REFSPEC
111                 GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER
112                 GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE
113               kill-phase-on: FAILURE
114               git-revision: true
115
116 - job-template:
117     name: 'doctor-verify-fault_management-{installer}-{inspector}-{arch}-{stream}'
118     disabled: '{obj:disabled}'
119     node: 'doctor-{installer}-{arch}'
120     wrappers:
121       - ssh-agent-wrapper
122       - build-timeout:
123           timeout: 30
124     parameters:
125       - project-parameter:
126           project: '{project}'
127           branch: '{branch}'
128       - '{installer}-defaults'
129       - 'doctor-slave-parameter'
130       - 'doctor-parameter':
131           inspector: '{inspector}'
132           test_case: 'fault_management'
133     scm:
134       - git-scm-gerrit
135     builders:
136       - 'doctor-verify-installer-inspector-builders-macro'
137     publishers:
138       - 'doctor-verify-publishers-macro'
139
140 - job-template:
141     name: 'doctor-verify-maintenance-{installer}-{inspector}-{arch}-{stream}'
142     disabled: '{obj:disabled}'
143     node: 'nokia-pod1'
144     wrappers:
145       - ssh-agent-wrapper
146       - build-timeout:
147           timeout: 40
148     parameters:
149       - project-parameter:
150           project: '{project}'
151           branch: '{branch}'
152       - '{installer}-defaults'
153       - 'doctor-slave-parameter'
154       - 'doctor-parameter':
155           inspector: '{inspector}'
156           test_case: 'maintenance'
157     scm:
158       - git-scm-gerrit
159     builders:
160       - 'doctor-verify-installer-inspector-builders-macro'
161     publishers:
162       - 'doctor-verify-publishers-macro'
163
164 - job-template:
165     name: 'doctor-verify-all-{installer}-{inspector}-{arch}-{stream}'
166     disabled: '{obj:disabled}'
167     node: 'doctor-{installer}-{arch}'
168     wrappers:
169       - ssh-agent-wrapper
170       - build-timeout:
171           timeout: 50
172     parameters:
173       - project-parameter:
174           project: '{project}'
175           branch: '{branch}'
176       - '{installer}-defaults'
177       - 'doctor-slave-parameter'
178       - 'doctor-parameter':
179           inspector: '{inspector}'
180           test_case: 'all'
181     scm:
182       - git-scm-gerrit
183     builders:
184       - 'doctor-verify-installer-inspector-builders-macro'
185     publishers:
186       - 'doctor-verify-publishers-macro'
187
188
189 # -------------------------------
190 # parameter macros
191 # -------------------------------
192 - parameter:
193     name: 'doctor-parameter'
194     parameters:
195       - string:
196           name: INSPECTOR_TYPE
197           default: '{inspector}'
198           description: 'inspector component'
199       - string:
200           name: TEST_CASE
201           default: '{test_case}'
202           description: 'test case: all, fault_management or maintenance'
203
204
205 # -------------------------------
206 # builder macros
207 # -------------------------------
208
209 - builder:
210     name: 'doctor-verify-installer-inspector-builders-macro'
211     builders:
212       # yamllint disable rule:indentation
213       - shell:
214           !include-raw:
215               - ./doctor-env-presetup.sh
216               - ../../utils/fetch_os_creds.sh
217       - shell: |
218           # prepare the env for test
219           source $HOME/opnfv-openrc.sh
220           if [ -f $HOME/os_cacert ]; then
221               export OS_CACERT=$HOME/os_cacert
222           fi
223           source $HOME/opnfv-installer.sh
224
225           # run tox to trigger the test
226           # As Jenkins user, it has no permission to send ICMP package
227           sudo -E tox -e py34
228
229
230 # -------------------------------
231 # publisher macros
232 # -------------------------------
233 - publisher:
234     name: 'doctor-verify-publishers-macro'
235     publishers:
236       - archive:
237           artifacts: 'doctor_tests/*.log'
238       - email-jenkins-admins-on-failure
239       - workspace-cleanup
240
241 #####################################
242 # trigger macros
243 #####################################
244 - trigger:
245     name: 'doctor-verify'
246     triggers:
247       - gerrit:
248           server-name: 'gerrit.opnfv.org'
249           trigger-on:
250             - patchset-created-event:
251                 exclude-drafts: 'false'
252                 exclude-trivial-rebase: 'false'
253                 exclude-no-code-change: 'false'
254             - draft-published-event
255             - comment-added-contains-event:
256                 comment-contains-value: 'recheck'
257             - comment-added-contains-event:
258                 comment-contains-value: 'reverify'
259           projects:
260             - project-compare-type: 'ANT'
261               project-pattern: '{project}'
262               branches:
263                 - branch-compare-type: 'ANT'
264                   branch-pattern: '**/{branch}'
265               file-paths:
266                 - compare-type: ANT
267                   pattern: '{files}'
268           skip-vote:
269             successful: true
270             failed: true
271             unstable: true
272             notbuilt: true