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