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