bugfix: a wrong statement of calculating md5
[releng.git] / jjb / compass4nfv / compass4nfv.yml
old mode 100755 (executable)
new mode 100644 (file)
index af1b43c..032cd9b
@@ -7,9 +7,10 @@
 
     jobs:
         - 'compass-verify'
-        - 'compass-upload-iso'
+        - 'compass-verify-on-ericsson-node'
         - 'compass-merge'
         - 'compass-daily-{stream}'
+        - 'compass-build-iso'
         - 'compass-build'
         - 'compass-deploy-virtual-{flavor}'
 
 
     flavor:
         - five:
-            conf: 'five'
+            conf: 'virtual_five'
             node: 'huawei-build'
         - cluster:
-            conf: 'cluster'
+            conf: 'virtual_cluster'
             node: 'huawei-build'
 
 
 # job templates
 ########################
 - job-template:
-    name: 'compass-upload-iso'
+    name: 'compass-verify-on-ericsson-node'
+
     project-type: freestyle
-    disabled: false
 
-    node: master
+    disabled: true
+
+    node: ericsson-build
 
     logrotate:
         daysToKeep: 30
     parameters:
         - project-parameter:
             project: '{project}'
+        - gerrit-parameter:
+            branch: 'master'
         - compass-parameter:
-             installer: '{installer}'
+            installer: '{installer}'
+
+    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:
+                - 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/**'
+
     builders:
-        - 'compass-copy-artifact'
-        - 'compass-upload-artifact'
+        - 'builder-compass-build-iso'
+        - 'builder-compass-workspace-cleanup'
 
 - job-template:
     name: 'compass-verify'
             branch: 'master'
         - compass-parameter:
             installer: '{installer}'
-
+        - string:
+            name: FLAVOR_CONF
+            default: 'virtual_cluster'
+            description: ""
     scm:
         - gerrit-trigger-scm:
             credentials-id: '{ssh-credentials}'
                 branches:
                   - branch-compare-type: 'ANT'
                     branch-pattern: '**/master'
+                forbidden-file-paths:
+                  - compare-type: ANT
+                    pattern: 'docs/**'
 
     builders:
-        - 'compass-build'
-        #- 'compass-workspace-cleanup'
+        - 'builder-compass-build-iso'
+#        - 'builder-compass-deploy-virtual-flavor'
+#        - 'builder-compass-backup-logs'
+#    publishers:
+#        - archive:
+#            artifacts: 'ansible.log'
+#            allow-empty: 'true'
+#            fingerprint: true
 
 - job-template:
     name: 'compass-merge'
             branch: 'master'
         - compass-parameter:
             installer: '{installer}'
+
     scm:
         - gerrit-trigger-scm:
             credentials-id: '{ssh-credentials}'
                     - branch-compare-type: 'ANT'
                       branch-pattern: '**/master'
     builders:
-        - 'compass-merge'
+        - 'builder-compass-merge'
 
 - job-template:
     name: 'compass-daily-{stream}'
         artifactNumToKeep: -1
 
     builders:
-        #- 'compass-build'
-        #- 'compass-upload-artifact'
-        #- 'compass-workspace-cleanup'
+        #- 'builder-compass-build-iso'
+        #- 'builder-compass-upload-artifact'
+        #- 'builder-compass-workspace-cleanup'
         - shell: |
             echo "Hello world!"
             echo "compass-deploy-virtual job will be triggered!"
 
     publishers:
         - trigger:
-            project: 'compass-deploy-virtual-five'
+            project: 'compass-build'
             threshold: SUCCESS
         - trigger:
             project: 'compass-deploy-virtual-cluster'
             threshold: SUCCESS
 
+- job-template:
+    name: 'compass-build-iso'
+
+    project-type: freestyle
+
+    node: ericsson-build
+
+    logrotate:
+        daysToKeep: 30
+        numToKeep: 10
+        artifactDaysToKeep: -1
+        artifactNumToKeep: -1
+
+    parameters:
+        - project-parameter:
+            project: '{project}'
+        - compass-parameter:
+            installer: '{installer}'
+
+    scm:
+        - git-scm:
+            credentials-id: '{ssh-credentials}'
+            refspec: ''
+            branch: 'master'
+
+    builders:
+        - 'builder-compass-build-iso'
+        - 'builder-compass-upload-artifact'
+        - 'builder-compass-workspace-cleanup'
+
 - job-template:
     name: 'compass-build'
 
+    description: "build ppa(using docker) in huawei lab"
+
     project-type: freestyle
 
     node: huawei-build
     scm:
         - git-scm:
             credentials-id: '{ssh-credentials}'
+
             refspec: ''
             branch: 'master'
 
     builders:
-        - 'compass-build'
-        - 'compass-workspace-cleanup'
-
-    publishers:
-        - archive:
-            artifacts: '$BUILD_DIRECTORY/*.*'
-            allow-empty: 'true'
-            fingerprint: true
-        - trigger:
-            project: 'compass-upload-iso'
-            threshold: SUCCESS
+        - 'builder-compass-make-ppa'
+        - trigger-builds:
+          - project: 'compass-build-iso'
+            git-revision: true
+            block: true
 
 - job-template:
     name: 'compass-deploy-virtual-{flavor}'
         artifactNumToKeep: -1
 
     builders:
-        - 'compass-ci-preclean-workspace'
-        - 'compass-deploy-virtual-flavor'
+        - 'builder-compass-ci-preclean-workspace'
+        - 'builder-compass-download-artifact'
+        - 'builder-compass-deploy-virtual-flavor'
+        - 'builder-compass-backup-logs'
+    publishers:
+        - archive:
+            artifacts: 'ansible.log'
+            allow-empty: 'true'
+            fingerprint: true
 
 ########################
 # parameter macros
             description: "Installer to use."
         - string:
             name: BUILD_DIRECTORY
-            default: build_output
+            default: $WORKSPACE/build_output
             description: "Directory where the build artifact will be located upon the completion of the build."
         - string:
             name: CACHE_DIRECTORY
-            default: $HOME/opnfv/cache/$INSTALLER
+            default: $HOME/opnfv/cache/$PROJECT
             description: "Directory where the cache to be used during the build is located."
         - string:
             name: GIT_BASE
             description: "Used for overriding the GIT URL coming from Global Jenkins configuration in case if the stuff is done on none-LF HW."
         - string:
             name: GS_URL
-            default: artifacts.opnfv.org/$PROJECT/$INSTALLER
+            default: artifacts.opnfv.org/$PROJECT/
             description: "URL to Google Storage."
         - string:
-            name: INTERNAL_REPO
+            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"
+        - string:
+            name: PPA_REPO
+            default: "http://58.251.166.184:9999"
+        - string:
+            name: PPA_CACHE
+            default: "$WORKSPACE/work/repo/"
+
 ########################
 # builder macros
 ########################
 - builder:
-    name: compass-copy-artifact
+    name: 'builder-compass-merge'
     builders:
-        - copyartifact:
-            project: "compass-build"
-            filter: "$BUILD_DIRECTORY/compass.iso, $BUILD_DIRECTORY/opnfv.properties"
-            target: ./
-            which-build: upstream-build
-            optional: true
-            flatten: true
-            parameter-filters: PUBLISH=true
-
+        - shell: |
+            #!/bin/bash
+            echo "Hello World!"
 
 - builder:
-    name: compass-merge
+    name: 'builder-compass-make-ppa'
     builders:
         - shell: |
             #!/bin/bash
-            echo "Hello World!"
-
+            set -x
+            set -o errexit
+            set -o nounset
+            set -o pipefail
+            # make ppa
+            cd $WORKSPACE/
+            ./build/make_repo.sh
+            # calc MD5 of ppa
+            cd $PPA_CACHE
+            for i in `find *.gz *.iso *.img -type f`
+            do
+                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
+            done
 
 - builder:
-    name: 'compass-build'
+    name: 'builder-compass-build-iso'
     builders:
         - shell: |
             #!/bin/bash
 
             # create the cache directory if it doesn't exist
             [[ -d $CACHE_DIRECTORY ]] || mkdir -p $CACHE_DIRECTORY
+            [[ -d $BUILD_DIRECTORY ]] || mkdir -p $BUILD_DIRECTORY
 
             # set OPNFV_ARTIFACT_VERSION
             export OPNFV_ARTIFACT_VERSION=$(date -u +"%Y-%m-%d_%H-%M-%S")
 
             # start the build
-            cd $WORKSPACE/ci
-            ./build.sh
-            mkdir $WORKSPACE/$BUILD_DIRECTORY
-            mv $WORKSPACE/ci/work/compass.iso $WORKSPACE/$BUILD_DIRECTORY/
+            if [ -d $PPA_CACHE ]
+            then
+                cp $PPA_CACHE/*.tar.gz $PPA_CACHE/*.iso $PPA_CACHE/*.img $CACHE_DIRECTORY/ -f
+            fi
+
+            cd $WORKSPACE/
+            ./build.sh  --iso-dir $BUILD_DIRECTORY/ --iso-name compass.iso -c $CACHE_DIRECTORY
 
             # list the build artifacts
-            ls -al $WORKSPACE/$BUILD_DIRECTORY
+            ls -al $BUILD_DIRECTORY
 
             # save information regarding artifact into file
             (
                 echo "OPNFV_GIT_URL=$(git config --get remote.origin.url)"
                 echo "OPNFV_GIT_SHA1=$(git rev-parse HEAD)"
                 echo "OPNFV_ARTIFACT_URL=$GS_URL/opnfv-$OPNFV_ARTIFACT_VERSION.iso"
-                echo "OPNFV_ARTIFACT_MD5SUM=$(md5sum $WORKSPACE/$BUILD_DIRECTORY/compass.iso | cut -d' ' -f1)"
+                echo "OPNFV_ARTIFACT_MD5SUM=$(md5sum $BUILD_DIRECTORY/compass.iso | cut -d' ' -f1)"
                 echo "OPNFV_BUILD_URL=$BUILD_URL"
-            ) > $WORKSPACE/$BUILD_DIRECTORY/opnfv.properties
-
+            ) > $BUILD_DIRECTORY/opnfv.properties
             echo
             echo "--------------------------------------------------------"
             echo "Done!"
 
 - builder:
-    name: 'compass-deploy'
-    builders:
-        - shell: |
-            #!/bin/bash
-            set -o errexit
-            set -o nounset
-            set -o pipefail
-
-            # log info to console
-            echo "Hello world!"
-
-- 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
             echo "Starting the deployment on virtual environment using $INSTALLER. This could take some time..."
             echo "--------------------------------------------------------"
             echo
 
+            export ISO_URL=file://$BUILD_DIRECTORY/compass.iso
             cd $WORKSPACE
-            ./ci/deploy.sh $FLAVOR_CONF
-            # ssh -o BatchMode=yes -o TCPKeepAlive=yes cideploy@10.118.34.205 ./cideploy.sh
+            ./deploy.sh $FLAVOR_CONF
 
             echo
             echo "--------------------------------------------------------"
             echo "Done!"
 
 - builder:
-    name: 'compass-upload-artifact'
+    name: 'builder-compass-upload-artifact'
     builders:
         - shell: |
             #!/bin/bash
             echo
 
             # source the opnfv.properties to get ARTIFACT_VERSION
-            source $WORKSPACE/opnfv.properties
-
-            scp $WORKSPACE/compass.iso $INTERNAL_REPO/
-            scp $WORKSPACE/opnfv.properties $INTERNAL_REPO/
-            scp $WORKSPACE/compass.iso $INTERNAL_REPO/opnfv-$OPNFV_ARTIFACT_VERSION.iso
+            source $BUILD_DIRECTORY/opnfv.properties
 
             # upload artifact and additional files to google storage
-            gsutil cp $WORKSPACE/compass.iso gs://$GS_URL/opnfv-$OPNFV_ARTIFACT_VERSION.iso > gsutil.iso.log 2>&1
-            gsutil cp $WORKSPACE/opnfv.properties gs://$GS_URL/opnfv-$OPNFV_ARTIFACT_VERSION.properties > gsutil.properties.log 2>&1
-            gsutil cp $WORKSPACE/opnfv.properties gs://$GS_URL/latest.properties > gsutil.latest.log 2>&1
+            gsutil cp $BUILD_DIRECTORY/compass.iso gs://$GS_URL/opnfv-$OPNFV_ARTIFACT_VERSION.iso > gsutil.iso.log 2>&1
+            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 "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
             source latest.properties
 
             # download the file
-            curl -s -o $WORKSPACE/opnfv.iso http://$OPNFV_ARTIFACT_URL > gsutil.iso.log 2>&1
+            curl -s -o $WORKSPACE/compass.iso http://$OPNFV_ARTIFACT_URL > gsutil.iso.log 2>&1
 
             # list the file
-            ls -al $WORKSPACE/opnfv.iso
+            ls -al $WORKSPACE/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: 'builder-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