From a97b6df03becc572ae29403b6069cc1496517088 Mon Sep 17 00:00:00 2001 From: Tim Rozet Date: Thu, 12 Jul 2018 10:32:40 -0400 Subject: Apex: Allow for multi-version snapshots This patch adds ability to manage multiple snapshot versions. We want to be able to have snapshots for noha and ha for multiple OS releases. This adds that capability and updates the deploy script to be able to deploy them. Also a user can specify which scenario to trigger with his ODL netvirt commit by doing 'opnfv-check - Change-Id: I3884b41c86b55c187becfb83ef62f3431724d09e Signed-off-by: Tim Rozet --- jjb/3rd_party_ci/odl-netvirt.yaml | 3 ++- jjb/apex/apex-snapshot-deploy.sh | 27 +++++++++++++++++++++++++-- jjb/apex/apex.yaml | 13 ++++++++++--- jjb/apex/apex.yaml.j2 | 13 ++++++++++--- 4 files changed, 47 insertions(+), 9 deletions(-) diff --git a/jjb/3rd_party_ci/odl-netvirt.yaml b/jjb/3rd_party_ci/odl-netvirt.yaml index a326af42e..c78de9bdf 100644 --- a/jjb/3rd_party_ci/odl-netvirt.yaml +++ b/jjb/3rd_party_ci/odl-netvirt.yaml @@ -92,7 +92,7 @@ # 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}' @@ -119,6 +119,7 @@ GERRIT_PATCHSET_REVISION=$GERRIT_PATCHSET_REVISION NETVIRT_ARTIFACT=$NETVIRT_ARTIFACT APEX_ENV_NUMBER=$APEX_ENV_NUMBER + GERRIT_EVENT_COMMENT_TEXT=$GERRIT_EVENT_COMMENT_TEXT node-parameters: true kill-phase-on: FAILURE abort-all-job: true diff --git a/jjb/apex/apex-snapshot-deploy.sh b/jjb/apex/apex-snapshot-deploy.sh index 0760626e3..0a475062c 100644 --- a/jjb/apex/apex-snapshot-deploy.sh +++ b/jjb/apex/apex-snapshot-deploy.sh @@ -25,9 +25,31 @@ pushd ci > /dev/null sudo opnfv-clean popd > /dev/null +echo "Detecting requested OpenStack branch and topology type in gerrit comment" +parsed_comment=$(echo $GERRIT_EVENT_COMMENT_TEXT | sed -n 's/^opnfv-check\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 + IFS='-' read -r -a array <<< "$parsed_comment" + os_version=${array[0]} + topo=${array[1]} + 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 + +full_snap_url=http://$GS_URL/${os_version}/${topo} + echo "Downloading latest snapshot properties file" -if ! wget -O $WORKSPACE/opnfv.properties http://$GS_URL/snapshot.properties; then - echo "ERROR: Unable to find snapshot.properties at ${GS_URL}...exiting" +if ! wget -O $WORKSPACE/opnfv.properties ${full_snap_url}/snapshot.properties; then + echo "ERROR: Unable to find snapshot.properties at ${full_snap_url}...exiting" exit 1 fi @@ -39,6 +61,7 @@ if [ -z "$latest_snap_checksum" ]; then fi local_snap_checksum="" +SNAP_CACHE=${SNAP_CACHE}/${os_version}/${topo} # check snap cache directory exists # if snapshot cache exists, find the checksum diff --git a/jjb/apex/apex.yaml b/jjb/apex/apex.yaml index bf5f067d8..773577f97 100644 --- a/jjb/apex/apex.yaml +++ b/jjb/apex/apex.yaml @@ -8,7 +8,7 @@ - 'apex-virtual-{stream}' - 'apex-deploy-{platform}-{stream}' - 'apex-daily-{stream}' - - 'apex-csit-promote-daily-{stream}-os-{os_version}' + - 'apex-csit-promote-daily-{stream}-os-{os_version}-{topology}' - 'apex-fdio-promote-daily-{stream}' - 'apex-{scenario}-baremetal-{scenario_stream}' - 'apex-testsuite-{scenario}-baremetal-{scenario_stream}' @@ -209,6 +209,9 @@ - 'master': os_scenario: 'nofeature' + topology: + - 'noha' + - 'ha' # Fetch Logs Job - job-template: @@ -779,7 +782,7 @@ # CSIT promote - job-template: - name: 'apex-csit-promote-daily-{stream}-os-{os_version}' + name: 'apex-csit-promote-daily-{stream}-os-{os_version}-{topology}' # Job template for promoting CSIT Snapshots # @@ -807,6 +810,10 @@ name: PROMOTE default: 'True' description: "Used for overriding the PROMOTE" + - string: + name: GS_URL + default: $GS_BASE{gs-pathname}/{os_version}/{topology} + description: "User for overriding GS_URL from apex params" properties: - build-blocker: @@ -828,7 +835,7 @@ - name: 'apex-virtual-{stream}' current-parameters: true predefined-parameters: | - DEPLOY_SCENARIO=os-odl-{os_scenario}-noha + DEPLOY_SCENARIO=os-odl-{os_scenario}-{topology} OPNFV_CLEAN=yes GERRIT_BRANCH=$GERRIT_BRANCH GERRIT_REFSPEC=$GERRIT_REFSPEC diff --git a/jjb/apex/apex.yaml.j2 b/jjb/apex/apex.yaml.j2 index df825d82e..bc2c379a9 100644 --- a/jjb/apex/apex.yaml.j2 +++ b/jjb/apex/apex.yaml.j2 @@ -8,7 +8,7 @@ - 'apex-virtual-{stream}' - 'apex-deploy-{platform}-{stream}' - 'apex-daily-{stream}' - - 'apex-csit-promote-daily-{stream}-os-{os_version}' + - 'apex-csit-promote-daily-{stream}-os-{os_version}-{topology}' - 'apex-fdio-promote-daily-{stream}' - 'apex-{scenario}-baremetal-{scenario_stream}' - 'apex-testsuite-{scenario}-baremetal-{scenario_stream}' @@ -81,6 +81,9 @@ - 'master': os_scenario: 'nofeature' + topology: + - 'noha' + - 'ha' # Fetch Logs Job - job-template: @@ -651,7 +654,7 @@ # CSIT promote - job-template: - name: 'apex-csit-promote-daily-{stream}-os-{os_version}' + name: 'apex-csit-promote-daily-{stream}-os-{os_version}-{topology}' # Job template for promoting CSIT Snapshots # @@ -679,6 +682,10 @@ name: PROMOTE default: 'True' description: "Used for overriding the PROMOTE" + - string: + name: GS_URL + default: $GS_BASE{gs-pathname}/{os_version}/{topology} + description: "User for overriding GS_URL from apex params" properties: - build-blocker: @@ -700,7 +707,7 @@ - name: 'apex-virtual-{stream}' current-parameters: true predefined-parameters: | - DEPLOY_SCENARIO=os-odl-{os_scenario}-noha + DEPLOY_SCENARIO=os-odl-{os_scenario}-{topology} OPNFV_CLEAN=yes GERRIT_BRANCH=$GERRIT_BRANCH GERRIT_REFSPEC=$GERRIT_REFSPEC -- cgit 1.2.3-korg