Prune Docker images on lf-build5/6 to save space
[releng.git] / jjb / releng / opnfv-utils.yaml
1 ---
2 - project:
3
4     name: opnfv-utils
5
6     jobs:
7       - 'prune-docker-images'
8       - 'check-status-of-slaves'
9       - 'ansible-build-server'
10       - 'generate-artifacts-index-pages'
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             - lf-build2
28             - lf-build5
29             - lf-build6
30           allowed-multiselect: true
31           ignore-offline-nodes: true
32
33     builders:
34       - description-setter:
35           description: "Built on $NODE_NAME"
36       # yamllint disable rule:line-length
37       - shell: |
38           #!/bin/bash
39           sudo systemctl restart docker
40           (docker ps -q; docker ps -aq) | sort | uniq -u | xargs --no-run-if-empty docker rm
41           docker images -f dangling=true -q | xargs --no-run-if-empty docker rmi
42
43
44     # yamllint enable rule:line-length
45     triggers:
46       - timed: '@midnight'
47
48 - job-template:
49     name: 'check-status-of-slaves'
50
51     disabled: false
52     concurrent: true
53
54     parameters:
55       - node:
56           name: SLAVE_NAME
57           description: 'script lives on master node'
58           default-slaves:
59             - lf-build2
60           allowed-multiselect: false
61           ignore-offline-nodes: true
62       - project-parameter:
63           project: releng
64           branch: master
65
66     scm:
67       - git-scm
68
69     triggers:
70       - timed: '@midnight'
71
72     builders:
73       - shell: |
74           cd $WORKSPACE/utils/
75           bash slave-monitor-0.1.sh
76
77 - job-template:
78     name: 'ansible-build-server'
79
80     project-type: freestyle
81
82     disabled: false
83     concurrent: true
84
85     parameters:
86       - node:
87           name: SLAVE_NAME
88           description: Build Servers
89           default-slaves:
90             - lf-build1
91             - lf-build2
92             - lf-build3
93             - ericsson-build4
94           allowed-multiselect: true
95           ignore-offline-nodes: true
96       - project-parameter:
97           project: releng
98           branch: master
99
100     scm:
101       - git-scm
102
103     triggers:
104       - timed: '@midnight'
105
106     builders:
107       - description-setter:
108           description: '$NODE_NAME'
109       - install-ansible
110       - run-ansible-build-server-playbook
111
112
113 - builder:
114     name: install-ansible
115     builders:
116       - shell: |
117           # Install ansible here
118           if [ -f /etc/centos-release ] \
119           || [ -f /etc/redhat-release ] \
120           || [ -f /etc/system-release ]; then
121           sudo yum -y install ansible
122           fi
123           if [ -f /etc/debian_version ] \
124           || grep -qi ubuntu /etc/lsb-release \
125           || grep -qi ubuntu /etc/os-release; then
126           sudo apt-get -y install ansible
127           fi
128
129
130 - builder:
131     name: run-ansible-build-server-playbook
132     builders:
133       - shell: |
134           # run playbook
135           sudo ansible-playbook -i \
136           $WORKSPACE/utils/build-server-ansible/inventory.ini \
137           $WORKSPACE/utils/build-server-ansible/main.yml
138
139
140 - job-template:
141     name: 'generate-artifacts-index-pages'
142
143     project-type: freestyle
144
145     disabled: false
146
147     concurrent: false
148
149     parameters:
150       - node:
151           name: SLAVE_NAME
152           description: Build Servers
153           default-slaves:
154             - lf-build2
155       - project-parameter:
156           project: releng
157           branch: master
158
159     scm:
160       - git-scm
161
162     triggers:
163       - timed: '@hourly'
164
165     builders:
166       - generate-artifact-html
167
168
169 - builder:
170     name: generate-artifact-html
171     builders:
172       - shell: |
173           cd $WORKSPACE/utils/
174           ./artifacts.opnfv.org.sh