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