Cleanup jjb files
[releng.git] / jjb / compass4nfv / compass4nfv.yml
index 30643f5..9db53e6 100644 (file)
@@ -1,4 +1,3 @@
-# this is the job configuration for bgs
 - project:
 
     name: compass
@@ -6,28 +5,32 @@
     installer: 'compass'
 
     jobs:
-        - 'compass-verify'
-        - 'compass-verify-on-ericsson-node'
-        - 'compass-merge'
+        - 'compass-verify-{stream}'
         - 'compass-daily-{stream}'
-        - 'compass-build'
+        - 'compass-build-iso'
+        - 'compass-build-ppa'
         - 'compass-deploy-virtual-{flavor}'
+        - 'compass-deploy-bare-huawei-us'
 
-    # stream:    branch with - in place of / (eg. stable-helium)
-    # branch:    branch (eg. stable/helium)
+# only master branch is enabled at the moment to keep no of jobs sane
     stream:
         - master:
             branch: 'master'
+            gs-pathname: ''
+#        - stable-brahmaputra:
+#            branch: 'stable/brahmaputra'
+#            gs-pathname: '/brahmaputra'
 
     flavor:
-        - five:
-            conf: 'virtual_five'
-            node: 'huawei-build'
+        - cluster-odl:
+            conf: 'virtual_cluster_odl'
+            node: 'huawei-deploy-vm'
+        - cluster-onos:
+            conf: 'virtual_cluster_onos'
+            node: 'huawei-deploy-vm'
         - cluster:
             conf: 'virtual_cluster'
-            node: 'huawei-build'
-
-
+            node: 'huawei-deploy-vm'
 
     project: 'compass4nfv'
 
 # job templates
 ########################
 - job-template:
-    name: 'compass-verify-on-ericsson-node'
+    name: 'compass-verify-{stream}'
 
-    project-type: freestyle
+    disabled: false
 
-    disabled: true
+    node: 'huawei-deploy-vm'
 
-    node: ericsson-build
+    concurrent: true
 
-    logrotate:
-        daysToKeep: 30
-        numToKeep: 10
-        artifactDaysToKeep: -1
-        artifactNumToKeep: -1
+    properties:
+        - throttle:
+            enabled: true
+            max-total: 3
+            max-per-node: 1
 
     parameters:
         - project-parameter:
             branch: 'master'
         - compass-parameter:
             installer: '{installer}'
-
+        - string:
+            name: FLAVOR_CONF
+            default: 'virtual_cluster'
+            description: ""
     scm:
         - gerrit-trigger-scm:
             credentials-id: '{ssh-credentials}'
             refspec: '$GERRIT_REFSPEC'
             choosing-strategy: 'gerrit'
 
-    wrappers:
-        - ssh-agent-credentials:
-            user: '{ssh-credentials}'
-
     triggers:
         - gerrit:
             trigger-on:
                     branch-pattern: '**/master'
                 forbidden-file-paths:
                   - compare-type: ANT
-                    pattern: 'docs/**'
+                    pattern: 'docs/**|.gitignore'
 
     builders:
-        - 'compass-build'
-        - 'compass-workspace-cleanup'
+        - 'builder-compass-build-iso'
+        - 'builder-compass-deploy-virtual-flavor'
+    publishers:
+        - archive:
+            artifacts: 'ansible.log'
+            allow-empty: 'true'
+            fingerprint: true
 
 - job-template:
-    name: 'compass-verify'
-
-    project-type: freestyle
-
-    disabled: false
+    name: 'compass-daily-{stream}'
 
     node: huawei-build
 
-    logrotate:
-        daysToKeep: 30
-        numToKeep: 10
-        artifactDaysToKeep: -1
-        artifactNumToKeep: -1
+    concurrent: true
+
+    properties:
+        - throttle:
+            enabled: true
+            max-total: 1
+            max-per-node: 1
 
     parameters:
         - project-parameter:
             project: '{project}'
-        - gerrit-parameter:
-            branch: 'master'
         - compass-parameter:
             installer: '{installer}'
-        - string:
-            name: FLAVOR_CONF
-            default: 'virtual_cluster'
-            description: ""
+
     scm:
-        - gerrit-trigger-scm:
+        - git-scm:
             credentials-id: '{ssh-credentials}'
-            refspec: '$GERRIT_REFSPEC'
-            choosing-strategy: 'gerrit'
-
-    wrappers:
-        - ssh-agent-credentials:
-            user: '{ssh-credentials}'
+            refspec: ''
+            branch: '{branch}'
 
     triggers:
-        - gerrit:
-            trigger-on:
-                - patchset-created-event:
-                    exclude-drafts: 'false'
-                    exclude-trivial-rebase: 'false'
-                    exclude-no-code-change: 'false'
-                - draft-published-event
-                - comment-added-contains-event:
-                    comment-contains-value: 'recheck'
-                - comment-added-contains-event:
-                    comment-contains-value: 'reverify'
-            projects:
-              - project-compare-type: 'ANT'
-                project-pattern: '{project}'
-                branches:
-                  - branch-compare-type: 'ANT'
-                    branch-pattern: '**/master'
-                forbidden-file-paths:
-                  - compare-type: ANT
-                    pattern: 'docs/**'
+        - timed: '@midnight'
 
     builders:
-        - 'compass-build'
-#        - 'compass-deploy-virtual-flavor'
-#        - 'compass-backup-logs'
-#    publishers:
-#        - archive:
-#            artifacts: 'ansible.log'
-#            allow-empty: 'true'
-#            fingerprint: true
+        - trigger-builds:
+          - project: 'compass-build-iso'
+            git-revision: true
+            block: true
+        - trigger-builds:
+          - project: 'compass-deploy-virtual-cluster'
+            git-revision: true
+            block: true
+#        - trigger-builds:
+#          - project: 'compass-deploy-virtual-cluster-odl'
+#            git-revision: true
+#            block: true
+        - trigger-builds:
+          - project: 'compass-deploy-virtual-cluster-onos'
+            git-revision: true
+            block: true
 
 - job-template:
-    name: 'compass-merge'
-
-    # builder-merge job to run JJB update
-    #
-    # This job's purpose is to update all the JJB
+    name: 'compass-build-iso'
 
-    project-type: freestyle
+    node: ericsson-build
 
-    node: huawei-build
+    concurrent: true
 
-    logrotate:
-        daysToKeep: 30
-        numToKeep: 40
-        artifactDaysToKeep: -1
-        artifactNumToKeep: 5
+    properties:
+        - throttle:
+            enabled: true
+            max-total: 1
+            max-per-node: 1
 
     parameters:
         - project-parameter:
             project: '{project}'
-        - gerrit-parameter:
-            branch: 'master'
         - compass-parameter:
             installer: '{installer}'
 
     scm:
-        - gerrit-trigger-scm:
+        - git-scm:
             credentials-id: '{ssh-credentials}'
             refspec: ''
-            choosing-strategy: 'default'
-
-    wrappers:
-        - ssh-agent-credentials:
-            user: '{ssh-credentials}'
+            branch: 'master'
 
-    triggers:
-        - gerrit:
-            trigger-on:
-                - change-merged-event
-                - comment-added-contains-event:
-                    comment-contains-value: 'remerge'
-            projects:
-              - project-compare-type: 'ANT'
-                project-pattern: '{project}'
-                branches:
-                    - branch-compare-type: 'ANT'
-                      branch-pattern: '**/master'
     builders:
-        - 'compass-merge'
+        - 'builder-compass-build-iso'
+        - 'builder-compass-upload-artifact'
+        - 'builder-compass-workspace-cleanup'
 
 - job-template:
-    name: 'compass-daily-{stream}'
+    name: 'compass-build-ppa'
 
-    project-type: freestyle
+    description: "build ppa(using docker) in huawei lab"
 
     node: huawei-build
 
+    concurrent: true
+
+    properties:
+        - throttle:
+            enabled: true
+            max-total: 1
+            max-per-node: 1
+
     parameters:
         - project-parameter:
             project: '{project}'
         - git-scm:
             credentials-id: '{ssh-credentials}'
             refspec: ''
-            branch: '{branch}'
+            branch: 'master'
 
     triggers:
-        - pollscm: '@midnight'
-
-    logrotate:
-        daysToKeep: 30
-        numToKeep: 10
-        artifactDaysToKeep: -1
-        artifactNumToKeep: -1
+        - timed: 'H 16 * * *'
 
     builders:
-        #- 'compass-build'
-        #- 'compass-upload-artifact'
-        #- 'compass-workspace-cleanup'
-        - shell: |
-            echo "Hello world!"
-            echo "compass-deploy-virtual job will be triggered!"
-
-    publishers:
-        - trigger:
-            project: 'compass-build'
-            threshold: SUCCESS
-        - trigger:
-            project: 'compass-deploy-virtual-cluster'
-            threshold: SUCCESS
+        - 'builder-compass-make-ppa'
 
 - job-template:
-    name: 'compass-build'
+    name: 'compass-deploy-virtual-{flavor}'
 
-    project-type: freestyle
+    disabled: false
 
-    node: ericsson-build
+    node: '{node}'
+
+    concurrent: true
 
-    logrotate:
-        daysToKeep: 30
-        numToKeep: 10
-        artifactDaysToKeep: -1
-        artifactNumToKeep: -1
+    properties:
+        - throttle:
+            enabled: true
+            max-total: 1
+            max-per-node: 1
 
     parameters:
         - project-parameter:
             project: '{project}'
         - compass-parameter:
             installer: '{installer}'
-
-    scm:
-        - git-scm:
-            credentials-id: '{ssh-credentials}'
-            refspec: ''
-            branch: 'master'
+        - string:
+            name: FLAVOR_CONF
+            default: '{conf}'
+            description: ""
 
     builders:
-        - 'compass-make-ppa'
-        - 'compass-build'
-        - 'compass-upload-artifact'
-        - 'compass-workspace-cleanup'
+        - 'builder-compass-ci-preclean-workspace'
+        - 'builder-compass-download-artifact'
+        - 'builder-compass-deploy-virtual-flavor'
+    publishers:
+        - archive:
+            artifacts: 'ansible.log'
+            allow-empty: 'true'
+            fingerprint: true
 
 - job-template:
-    name: 'compass-deploy-virtual-{flavor}'
-
-    project-type: freestyle
+    name: 'compass-deploy-bare-huawei-us'
 
     disabled: false
 
-    node: '{node}'
+    node: 'huawei-us-deploy-bare-1'
+
+    concurrent: true
+
+    properties:
+        - throttle:
+            enabled: true
+            max-total: 1
+            max-per-node: 1
 
     parameters:
         - project-parameter:
             project: '{project}'
         - compass-parameter:
             installer: '{installer}'
-        - string:
-            name: FLAVOR_CONF
-            default: '{conf}'
-            description: ""
-
-    triggers:
-        - pollscm: "H/2 * * * *"
-
-    logrotate:
-        daysToKeep: 30
-        numToKeep: 10
-        artifactDaysToKeep: -1
-        artifactNumToKeep: -1
 
     builders:
-        - 'compass-ci-preclean-workspace'
-        - 'compass-download-artifact'
-        - 'compass-deploy-virtual-flavor'
-        - 'compass-backup-logs'
+        - 'builder-compass-ci-preclean-workspace'
+        - 'builder-compass-download-artifact'
+        - 'builder-compass-deploy-bare'
+
     publishers:
         - archive:
             artifacts: 'ansible.log'
             name: GS_URL_PROXY
             default: build.opnfv.org/artifacts/$PROJECT/
             description: "URL to Google Storage proxy"
-        - string:
-            name: INTERNAL_REPO_XA
-            default: "root@192.168.127.11:~/xh/work/build/work"
-            description: "Artifact Repository"
-
         - string:
             name: installer_ip
-            default: "10.1.0.12"
+            default: "192.168.200.2"
         - string:
             name: PPA_REPO
-            default: "http://58.251.166.184:9999"
+            default: "http://205.177.226.235:9999"
         - string:
             name: PPA_CACHE
             default: "$WORKSPACE/work/repo/"
 # builder macros
 ########################
 - builder:
-    name: compass-merge
-    builders:
-        - shell: |
-            #!/bin/bash
-            echo "Hello World!"
-
-- builder:
-    name: 'compass-make-ppa'
+    name: 'builder-compass-make-ppa'
     builders:
         - shell: |
             #!/bin/bash
             ./build/make_repo.sh
             # calc MD5 of ppa
             cd $PPA_CACHE
-            for i in `find *.gz *.iso *.img -type f`
+            for i in $(find *.gz *.iso *.img -type f)
             do
-                md5="md5sum $i | cut -d ' ' -f1"
+                md5=$(md5sum $i | cut -d ' ' -f1)
                 echo $md5 > $i.md5
-            done
-            # upload PPA
-            for i in `find *.* -type f`
-            do
                 curl -T $i $PPA_REPO
+                curl -T $i.md5 $PPA_REPO
             done
 
 - builder:
-    name: 'compass-build'
+    name: 'builder-compass-build-iso'
     builders:
         - shell: |
             #!/bin/bash
             echo "Done!"
 
 - builder:
-    name: 'compass-deploy-virtual-flavor'
+    name: 'builder-compass-deploy-virtual-flavor'
     builders:
         - shell: |
             #!/bin/bash
-            set -o errexit
-            set -o nounset
-            set -o pipefail
             set -x
 
             # log info to console
 
             export ISO_URL=file://$BUILD_DIRECTORY/compass.iso
             cd $WORKSPACE
+
             ./deploy.sh $FLAVOR_CONF
+            if [ $? -ne 0 ]; then
+                echo "depolyment failed!"
+                deploy_ret=1
+            fi
+
+            echo
+            echo "--------------------------------------------------------"
+            echo "Done!"
+
+            ssh_options="-o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no"
+            sshpass -p root scp 2>/dev/null $ssh_options root@${installer_ip}:/var/ansible/run/openstack_juno-opnfv2/ansible.log ./  &> /dev/null
+
+            exit $deploy_ret
+
+- builder:
+    name: 'builder-compass-deploy-bare'
+    builders:
+        - shell: |
+            #!/bin/bash
+            set -x
+
+            # log info to console
+            echo "Starting the deployment on baremetal environment using $INSTALLER. This could take some time..."
+            echo "--------------------------------------------------------"
+            echo
+
+            export CONFDIR=$WORKSPACE/deploy/conf/hardware_environment/huawei_us_lab/pod1
+            export ISO_URL=file://$BUILD_DIRECTORY/compass.iso
+            export EXTERNAL_NIC=eth0
+            export INSTALL_NIC=eth1
+
+            cd $WORKSPACE
+
+            ./deploy.sh --dha $CONFDIR/dha.yml --network $CONFDIR/network.yml
+            if [ $? -ne 0 ]; then
+                echo "depolyment failed!"
+                deploy_ret=1
+            fi
 
             echo
             echo "--------------------------------------------------------"
             echo "Done!"
 
+            ssh_options="-o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no"
+            sshpass -p root scp 2>/dev/null $ssh_options root@${installer_ip}:/var/ansible/run/openstack_juno-opnfv2/ansible.log ./  &> /dev/null
+
+            exit $deploy_ret
+
 - builder:
-    name: 'compass-upload-artifact'
+    name: 'builder-compass-upload-artifact'
     builders:
         - shell: |
             #!/bin/bash
             gsutil cp $BUILD_DIRECTORY/opnfv.properties gs://$GS_URL/opnfv-$OPNFV_ARTIFACT_VERSION.properties > gsutil.properties.log 2>&1
             gsutil cp $BUILD_DIRECTORY/opnfv.properties gs://$GS_URL/latest.properties > gsutil.latest.log 2>&1
 
-
             echo
             echo "--------------------------------------------------------"
             echo "Done!"
             echo "Artifact is available as http://$GS_URL/opnfv-$OPNFV_ARTIFACT_VERSION.iso"
 
 - builder:
-    name: 'compass-download-artifact'
+    name: 'builder-compass-download-artifact'
     builders:
         - shell: |
             #!/bin/bash
             echo
 
             # get the latest.properties file in order to get info regarding latest artifact
-            curl -s -o $WORKSPACE/latest.properties http://$GS_URL/latest.properties
+            [[ -d $BUILD_DIRECTORY ]] || mkdir -p $BUILD_DIRECTORY
+            curl -s -o $BUILD_DIRECTORY/latest.properties http://$GS_URL/latest.properties
 
             # check if we got the file
-            [[ -f latest.properties ]] || exit 1
+            [[ -f $BUILD_DIRECTORY/latest.properties ]] || exit 1
 
             # source the file so we get OPNFV vars
-            source latest.properties
+            source $BUILD_DIRECTORY/latest.properties
 
             # download the file
-            curl -s -o $WORKSPACE/compass.iso http://$OPNFV_ARTIFACT_URL > gsutil.iso.log 2>&1
+            curl -s -o $BUILD_DIRECTORY/compass.iso http://$OPNFV_ARTIFACT_URL > gsutil.iso.log 2>&1
 
             # list the file
-            ls -al $WORKSPACE/compass.iso
+            ls -al $BUILD_DIRECTORY/compass.iso
 
             echo
             echo "--------------------------------------------------------"
             echo "Done!"
 
 - builder:
-    name: 'compass-workspace-cleanup'
+    name: 'builder-compass-workspace-cleanup'
     builders:
         - shell: |
             #!/bin/bash
             /bin/rm -rf $WORKSPACE
 
 - builder:
-    name: 'compass-ci-preclean-workspace'
+    name: 'builder-compass-ci-preclean-workspace'
     builders:
         - shell: |
             #!/bin/bash
             sudo rm $WORKSPACE -rf
             git clone $GIT_BASE  $WORKSPACE
 
-- builder:
-    name: 'compass-backup-logs'
-    builders:
-        - shell: |
-            ssh_options="-o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no"
-            sshpass -p root scp 2>/dev/null $ssh_options root@${installer_ip}:/var/ansible/run/openstack_juno-opnfv2/ansible.log ./  &> /dev/null