X-Git-Url: https://gerrit.opnfv.org/gerrit/gitweb?a=blobdiff_plain;f=jjb%2Fcompass4nfv%2Fcompass4nfv.yml;h=547971074b3c6239b50e3e601455ce7f3f5b8fb0;hb=727a81bd7cd63df8c2ae44e2ce50e71fb3165624;hp=e56c26292e170c0cd895518b4e2cf4b23285acbd;hpb=caf955024bedf3d794fa902be1929d70a20301bc;p=releng.git diff --git a/jjb/compass4nfv/compass4nfv.yml b/jjb/compass4nfv/compass4nfv.yml index e56c26292..547971074 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,29 +5,32 @@ installer: 'compass' jobs: - - 'compass-verify' - - 'compass-verify-on-ericsson-node' - - 'compass-upload-iso' - - 'compass-merge' + - 'compass-verify-{stream}' - 'compass-daily-{stream}' - - 'compass-build' - - 'compass-deploy-virtual-{flavor}' + - 'compass-build-iso-{stream}' + - 'compass-build-ppa-{stream}' + - 'compass-deploy-virtual-{flavor}-{stream}' + - 'compass-deploy-bare-huawei-us-{stream}' - # 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' + branch: '{stream}' + gs-pathname: '' +# - brahmaputra: +# branch: 'stable/{stream}' +# gs-pathname: '/{stream}' 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' @@ -36,65 +38,38 @@ # job templates ######################## - job-template: - name: 'compass-upload-iso' - project-type: freestyle - disabled: false - - node: master - - logrotate: - daysToKeep: 30 - numToKeep: 10 - artifactDaysToKeep: -1 - artifactNumToKeep: -1 - - parameters: - - project-parameter: - project: '{project}' - - compass-parameter: - installer: '{installer}' - - wrappers: - - ssh-agent-credentials: - user: '{ssh-credentials}' - - builders: - - 'compass-copy-artifact-from-upstream-build' - - 'compass-upload-artifact' - -- 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: project: '{project}' - gerrit-parameter: - branch: 'master' + branch: '{branch}' - compass-parameter: installer: '{installer}' - + gs-pathname: '{gs-pathname}' + - 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: @@ -112,131 +87,124 @@ project-pattern: '{project}' branches: - branch-compare-type: 'ANT' - branch-pattern: '**/master' + branch-pattern: '**/{branch}' + forbidden-file-paths: + - compare-type: ANT + pattern: 'docs/**|.gitignore' builders: - - 'compass-build' + - '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: "" + gs-pathname: '{gs-pathname}' + 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' + - timed: 'H 16 * * *' builders: - - 'compass-build' - #- 'compass-deploy-virtual-flavor' + - trigger-builds: + - project: 'compass-build-iso-{stream}' + git-revision: true + block: true + - trigger-builds: + - project: 'compass-deploy-virtual-cluster-{stream}' + git-revision: true + block: true + - trigger-builds: + - project: 'compass-deploy-virtual-cluster-odl-{stream}' + git-revision: true + block: true + - trigger-builds: + - project: 'compass-deploy-virtual-cluster-onos-{stream}' + git-revision: true + block: true + - trigger-builds: + - project: 'compass-deploy-bare-huawei-us-{stream}' + 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 +- job-template: + name: 'compass-build-iso-{stream}' - 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}' + gs-pathname: '{gs-pathname}' + scm: - - gerrit-trigger-scm: + - git-scm: credentials-id: '{ssh-credentials}' refspec: '' - choosing-strategy: 'default' - - wrappers: - - ssh-agent-credentials: - user: '{ssh-credentials}' + branch: '{branch}' - 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-{stream}' - 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}' - compass-parameter: installer: '{installer}' + gs-pathname: '{gs-pathname}' scm: - git-scm: @@ -245,100 +213,79 @@ branch: '{branch}' 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}-{stream}' - project-type: freestyle + disabled: false - node: huawei-build + node: '{node}' - 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}' - compass-parameter: installer: '{installer}' - - scm: - - git-scm: - credentials-id: '{ssh-credentials}' - refspec: '' - branch: 'master' + gs-pathname: '{gs-pathname}' + - string: + name: FLAVOR_CONF + default: '{conf}' + description: "" builders: - - 'compass-build' - - 'compass-workspace-cleanup' - + - 'builder-compass-ci-preclean-workspace' + - 'builder-compass-download-artifact' + - 'builder-compass-deploy-virtual-flavor' publishers: - archive: - artifacts: '$BUILD_DIRECTORY/*.*' + artifacts: 'ansible.log' allow-empty: 'true' fingerprint: true - - trigger: - project: 'compass-upload-iso' - threshold: SUCCESS - job-template: - name: 'compass-deploy-virtual-{flavor}' - - project-type: freestyle + name: 'compass-deploy-bare-huawei-us-{stream}' 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 + gs-pathname: '{gs-pathname}' builders: - - 'compass-ci-preclean-workspace' - - 'compass-download-artifact-from-internal-repo' - - 'compass-deploy-virtual-flavor' + - 'builder-compass-ci-preclean-workspace' + - 'builder-compass-download-artifact' + - 'builder-compass-deploy-bare' + + publishers: + - archive: + artifacts: 'ansible.log' + allow-empty: 'true' + fingerprint: true ######################## # parameter macros @@ -352,11 +299,11 @@ 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/ + default: $HOME/opnfv/cache/$PROJECT description: "Directory where the cache to be used during the build is located." - string: name: GIT_BASE @@ -364,43 +311,59 @@ 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{gs-pathname} description: "URL to Google Storage." - string: - name: INTERNAL_REPO_XA - default: "root@192.168.127.11:~/xh/work/build/work" - description: "Artifact Repository" + name: GS_URL_PROXY + default: build.opnfv.org/artifacts/$PROJECT/ + description: "URL to Google Storage proxy" + - string: + name: installer_ip + default: "192.168.200.2" - string: - name: ISO_DIRECTORY - default: "http://192.168.127.11:9999/" + name: PPA_REPO + default: "http://205.177.226.235:9999" + - string: + name: PPA_CACHE + default: "$WORKSPACE/work/repo/" + - choice: + name: COMPASS_OPENSTACK_VERSION + choices: + - 'liberty' + - 'juno' + - choice: + name: COMPASS_OS_VERSION + choices: + - 'trusty' + - 'centos7' ######################## # builder macros ######################## - builder: - name: compass-copy-artifact-from-upstream-build - 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 - - -- 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 @@ -415,17 +378,22 @@ # 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 + if [ -d $PPA_CACHE ] + then + cp $PPA_CACHE/*.tar.gz $PPA_CACHE/*.iso $PPA_CACHE/*.img $CACHE_DIRECTORY/ -f + fi + cd $WORKSPACE/ - mkdir $WORKSPACE/$BUILD_DIRECTORY - ./build.sh --iso-dir $WORKSPACE/$BUILD_DIRECTORY/ --iso-name compass.iso -c $CACHE_DIRECTORY + ./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 ( @@ -433,46 +401,86 @@ 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!" - sudo rm -rf $WORKSPACE/work/ - - 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=$WORKSPACE/$BUILD_DIRECTORY/compass.iso + 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 + + export OS_VERSION=${COMPASS_OS_VERSION} + export OPENSTACK_VERSION=${COMPASS_OPENSTACK_VERSION} ./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_${COMPASS_OPENSTACK_VERSION}-opnfv2/ansible.log ./ &> /dev/null + + exit $deploy_ret + - builder: - name: 'compass-download-artifact-from-internal-repo' + name: 'builder-compass-deploy-bare' builders: - shell: | #!/bin/bash - echo "download iso from internal repo" - curl -s -o $WORKSPACE/$BUILD_DIRECTORY/compass.iso $ISO_DIRECTORY/compass.iso > download.iso.log 2>&1 + 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 + + export OS_VERSION=${COMPASS_OS_VERSION} + export OPENSTACK_VERSION=${COMPASS_OPENSTACK_VERSION} + ./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_${COMPASS_OPENSTACK_VERSION}-opnfv2/ansible.log ./ &> /dev/null + + exit $deploy_ret - builder: - name: 'compass-upload-artifact' + name: 'builder-compass-upload-artifact' builders: - shell: | #!/bin/bash @@ -486,16 +494,12 @@ echo # source the opnfv.properties to get ARTIFACT_VERSION - source $WORKSPACE/$BUILD_DIRECTORY/opnfv.properties - - scp $WORKSPACE/$BUILD_DIRECTORY/compass.iso $INTERNAL_REPO_XA/ - scp $WORKSPACE/$BUILD_DIRECTORY/opnfv.properties $INTERNAL_REPO_XA/ - scp $WORKSPACE/$BUILD_DIRECTORY/compass.iso $INTERNAL_REPO_XA/opnfv-$OPNFV_ARTIFACT_VERSION.iso + source $BUILD_DIRECTORY/opnfv.properties # upload artifact and additional files to google storage - gsutil cp $WORKSPACE/$BUILD_DIRECTORY/compass.iso gs://$GS_URL/opnfv-$OPNFV_ARTIFACT_VERSION.iso > gsutil.iso.log 2>&1 - gsutil cp $WORKSPACE/$BUILD_DIRECTORY/opnfv.properties gs://$GS_URL/opnfv-$OPNFV_ARTIFACT_VERSION.properties > gsutil.properties.log 2>&1 - gsutil cp $WORKSPACE/$BUILD_DIRECTORY/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 "--------------------------------------------------------" @@ -503,7 +507,7 @@ echo "Artifact is available as http://$GS_URL/opnfv-$OPNFV_ARTIFACT_VERSION.iso" - builder: - name: 'compass-download-artifact-from-opnfv-repo' + name: 'builder-compass-download-artifact' builders: - shell: | #!/bin/bash @@ -517,26 +521,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/opnfv.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/opnfv.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 @@ -545,10 +550,10 @@ set -o pipefail # delete everything that is in $WORKSPACE - sudo /bin/rm -rf $WORKSPACE + /bin/rm -rf $WORKSPACE - builder: - name: 'compass-ci-preclean-workspace' + name: 'builder-compass-ci-preclean-workspace' builders: - shell: | #!/bin/bash