diff options
Diffstat (limited to 'jjb/3rd_party_ci')
-rwxr-xr-x | jjb/3rd_party_ci/detect-snapshot.sh | 30 | ||||
-rwxr-xr-x | jjb/3rd_party_ci/download-netvirt-artifact.sh | 25 | ||||
-rwxr-xr-x | jjb/3rd_party_ci/install-netvirt.sh | 5 | ||||
-rw-r--r-- | jjb/3rd_party_ci/odl-netvirt.yaml | 86 |
4 files changed, 112 insertions, 34 deletions
diff --git a/jjb/3rd_party_ci/detect-snapshot.sh b/jjb/3rd_party_ci/detect-snapshot.sh new file mode 100755 index 000000000..77788aa2c --- /dev/null +++ b/jjb/3rd_party_ci/detect-snapshot.sh @@ -0,0 +1,30 @@ +#!/bin/bash +set -o errexit +set -o nounset +set -o pipefail + +echo "Detecting requested OpenStack branch and topology type in gerrit comment" +parsed_comment=$(echo $GERRIT_EVENT_COMMENT_TEXT | sed -n 's/^.*check-opnfv\s*//p') +parsed_comment=$(echo $parsed_comment | sed -n 's/\s*$//p') +if [ ! -z "$parsed_comment" ]; then + if echo $parsed_comment | grep -E '^[a-z]+-(no)?ha'; then + os_version=${parsed_comment%%"-"*} + topo=${parsed_comment#*"-"} + echo "OS version detected in gerrit comment: ${os_version}" + echo "Topology type detected in gerrit comment: ${topo}" + else + echo "Invalid format given for scenario in gerrit comment: ${parsed_comment}...aborting" + exit 1 + fi +else + echo "No scenario given in gerrit comment, will use default (master OpenStack, noha)" + os_version='master' + topo='noha' +fi + +echo "Writing variables to file" +cat > detected_snapshot << EOI +OS_VERSION=$os_version +TOPOLOGY=$topo +SNAP_CACHE=$HOME/snap_cache/$os_version/$topo +EOI diff --git a/jjb/3rd_party_ci/download-netvirt-artifact.sh b/jjb/3rd_party_ci/download-netvirt-artifact.sh index 7ecf8d78d..ac7f76ccd 100755 --- a/jjb/3rd_party_ci/download-netvirt-artifact.sh +++ b/jjb/3rd_party_ci/download-netvirt-artifact.sh @@ -3,35 +3,36 @@ set -o errexit set -o nounset set -o pipefail -ODL_ZIP=distribution-karaf-0.6.0-SNAPSHOT.zip - echo "Attempting to fetch the artifact location from ODL Jenkins" if [ "$ODL_BRANCH" != 'master' ]; then DIST=$(echo ${ODL_BRANCH} | sed -rn 's#([a-zA-Z]+)/([a-zA-Z]+)#\2#p') ODL_BRANCH=$(echo ${ODL_BRANCH} | sed -rn 's#([a-zA-Z]+)/([a-zA-Z]+)#\1%2F\2#p') else - DIST='nitrogen' + DIST='neon' fi -CHANGE_DETAILS_URL="https://git.opendaylight.org/gerrit/changes/netvirt~${ODL_BRANCH}~${GERRIT_CHANGE_ID}/detail" + +echo "ODL Distribution is ${DIST}" +ODL_ZIP="karaf-SNAPSHOT.zip" +CHANGE_DETAILS_URL="https://git.opendaylight.org/gerrit/changes/${GERRIT_PROJECT}~${ODL_BRANCH}~${GERRIT_CHANGE_ID}/detail" # due to limitation with the Jenkins Gerrit Trigger, we need to use Gerrit REST API to get the change details -ODL_BUILD_JOB_NUM=$(curl --fail -s ${CHANGE_DETAILS_URL} | grep -Eo "netvirt-distribution-check-${DIST}/[0-9]+" | tail -1 | grep -Eo [0-9]+) -DISTRO_CHECK_CONSOLE_LOG="https://logs.opendaylight.org/releng/jenkins092/netvirt-distribution-check-${DIST}/${ODL_BUILD_JOB_NUM}/console.log.gz" -NETVIRT_ARTIFACT_URL=$(curl --fail -s --compressed ${DISTRO_CHECK_CONSOLE_LOG} | grep 'BUNDLE_URL' | cut -d = -f 2) +ODL_BUILD_JOB_NUM=$(curl --fail ${CHANGE_DETAILS_URL} | grep -Eo "${GERRIT_PROJECT}-distribution-check-${DIST}/[0-9]+" | tail -1 | grep -Eo [0-9]+) +DISTRO_CHECK_CONSOLE_LOG="https://logs.opendaylight.org/releng/vex-yul-odl-jenkins-1/${GERRIT_PROJECT}-distribution-check-${DIST}/${ODL_BUILD_JOB_NUM}/console.log.gz" +NETVIRT_ARTIFACT_URL=$(curl --fail --compressed ${DISTRO_CHECK_CONSOLE_LOG} | grep 'BUNDLE_URL' | cut -d = -f 2) echo -e "URL to artifact is\n\t$NETVIRT_ARTIFACT_URL" echo "Downloading the artifact. This could take time..." -wget -q -O $ODL_ZIP $NETVIRT_ARTIFACT_URL -if [[ $? -ne 0 ]]; then +if ! wget -q -O $ODL_ZIP $NETVIRT_ARTIFACT_URL; then echo "The artifact does not exist! Probably removed due to ODL Jenkins artifact retention policy." - echo "Rerun netvirt-patch-test-current-carbon to get artifact rebuilt." + echo "Use 'recheck' on the gerrit to get artifact rebuilt." exit 1 fi #TODO(trozet) remove this once odl-pipeline accepts zip files echo "Converting artifact zip to tar.gz" -unzip $ODL_ZIP -tar czf /tmp/${NETVIRT_ARTIFACT} $(echo $ODL_ZIP | sed -n 's/\.zip//p') +UNZIPPED_DIR=`dirname $(unzip -qql ${ODL_ZIP} | head -n1 | tr -s ' ' | cut -d' ' -f5-)` +unzip ${ODL_ZIP} +tar czf /tmp/${NETVIRT_ARTIFACT} ${UNZIPPED_DIR} echo "Download complete" ls -al /tmp/${NETVIRT_ARTIFACT} diff --git a/jjb/3rd_party_ci/install-netvirt.sh b/jjb/3rd_party_ci/install-netvirt.sh index ed1a12bc8..232d60e5c 100755 --- a/jjb/3rd_party_ci/install-netvirt.sh +++ b/jjb/3rd_party_ci/install-netvirt.sh @@ -3,7 +3,7 @@ set -o errexit set -o nounset set -o pipefail -SNAP_CACHE=$HOME/snap_cache +SNAP_CACHE=$HOME/snap_cache/$OS_VERSION/$TOPOLOGY # clone opnfv sdnvpn repo git clone https://gerrit.opnfv.org/gerrit/p/sdnvpn.git $WORKSPACE/sdnvpn @@ -26,8 +26,7 @@ fi # but we really should check the cache here, and not use a single cache folder # for when we support multiple jobs on a single slave pushd sdnvpn/odl-pipeline/lib > /dev/null -# FIXME (trozet) remove this once permissions are fixed in sdnvpn repo -chmod +x odl_reinstaller.sh +git fetch https://gerrit.opnfv.org/gerrit/sdnvpn refs/changes/17/59017/5 && git checkout FETCH_HEAD ./odl_reinstaller.sh --pod-config ${SNAP_CACHE}/node.yaml \ --odl-artifact /tmp/${NETVIRT_ARTIFACT} --ssh-key-file ${SNAP_CACHE}/id_rsa popd > /dev/null diff --git a/jjb/3rd_party_ci/odl-netvirt.yaml b/jjb/3rd_party_ci/odl-netvirt.yaml index 863eb94dd..15d28486f 100644 --- a/jjb/3rd_party_ci/odl-netvirt.yaml +++ b/jjb/3rd_party_ci/odl-netvirt.yaml @@ -13,8 +13,8 @@ branch: '{stream}' gs-pathname: '' disabled: false - - carbon: - branch: 'stable/carbon' + - oxygen: + branch: 'stable/oxygen' gs-pathname: '' disabled: false ##################################### @@ -22,11 +22,11 @@ ##################################### phase: - 'create-apex-vms': - slave-label: 'odl-netvirt-virtual-intel' + slave-label: 'apex-virtual-master' - 'install-netvirt': - slave-label: 'odl-netvirt-virtual-intel' + slave-label: 'apex-virtual-master' - 'postprocess': - slave-label: 'odl-netvirt-virtual-intel' + slave-label: 'apex-virtual-master' ##################################### # jobs ##################################### @@ -53,7 +53,17 @@ max-total: 5 max-per-node: 1 option: 'project' - + - build-blocker: + use-build-blocker: true + blocking-jobs: + - 'apex-verify.*' + - 'apex-.*-promote.*' + - 'apex-virtual.*' + - 'odl-netvirt-verify-virtual-create-apex-vms-.*' + - 'odl-netvirt-verify-virtual-install-netvirt-.*' + - 'functest-netvirt-virtual-suite-.*' + - 'odl-netvirt-verify-virtual-postprocess-.*' + blocking-level: 'NODE' scm: - git: url: https://gerrit.opnfv.org/gerrit/apex @@ -69,7 +79,7 @@ - string: name: NETVIRT_ARTIFACT default: distribution-karaf.tar.gz - - 'odl-netvirt-virtual-intel-defaults' + - 'apex-virtual-master-defaults' triggers: - gerrit: @@ -82,10 +92,10 @@ # comment-contains-value: 'https://jenkins.opendaylight.org/releng/job/netvirt-patch-test-current-carbon/.*?/ : UNSTABLE' # yamllint enable rule:line-length - comment-added-contains-event: - comment-contains-value: 'opnfv-test' + comment-contains-value: 'check-opnfv' projects: - project-compare-type: 'ANT' - project-pattern: '{project}' + project-pattern: '*' branches: - branch-compare-type: 'ANT' branch-pattern: '**/{branch}' @@ -94,6 +104,9 @@ builders: - description-setter: description: "Built on $NODE_NAME" + - detect-opnfv-snapshot + - inject: + properties-file: detected_snapshot - multijob: name: create-apex-vms condition: SUCCESSFUL @@ -109,6 +122,9 @@ GERRIT_PATCHSET_REVISION=$GERRIT_PATCHSET_REVISION NETVIRT_ARTIFACT=$NETVIRT_ARTIFACT APEX_ENV_NUMBER=$APEX_ENV_NUMBER + GERRIT_EVENT_COMMENT_TEXT=$GERRIT_EVENT_COMMENT_TEXT + TOPOLOGY=$TOPOLOGY + OS_VERSION=$OS_VERSION node-parameters: true kill-phase-on: FAILURE abort-all-job: true @@ -119,31 +135,57 @@ - name: 'odl-netvirt-verify-virtual-install-netvirt-{stream}' current-parameters: false predefined-parameters: | - ODL_BRANCH={branch} + ODL_BRANCH=$BRANCH BRANCH=$BRANCH GERRIT_REFSPEC=$GERRIT_REFSPEC GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER GERRIT_CHANGE_ID=$GERRIT_CHANGE_ID GERRIT_PATCHSET_NUMBER=$GERRIT_PATCHSET_NUMBER GERRIT_PATCHSET_REVISION=$GERRIT_PATCHSET_REVISION + GERRIT_PROJECT=$GERRIT_PROJECT NETVIRT_ARTIFACT=$NETVIRT_ARTIFACT + TOPOLOGY=$TOPOLOGY + OS_VERSION=$OS_VERSION node-parameters: true kill-phase-on: FAILURE abort-all-job: true - multijob: - name: functest - condition: SUCCESSFUL + name: csit + condition: ALWAYS projects: - - name: 'functest-netvirt-virtual-suite-master' + - name: cperf-apex-csit-master predefined-parameters: | - DEPLOY_SCENARIO=os-odl_l3-nofeature-ha - FUNCTEST_MODE=testcase - FUNCTEST_SUITE_NAME=odl_netvirt - RC_FILE_PATH=$HOME/cloner-info/overcloudrc + ODL_BRANCH=$BRANCH + RC_FILE_PATH=$SNAP_CACHE/overcloudrc + NODE_FILE_PATH=$SNAP_CACHE/node.yaml + SSH_KEY_PATH=$SNAP_CACHE/id_rsa + ODL_CONTAINERIZED=false + OS_VERSION=$OS_VERSION node-parameters: true kill-phase-on: FAILURE abort-all-job: false - multijob: + name: csit-collect-logs + condition: ALWAYS + projects: + - name: cperf-upload-logs-csit + predefined-parameters: | + ODL_BRANCH=$BRANCH + OS_VERSION=$OS_VERSION + node-parameters: true + kill-phase-on: FAILURE + abort-all-job: false + - multijob: + name: apex-fetch-logs + condition: ALWAYS + projects: + - name: 'apex-fetch-logs-{stream}' + current-parameters: false + node-parameters: true + kill-phase-on: NEVER + abort-all-job: true + git-revision: false + - multijob: name: postprocess condition: ALWAYS projects: @@ -182,7 +224,7 @@ - 'odl-netvirt-verify-virtual-install-netvirt-.*' - 'functest-netvirt-virtual-suite-.*' - 'odl-netvirt-verify-virtual-postprocess-.*' - block-level: 'NODE' + blocking-level: 'NODE' wrappers: - ssh-agent-wrapper @@ -206,7 +248,7 @@ - '{installer}-defaults' - string: name: DEPLOY_SCENARIO - default: 'os-odl_l2-bgpvpn-noha' + default: 'os-odl-nofeature-noha' description: 'Scenario to deploy and test' - string: name: GS_URL @@ -237,3 +279,9 @@ builders: - shell: !include-raw: ./postprocess-netvirt.sh + +- builder: + name: 'detect-opnfv-snapshot' + builders: + - shell: + !include-raw: ./detect-snapshot.sh |