diff options
author | Markos Chandras <mchandras@suse.de> | 2018-04-06 15:30:17 +0100 |
---|---|---|
committer | Markos Chandras <mchandras@suse.de> | 2018-04-06 15:33:28 +0100 |
commit | 9743bf690567b2cf1fc079768a32213717e297e2 (patch) | |
tree | de7f4a7ae2b1c22e0f6e0a1640f75b40afa0a85a /jjb/xci | |
parent | e876599edaaa4ab25a8f4160ef9dc7b3cc97b62f (diff) |
jjb: xci: Only set default scenario if no scenario is set
Previously, the code was already setting the default scenario if we had
changes outside the xci/scenario directory. However, this is somewhat
problematic since scenarios may touch other files which do not necessary
affect other scenarios such as anything in xci/playbooks etc. As such,
lets only set a default scenario if no scenario was set up to that
point. However, since installers and scenarios need to match, we also
need to consider installer changes because we fallback to the default
scenario. Finally, since we are filtering results with 'uniq' we can
simply drop the bash regexps prior to adding the scenario to the array.
Change-Id: Ie961071b3e93d04a860bb6655513654208b1a9d4
Signed-off-by: Markos Chandras <mchandras@suse.de>
Diffstat (limited to 'jjb/xci')
-rwxr-xr-x | jjb/xci/xci-set-scenario.sh | 18 |
1 files changed, 11 insertions, 7 deletions
diff --git a/jjb/xci/xci-set-scenario.sh b/jjb/xci/xci-set-scenario.sh index 3e64ab140..9cb940763 100755 --- a/jjb/xci/xci-set-scenario.sh +++ b/jjb/xci/xci-set-scenario.sh @@ -97,22 +97,26 @@ function determine_generic_scenario() { # get the changeset cd $WORKSPACE SCENARIOS=$(git diff HEAD^..HEAD --name-only -- 'xci/scenarios' | cut -d "/" -f 3 | uniq) - # We need to set default scenario for changes that do not mess with scenarios - NO_SCENARIOS=$(git diff HEAD^..HEAD --name-only | grep -v 'xci/scenarios' | cut -d "/" -f 3 | uniq) + # We need to set default scenario for changes that mess with installers + INSTALLERS=$(git diff HEAD^..HEAD --name-only -- 'xci/installer' | cut -d "/" -f 3 | uniq) for CHANGED_SCENARIO in $SCENARIOS; do - [[ ${DEPLOY_SCENARIO[@]} =~ $CHANGED_SCENARIO ]] || DEPLOY_SCENARIO[${#DEPLOY_SCENARIO[@]}]=$CHANGED_SCENARIO + DEPLOY_SCENARIO[${#DEPLOY_SCENARIO[@]}]=$CHANGED_SCENARIO done - for CHANGED_FILE in $NO_SCENARIOS; do - case $CHANGED_FILE in + for CHANGED_INSTALLER in $INSTALLERS; do + case $CHANGED_INSTALLER in kubespray) - [[ ${DEPLOY_SCENARIO[@]} =~ "k8-nosdn-nofeature" ]] || DEPLOY_SCENARIO[${#DEPLOY_SCENARIO[@]}]='k8-nosdn-nofeature' + DEPLOY_SCENARIO[${#DEPLOY_SCENARIO[@]}]='k8-nosdn-nofeature' ;; # Default case (including OSA changes) *) - [[ ${DEPLOY_SCENARIO[@]} =~ "os-nosdn-nofeature" ]] || DEPLOY_SCENARIO[${#DEPLOY_SCENARIO[@]}]='os-nosdn-nofeature' + DEPLOY_SCENARIO[${#DEPLOY_SCENARIO[@]}]='os-nosdn-nofeature' ;; esac done + # For all other changes, we only need to set a default scenario if it's not set already + if git diff HEAD^..HEAD --name-only | grep -q -v 'xci/installer\|xci/scenario'; then + [[ ${#DEPLOY_SCENARIO[@]} -gt 0 ]] && DEPLOY_SCENARIO[${#DEPLOY_SCENARIO[@]}]='os-nosdn-nofeature' + fi # extract releng-xci sha XCI_SHA=$(cd $WORKSPACE && git rev-parse HEAD) |