Fuel: Enable build blocker to make sure jobs don't start on same POD
[releng.git] / jjb / fuel / fuel-ci-jobs.yml
1 - project:
2
3     name: 'fuel'
4
5     project: '{name}'
6
7     installer: '{name}'
8
9 #--------------------------------
10 # BRANCH ANCHORS
11 #--------------------------------
12     master: &master
13         stream: master
14         branch: '{stream}'
15         gs-pathname: ''
16     brahmaputra: &brahmaputra
17         stream: brahmaputra
18         branch: 'stable/{stream}'
19         gs-pathname: '/{stream}'
20 #--------------------------------
21 # POD, INSTALLER, AND BRANCH MAPPING
22 #--------------------------------
23 #        brahmaputra
24 #--------------------------------
25     pod:
26         - opnfv-jump-2:
27             <<: *brahmaputra
28 #--------------------------------
29 #        master
30 #--------------------------------
31         - ericsson-pod1:
32             <<: *master
33         - ericsson-pod2:
34             <<: *master
35 #--------------------------------
36
37 # please check the triggers before enabling any of the controllers!!!
38     sdn-controller:
39         - 'nosdn'
40
41     jobs:
42         - 'fuel-{sdn-controller}-{pod}-daily-{stream}'
43         - 'fuel-deploy-{pod}-daily-{stream}'
44
45 ########################
46 # job templates - old type of defining the scenario
47 ########################
48 - job-template:
49     name: 'fuel-{sdn-controller}-{pod}-daily-{stream}'
50
51     project-type: multijob
52
53     concurrent: false
54
55     properties:
56         - throttle:
57             enabled: true
58             max-total: 1
59             max-per-node: 1
60         - build-blocker:
61             use-build-blocker: true
62             blocking-jobs:
63                 - 'fuel-deploy-{pod}-daily-{stream}-.*'
64                 - 'functest-fuel-{pod}-daily-{stream}'
65                 - 'yardstick-fuel-{pod}-daily-{stream}'
66
67     wrappers:
68         - build-name:
69             name: '$BUILD_NUMBER - SDN: $SDN_CONTROLLER Scenario: $DEPLOY_SCENARIO'
70
71     triggers:
72         - 'fuel-{pod}-{sdn-controller}-trigger'
73
74     parameters:
75         - project-parameter:
76             project: '{project}'
77         - '{pod}-defaults'
78         - '{installer}-defaults'
79         - string:
80             name: SDN_CONTROLLER
81             default: '{sdn-controller}'
82         - string:
83             name: DEPLOY_SCENARIO
84             default: 'none'
85         - fuel-ci-parameter:
86             gs-pathname: '{gs-pathname}'
87
88     scm:
89         - git-scm:
90             credentials-id: '{ssh-credentials}'
91             refspec: ''
92             branch: '{branch}'
93
94     builders:
95         - multijob:
96             name: deploy
97             condition: SUCCESSFUL
98             projects:
99                 - name: 'fuel-deploy-{pod}-daily-{stream}'
100                   current-parameters: true
101                   git-revision: true
102                   kill-phase-on: FAILURE
103         - multijob:
104             name: functest
105             condition: COMPLETED
106             projects:
107                 - name: 'functest-fuel-{pod}-daily-{stream}'
108                   current-parameters: true
109                   kill-phase-on: NEVER
110         - multijob:
111             name: yardstick
112             condition: COMPLETED
113             projects:
114                 - name: 'yardstick-fuel-{pod}-daily-{stream}'
115                   current-parameters: true
116                   kill-phase-on: NEVER
117
118 - job-template:
119     name: 'fuel-deploy-{pod}-daily-{stream}'
120
121     concurrent: false
122
123     properties:
124         - throttle:
125             enabled: true
126             max-total: 1
127             max-per-node: 1
128         - build-blocker:
129             use-build-blocker: true
130             blocking-jobs:
131                 - 'fuel-deploy-{pod}-daily-{stream}-.*'
132                 - 'functest-fuel-{pod}-daily-{stream}'
133                 - 'yardstick-fuel-{pod}-daily-{stream}'
134
135     parameters:
136         - project-parameter:
137             project: '{project}'
138         - '{pod}-defaults'
139         - '{installer}-defaults'
140         - fuel-ci-parameter:
141             gs-pathname: '{gs-pathname}'
142
143     scm:
144         - git-scm:
145             credentials-id: '{ssh-credentials}'
146             refspec: ''
147             branch: '{branch}'
148
149     wrappers:
150         - build-name:
151             name: '$BUILD_NUMBER - Scenario: $DEPLOY_SCENARIO'
152
153     builders:
154         - 'builder-{stream}'
155
156     publishers:
157         - email:
158             recipients: jonas.bjurel@ericsson.com stefan.k.berg@ericsson.com
159 ########################
160 # parameter macros
161 ########################
162 - parameter:
163     name: fuel-ci-parameter
164     parameters:
165         - string:
166             name: BUILD_DIRECTORY
167             default: $WORKSPACE/build_output
168             description: "Directory where the build artifact will be located upon the completion of the build."
169         - string:
170             name: CACHE_DIRECTORY
171             default: $HOME/opnfv/cache/$INSTALLER_TYPE
172             description: "Directory where the cache to be used during the build is located."
173         - string:
174             name: GS_URL
175             default: artifacts.opnfv.org/$PROJECT{gs-pathname}
176             description: "URL to Google Storage."
177 ########################
178 # builder macros
179 ########################
180 - builder:
181     name: 'builder-master'
182     builders:
183         - shell:
184             !include-raw: ./fuel-download-artifact.sh
185         - shell:
186             !include-raw: ./fuel-deploy-master.sh
187 - builder:
188     name: 'builder-brahmaputra'
189     builders:
190         - shell:
191             !include-raw: ./fuel-download-artifact.sh
192         - shell:
193             !include-raw: ./fuel-deploy.sh
194 ########################
195 # trigger macros
196 ########################
197 # trigger for opnfv-jump-2 is set to run 1 hour ahead of others
198 # to prevent doing unnecessary builds
199 - trigger:
200     name: 'fuel-opnfv-jump-2-nosdn-trigger'
201     triggers:
202         - timed: '0 2 * * *'
203 - trigger:
204     name: 'fuel-ericsson-pod1-nosdn-trigger'
205     triggers:
206         - timed: '0 2 * * *'
207 - trigger:
208     name: 'fuel-ericsson-pod2-nosdn-trigger'
209     triggers:
210         - timed: ''