[arm-build] prune-docker-images on all builders
[releng.git] / jjb / releng / opnfv-utils.yml
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
12 ########################
13 # job templates
14 ########################
15 - job-template:
16     name: 'prune-docker-images'
17
18     disabled: false
19
20     concurrent: true
21
22     parameters:
23       - node:
24           name: SLAVE_NAME
25           description: Slaves to prune docker images
26           default-slaves:
27             - arm-build3
28             - arm-build4
29             - arm-build5
30             - arm-build6
31             - ericsson-build3
32             - ericsson-build4
33             - lf-build2
34           allowed-multiselect: true
35           ignore-offline-nodes: true
36
37     builders:
38       - description-setter:
39           description: "Built on $NODE_NAME"
40       # yamllint disable rule:line-length
41       - shell: |
42           #!/bin/bash
43           (docker ps -q; docker ps -aq) | sort | uniq -u | xargs --no-run-if-empty docker rm
44           docker images -f dangling=true -q | xargs --no-run-if-empty docker rmi
45
46
47     # yamllint enable rule:line-length
48     triggers:
49       - timed: '@midnight'
50
51 - job-template:
52     name: 'archive-repositories'
53
54     disabled: false
55
56     concurrent: true
57
58     parameters:
59       - node:
60           name: SLAVE_NAME
61           description: Where to create the archive
62           default-slaves:
63             - master
64           allowed-multiselect: false
65           ignore-offline-nodes: true
66
67     triggers:
68       - timed: '@monthly'
69
70     builders:
71       - shell:
72           !include-raw-escape: opnfv-repo-archiver.sh
73
74     publishers:
75       - email-ext:
76           content-type: 'text'
77           failure: false
78           always: true
79           body:
80             ${{FILE,path="archive-link.txt"}}
81           reply-to: >
82             helpdesk@opnfv.org
83           recipients: >
84             swinslow@linuxfoundation.org
85
86
87 - job-template:
88     name: 'check-status-of-slaves'
89
90     disabled: false
91
92     concurrent: true
93
94     parameters:
95       - node:
96           name: SLAVE_NAME
97           description: 'script lives on master node'
98           default-slaves:
99             - master
100           allowed-multiselect: false
101           ignore-offline-nodes: true
102
103     triggers:
104       - timed: '@midnight'
105
106     builders:
107       - shell: |
108           cd /opt/jenkins-ci/slavemonitor
109           bash slave-monitor-0.1.sh | sort
110
111 - job-template:
112     name: 'ansible-build-server'
113
114     project-type: freestyle
115
116     disabled: false
117     concurrent: true
118
119     parameters:
120       - label:
121           name: SLAVE_LABEL
122           description: 'Slave label on Jenkins'
123           default: 'test-ansible-build'
124           allowed-multiselect: true
125           ignore-offline-nodes: true
126       - project-parameter:
127           project: releng
128           branch: master
129
130     scm:
131       - git-scm
132
133     triggers:
134       - timed: '@midnight'
135
136     builders:
137       - install-ansible
138       - run-ansible-build-server-playbook
139
140
141 - builder:
142     name: install-ansible
143     builders:
144       - shell: |
145           # Install ansible here
146           if [ -f /etc/centos-release ] \
147           || [ -f /etc/redhat-release ] \
148           || [ -f /etc/system-release ]; then
149           sudo yum install ansible
150           fi
151           if [ -f /etc/debian_version ] \
152           || grep -qi ubuntu /etc/lsb-release \
153           || grep -qi ubuntu /etc/os-release; then
154           sudo apt-get install ansible
155           fi
156
157 - builder:
158     name: run-ansible-build-server-playbook
159     builders:
160       - shell: |
161           # run playbook
162           sudo ansible-playbook -C -D -i \
163           $WORKSPACE/utils/build-server-ansible/inventory.ini \
164           $WORKSPACE/utils/build-server-ansible/main.yml