Add newly minted lf-build3
[releng.git] / jjb / releng / opnfv-utils.yaml
1 ---
2 - project:
3
4     name: opnfv-utils
5
6     jobs:
7       - 'prune-docker-images'
8       - 'archive-repositories'
9       - 'check-status-of-slaves'
10       - 'ansible-build-server'
11       - 'generate-artifacts-index-pages'
12
13 ########################
14 # job templates
15 ########################
16 - job-template:
17     name: 'prune-docker-images'
18
19     disabled: false
20
21     concurrent: true
22
23     parameters:
24       - node:
25           name: SLAVE_NAME
26           description: Slaves to prune docker images
27           default-slaves:
28             - arm-build3
29             - arm-build4
30             - arm-build5
31             - arm-build6
32             - ericsson-build3
33             - ericsson-build4
34             - lf-build2
35           allowed-multiselect: true
36           ignore-offline-nodes: true
37
38     builders:
39       - description-setter:
40           description: "Built on $NODE_NAME"
41       # yamllint disable rule:line-length
42       - shell: |
43           #!/bin/bash
44           sudo systemctl restart docker
45           (docker ps -q; docker ps -aq) | sort | uniq -u | xargs --no-run-if-empty docker rm
46           docker images -f dangling=true -q | xargs --no-run-if-empty docker rmi
47
48
49     # yamllint enable rule:line-length
50     triggers:
51       - timed: '@midnight'
52
53 - job-template:
54     name: 'archive-repositories'
55
56     disabled: false
57
58     concurrent: true
59
60     parameters:
61       - node:
62           name: SLAVE_NAME
63           description: Where to create the archive
64           default-slaves:
65             - lf-build2
66           allowed-multiselect: false
67           ignore-offline-nodes: true
68
69     triggers:
70       - timed: '@monthly'
71
72     builders:
73       - shell:
74           !include-raw-escape: opnfv-repo-archiver.sh
75
76     publishers:
77       - email-ext:
78           content-type: 'text'
79           failure: false
80           always: true
81           body:
82             ${{FILE,path="archive-link.txt"}}
83           reply-to: >
84             helpdesk@opnfv.org
85           recipients: >
86             tbramwell@linuxfoundation.org
87             swinslow@linuxfoundation.org
88
89
90 - job-template:
91     name: 'check-status-of-slaves'
92
93     disabled: false
94     concurrent: true
95
96     parameters:
97       - node:
98           name: SLAVE_NAME
99           description: 'script lives on master node'
100           default-slaves:
101             - lf-build1
102           allowed-multiselect: false
103           ignore-offline-nodes: true
104       - project-parameter:
105           project: releng
106           branch: master
107
108     scm:
109       - git-scm
110
111     triggers:
112       - timed: '@midnight'
113
114     builders:
115       - shell: |
116           cd $WORKSPACE/utils/
117           bash slave-monitor-0.1.sh
118
119 - job-template:
120     name: 'ansible-build-server'
121
122     project-type: freestyle
123
124     disabled: false
125     concurrent: true
126
127     parameters:
128       - node:
129           name: SLAVE_NAME
130           description: Build Servers
131           default-slaves:
132             - lf-build1
133             - lf-build2
134             - lf-build3
135             - ericsson-build3
136             - ericsson-build4
137           allowed-multiselect: true
138           ignore-offline-nodes: true
139       - project-parameter:
140           project: releng
141           branch: master
142
143     scm:
144       - git-scm
145
146     triggers:
147       - timed: '@midnight'
148
149     builders:
150       - description-setter:
151           description: '$NODE_NAME'
152       - install-ansible
153       - run-ansible-build-server-playbook
154
155
156 - builder:
157     name: install-ansible
158     builders:
159       - shell: |
160           # Install ansible here
161           if [ -f /etc/centos-release ] \
162           || [ -f /etc/redhat-release ] \
163           || [ -f /etc/system-release ]; then
164           sudo yum -y install ansible
165           fi
166           if [ -f /etc/debian_version ] \
167           || grep -qi ubuntu /etc/lsb-release \
168           || grep -qi ubuntu /etc/os-release; then
169           sudo apt-get -y install ansible
170           fi
171
172 - builder:
173     name: run-ansible-build-server-playbook
174     builders:
175       - shell: |
176           # run playbook
177           sudo ansible-playbook -i \
178           $WORKSPACE/utils/build-server-ansible/inventory.ini \
179           $WORKSPACE/utils/build-server-ansible/main.yml
180
181
182 - job-template:
183     name: 'generate-artifacts-index-pages'
184
185     project-type: freestyle
186
187     disabled: false
188
189     concurrent: false
190
191     parameters:
192       - node:
193           name: SLAVE_NAME
194           description: Build Servers
195           default-slaves:
196             - lf-build2
197       - project-parameter:
198           project: releng
199           branch: master
200
201     scm:
202       - git-scm
203
204     triggers:
205       - timed: '@hourly'
206
207     builders:
208       - generate-artifact-html
209
210
211 - builder:
212     name: generate-artifact-html
213     builders:
214       - shell: |
215           cd $WORKSPACE/utils/
216           ./artifacts.opnfv.org.sh