X-Git-Url: https://gerrit.opnfv.org/gerrit/gitweb?a=blobdiff_plain;f=jjb%2Fcompass4nfv%2Fcompass4nfv.yml;h=40402011cf93be07aa4734026d628232e3b97616;hb=c44f96b50c89933c3fed3609d6b69fc9322c5818;hp=57b6eabc6bc49dbcd40d4661ec6245b36aa4f9b2;hpb=2d98a7a80462f55df4b2b919a367991c30d24361;p=releng.git diff --git a/jjb/compass4nfv/compass4nfv.yml b/jjb/compass4nfv/compass4nfv.yml index 57b6eabc6..40402011c 100644 --- a/jjb/compass4nfv/compass4nfv.yml +++ b/jjb/compass4nfv/compass4nfv.yml @@ -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: '' +# - 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' @@ -35,19 +38,19 @@ # 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: @@ -56,17 +59,16 @@ 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: @@ -87,137 +89,108 @@ 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}' @@ -228,96 +201,75 @@ - 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}' + + disabled: false - project-type: freestyle + node: '{node}' - node: ericsson-build + 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-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' @@ -354,29 +306,43 @@ 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://205.177.226.235:9999" + - string: + name: PPA_CACHE + default: "$WORKSPACE/work/repo/" ######################## # builder macros ######################## - 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 + 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 @@ -397,6 +363,11 @@ export OPNFV_ARTIFACT_VERSION=$(date -u +"%Y-%m-%d_%H-%M-%S") # start the build + 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 @@ -417,13 +388,10 @@ 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 @@ -432,15 +400,62 @@ echo export ISO_URL=file://$BUILD_DIRECTORY/compass.iso + sudo brctl addbr vnic_ci + sudo ifconfig vnic_ci up + export EXTERNAL_NIC=vnic_ci 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 @@ -461,14 +476,13 @@ 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 @@ -482,26 +496,27 @@ 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 @@ -513,7 +528,7 @@ /bin/rm -rf $WORKSPACE - builder: - name: 'compass-ci-preclean-workspace' + name: 'builder-compass-ci-preclean-workspace' builders: - shell: | #!/bin/bash @@ -525,9 +540,3 @@ 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