kvmfornfv: Improve patch verification jobs
[releng.git] / jjb / kvmfornfv / kvmfornfv.yml
1 - project:
2     name: kvmfornfv
3
4     project: '{name}'
5
6     stream:
7         - master:
8             branch: '{stream}'
9             gs-pathname: ''
10             disabled: false
11         - brahmaputra:
12             branch: 'stable/{stream}'
13             gs-pathname: '/{stream}'
14             disabled: true
15
16 #####################################
17 # patch verification phases
18 #####################################
19     phase:
20         - 'build':
21             slave-label: 'opnfv-build-ubuntu'
22         - 'test':
23             slave-label: 'intel-pod1'
24 #####################################
25 # patch verification phases
26 #####################################
27     jobs:
28         - 'kvmfornfv-verify-{stream}'
29         - 'kvmfornfv-verify-{phase}-{stream}'
30         - 'kvmfornfv-merge-{stream}'
31 #####################################
32 # job templates
33 #####################################
34 - job-template:
35     name: 'kvmfornfv-verify-{stream}'
36
37     disabled: '{obj:disabled}'
38
39     concurrent: true
40
41     properties:
42         - throttle:
43             enabled: true
44             max-total: 3
45             option: 'project'
46
47     parameters:
48         - project-parameter:
49             project: '{project}'
50         - gerrit-parameter:
51             branch: '{branch}'
52         - 'opnfv-build-ubuntu-defaults'
53
54     scm:
55         - gerrit-trigger-scm:
56             credentials-id: '{ssh-credentials}'
57             refspec: '$GERRIT_REFSPEC'
58             choosing-strategy: 'gerrit'
59
60     triggers:
61         - gerrit:
62             trigger-on:
63                 - patchset-created-event:
64                     exclude-drafts: 'false'
65                     exclude-trivial-rebase: 'false'
66                     exclude-no-code-change: 'false'
67                 - draft-published-event
68                 - comment-added-contains-event:
69                     comment-contains-value: 'recheck'
70                 - comment-added-contains-event:
71                     comment-contains-value: 'reverify'
72             projects:
73               - project-compare-type: 'ANT'
74                 project-pattern: '{project}'
75                 branches:
76                   - branch-compare-type: 'ANT'
77                     branch-pattern: '**/{branch}'
78
79     builders:
80         - description-setter:
81             description: "Built on $NODE_NAME"
82         - multijob:
83             name: build
84             condition: SUCCESSFUL
85             projects:
86                 - name: 'kvmfornfv-verify-build-{stream}'
87                   current-parameters: false
88                   predefined-parameters: |
89                     GERRIT_BRANCH=$GERRIT_BRANCH
90                     GERRIT_REFSPEC=$GERRIT_REFSPEC
91                     GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER
92                   node-parameters: false
93                   kill-phase-on: FAILURE
94                   abort-all-job: true
95         - multijob:
96             name: test
97             condition: SUCCESSFUL
98             projects:
99                 - name: 'kvmfornfv-verify-test-{stream}'
100                   current-parameters: false
101                   predefined-parameters: |
102                     GERRIT_BRANCH=$GERRIT_BRANCH
103                     GERRIT_REFSPEC=$GERRIT_REFSPEC
104                     GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER
105                   node-parameters: false
106                   kill-phase-on: FAILURE
107                   abort-all-job: true
108
109 - job-template:
110     name: 'kvmfornfv-verify-{phase}-{stream}'
111
112     disabled: '{obj:disabled}'
113
114     concurrent: true
115
116     scm:
117         - gerrit-trigger-scm:
118             credentials-id: '{ssh-credentials}'
119             refspec: '$GERRIT_REFSPEC'
120             choosing-strategy: 'gerrit'
121
122     wrappers:
123         - ssh-agent-credentials:
124             users:
125                 - '{ssh-credentials}'
126         - timeout:
127             timeout: 360
128             fail: true
129     parameters:
130         - project-parameter:
131             project: '{project}'
132         - gerrit-parameter:
133             branch: '{branch}'
134         - '{slave-label}-defaults'
135
136     builders:
137         - description-setter:
138             description: "Built on $NODE_NAME"
139         - '{project}-verify-{phase}-macro'
140
141 - job-template:
142     name: 'kvmfornfv-merge-{stream}'
143
144     parameters:
145         - project-parameter:
146             project: '{project}'
147         - gerrit-parameter:
148             branch: '{branch}'
149         - 'opnfv-build-ubuntu-defaults'
150         - 'kvmfornfv-defaults':
151             gs-pathname: '{gs-pathname}'
152
153     scm:
154         - gerrit-trigger-scm:
155             credentials-id: '{ssh-credentials}'
156             refspec: ''
157             choosing-strategy: 'default'
158
159     triggers:
160         - gerrit:
161             trigger-on:
162                 - change-merged-event
163                 - comment-added-contains-event:
164                     comment-contains-value: 'remerge'
165             projects:
166               - project-compare-type: 'ANT'
167                 project-pattern: '{project}'
168                 branches:
169                     - branch-compare-type: 'ANT'
170                       branch-pattern: '**/{branch}'
171
172     builders:
173         - shell:
174             !include-raw: ./kvmfornfv-build.sh
175 #####################################
176 # builder macros
177 #####################################
178 - builder:
179     name: 'kvmfornfv-verify-build-macro'
180     builders:
181         - shell:
182             !include-raw: ./kvmfornfv-build.sh
183         - shell:
184             !include-raw: ./kvmfornfv-upload-artifact.sh
185 - builder:
186     name: 'kvmfornfv-verify-test-macro'
187     builders:
188         - shell:
189             !include-raw: ./kvmfornfv-download-artifact.sh
190         - shell:
191             !include-raw: ./kvmfornfv-test.sh
192 #####################################
193 # parameter macros
194 #####################################
195 - parameter:
196     name: 'kvmfornfv-defaults'
197     parameters:
198         - string:
199             name: GS_URL
200             default: artifacts.opnfv.org/$PROJECT{gs-pathname}
201             description: "URL to Google Storage."