Merge "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           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             - master
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             swinslow@linuxfoundation.org
87
88
89 - job-template:
90     name: 'check-status-of-slaves'
91
92     disabled: false
93     concurrent: true
94
95     parameters:
96       - node:
97           name: SLAVE_NAME
98           description: 'script lives on master node'
99           default-slaves:
100             - lf-build1
101           allowed-multiselect: false
102           ignore-offline-nodes: true
103       - project-parameter:
104           project: releng
105           branch: master
106
107     scm:
108       - git-scm
109
110     triggers:
111       - timed: '@midnight'
112
113     builders:
114       - shell: |
115           cd $WORKSPACE/utils/
116           bash slave-monitor-0.1.sh
117
118 - job-template:
119     name: 'ansible-build-server'
120
121     project-type: freestyle
122
123     disabled: false
124     concurrent: true
125
126     parameters:
127       - node:
128           name: SLAVE_NAME
129           description: Build Servers
130           default-slaves:
131             - lf-build1
132             - lf-build2
133             - ericsson-build3
134             - ericsson-build4
135           allowed-multiselect: true
136           ignore-offline-nodes: true
137       - project-parameter:
138           project: releng
139           branch: master
140
141     scm:
142       - git-scm
143
144     triggers:
145       - timed: '@midnight'
146
147     builders:
148       - description-setter:
149           description: '$NODE_NAME'
150       - install-ansible
151       - run-ansible-build-server-playbook
152
153
154 - builder:
155     name: install-ansible
156     builders:
157       - shell: |
158           # Install ansible here
159           if [ -f /etc/centos-release ] \
160           || [ -f /etc/redhat-release ] \
161           || [ -f /etc/system-release ]; then
162           sudo yum -y install ansible
163           fi
164           if [ -f /etc/debian_version ] \
165           || grep -qi ubuntu /etc/lsb-release \
166           || grep -qi ubuntu /etc/os-release; then
167           sudo apt-get -y install ansible
168           fi
169
170 - builder:
171     name: run-ansible-build-server-playbook
172     builders:
173       - shell: |
174           # run playbook
175           sudo ansible-playbook -i \
176           $WORKSPACE/utils/build-server-ansible/inventory.ini \
177           $WORKSPACE/utils/build-server-ansible/main.yml
178
179
180 - job-template:
181     name: 'generate-artifacts-index-pages'
182
183     project-type: freestyle
184
185     disabled: false
186
187     concurrent: false
188
189     parameters:
190       - node:
191           name: SLAVE_NAME
192           description: Build Servers
193           default-slaves:
194             - lf-build2
195       - project-parameter:
196           project: releng
197           branch: master
198
199     scm:
200       - git-scm
201
202     triggers:
203       - timed: '@hourly'
204
205     builders:
206       - generate-artifact-html
207
208
209 - builder:
210     name: generate-artifact-html
211     builders:
212       - shell: |
213           cd $WORKSPACE/utils/
214           ./artifacts.opnfv.org.sh