50e4741a6cde599557b25788f22b1864fe79eaa1
[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           allowed-multiselect: true
94           ignore-offline-nodes: true
95       - project-parameter:
96           project: releng
97           branch: master
98
99     scm:
100       - git-scm
101
102     triggers:
103       - timed: '@midnight'
104
105     builders:
106       - description-setter:
107           description: '$NODE_NAME'
108       - install-ansible
109       - run-ansible-build-server-playbook
110
111
112 - builder:
113     name: install-ansible
114     builders:
115       - shell: |
116           # Install ansible here
117           if [ -f /etc/centos-release ] \
118           || [ -f /etc/redhat-release ] \
119           || [ -f /etc/system-release ]; then
120           sudo yum -y install ansible
121           fi
122           if [ -f /etc/debian_version ] \
123           || grep -qi ubuntu /etc/lsb-release \
124           || grep -qi ubuntu /etc/os-release; then
125           sudo apt-get -y install ansible
126           fi
127
128
129 - builder:
130     name: run-ansible-build-server-playbook
131     builders:
132       - shell: |
133           # run playbook
134           sudo ansible-playbook -i \
135           $WORKSPACE/utils/build-server-ansible/inventory.ini \
136           $WORKSPACE/utils/build-server-ansible/main.yml
137
138
139 - job-template:
140     name: 'generate-artifacts-index-pages'
141
142     project-type: freestyle
143
144     disabled: false
145
146     concurrent: false
147
148     parameters:
149       - node:
150           name: SLAVE_NAME
151           description: Build Servers
152           default-slaves:
153             - lf-build2
154       - project-parameter:
155           project: releng
156           branch: master
157
158     scm:
159       - git-scm
160
161     triggers:
162       - timed: '@hourly'
163
164     builders:
165       - generate-artifact-html
166
167
168 - builder:
169     name: generate-artifact-html
170     builders:
171       - shell: |
172           cd $WORKSPACE/utils/
173           ./artifacts.opnfv.org.sh