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