Merge "Ansible for build server"
[releng.git] / jjb / releng / opnfv-utils.yml
index 80cd08f..b12f663 100644 (file)
@@ -7,6 +7,7 @@
       - 'prune-docker-images'
       - 'archive-repositories'
       - 'check-status-of-slaves'
+      - 'ansible-build-server'
 
 ########################
 # job templates
           name: SLAVE_NAME
           description: Slaves to prune docker images
           default-slaves:
-            - arm-build2
+            - arm-build3
+            - arm-build4
+            - arm-build5
+            - arm-build6
+            - ericsson-build3
             - ericsson-build4
-            - ericsson-build5
             - lf-build2
           allowed-multiselect: true
           ignore-offline-nodes: true
     builders:
       - description-setter:
           description: "Built on $NODE_NAME"
+      # yamllint disable rule:line-length
       - shell: |
           #!/bin/bash
-
           (docker ps -q; docker ps -aq) | sort | uniq -u | xargs --no-run-if-empty docker rm
           docker images -f dangling=true -q | xargs --no-run-if-empty docker rmi
 
+
+    # yamllint enable rule:line-length
     triggers:
       - timed: '@midnight'
 
       - shell:
           !include-raw-escape: opnfv-repo-archiver.sh
 
+    publishers:
+      - email-ext:
+          content-type: 'text'
+          failure: false
+          always: true
+          body:
+            ${{FILE,path="archive-link.txt"}}
+          reply-to: >
+            helpdesk@opnfv.org
+          recipients: >
+            swinslow@linuxfoundation.org
+
+
 - job-template:
     name: 'check-status-of-slaves'
 
@@ -75,7 +94,7 @@
     parameters:
       - node:
           name: SLAVE_NAME
-          description: We don't want workspace wiped. so I just threw the script on the master
+          description: 'script lives on master node'
           default-slaves:
             - master
           allowed-multiselect: false
       - shell: |
           cd /opt/jenkins-ci/slavemonitor
           bash slave-monitor-0.1.sh | sort
+
+- job-template:
+    name: 'ansible-build-server'
+
+    project-type: freestyle
+
+    disabled: false
+    concurrent: true
+
+    parameters:
+      - node:
+          name: SLAVE_NAME
+          description: Build Servers
+          default-slaves:
+            - lf-build1
+            - lf-build2
+          allowed-multiselect: true
+          ignore-offline-nodes: true
+      - project-parameter:
+          project: releng
+          branch: master
+
+    scm:
+      - git-scm
+
+    triggers:
+      - timed: '@midnight'
+
+    builders:
+      - install-ansible
+      - run-ansible-build-server-playbook
+
+
+- builder:
+    name: install-ansible
+    builders:
+      - shell: |
+          # Install ansible here
+          if [ -f /etc/centos-release ] \
+          || [ -f /etc/redhat-release ] \
+          || [ -f /etc/system-release ]; then
+          sudo yum -y install ansible
+          fi
+          if [ -f /etc/debian_version ] \
+          || grep -qi ubuntu /etc/lsb-release \
+          || grep -qi ubuntu /etc/os-release; then
+          sudo apt-get -y install ansible
+          fi
+
+- builder:
+    name: run-ansible-build-server-playbook
+    builders:
+      - shell: |
+          # run playbook
+          sudo ansible-playbook -C -D -i \
+          $WORKSPACE/utils/build-server-ansible/inventory.ini \
+          $WORKSPACE/utils/build-server-ansible/main.yml