From 4fc988b325df2d028463bef72820850b8d3111d7 Mon Sep 17 00:00:00 2001 From: Panagiotis Karalis Date: Wed, 29 May 2019 16:27:11 +0300 Subject: Get XCI_FLAVOR as parameter from the commit msg When a new patch is pushed on releng-xci repo and the impact is not related to XCI_FLAVOR=mini, the environment preparation of CI should be done, choosing as XCI_FLAVOR noha or ha. This patch allows to get the XCI_FLAVOR parameter from commit message and specifically from xci-flavor parameter. Change-Id: Id5215e3fab1fc308435781204a6ed721a9c5a0c7 Signed-off-by: Panagiotis Karalis --- jjb/xci/xci-set-scenario.sh | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/jjb/xci/xci-set-scenario.sh b/jjb/xci/xci-set-scenario.sh index 59c1ebf6e..2c35f2780 100755 --- a/jjb/xci/xci-set-scenario.sh +++ b/jjb/xci/xci-set-scenario.sh @@ -153,6 +153,45 @@ function determine_scenario() { SCENARIO_SHA=$(cd $WORK_DIRECTORY/$GERRIT_PROJECT && git rev-parse HEAD) } +# This function allows developers to specify the specific XCI flavor for the +# impacted scenario by adding the XCI Flavor info about the specific scenario. +# This results in either skipping the real verification +# totally or skipping the determining the installer and scenario programmatically. +# It is important to note that this feature is only available to generic scenarios +# and only single installer/scenario pair is allowed. +# The input in commit message should be placed at the end of the commit message body, +# before the signed-off and change-id lines. +# +# Pattern to be searched in Commit Message +# xci-flavor: +# Examples: +# xci-flavor:noha +function override_xci_flavor() { + echo "Processing $GERRIT_PROJECT patchset $GERRIT_REFSPEC" + + # process commit message for XCI Flavor + if [[ "$GERRIT_CHANGE_COMMIT_MESSAGE" =~ "xci-flavor:" ]]; then + XCI_FLAVOR=$(echo $GERRIT_CHANGE_COMMIT_MESSAGE | awk '/xci-flavor:/' RS=" " | cut -d":" -f2) + + if [[ -z "$XCI_FLAVOR" ]]; then + XCI_FLAVOR='mini' + echo "XCI flavor is not specified. The default is specified instead (i.e. mini). Falling back to programmatically determining them." + echo "XCI_FLAVOR=mini" >> $WORK_DIRECTORY/scenario.properties + exit 0 + else + echo "Recording the XCI flavor '$XCI_FLAVOR' for downstream jobs" + echo "XCI_FLAVOR=$XCI_FLAVOR" >> $WORK_DIRECTORY/scenario.properties + exit 0 + fi + else + XCI_FLAVOR='mini' + echo "XCI flavor is not specified. The default is specified instead (i.e. mini). Falling back to programmatically determining them." + echo "XCI_FLAVOR=mini" >> $WORK_DIRECTORY/scenario.properties + exit 0 + fi + +} + echo "Determining the impacted scenario" declare -a DEPLOY_SCENARIO @@ -169,6 +208,7 @@ if [[ $GERRIT_PROJECT == "releng-xci" ]]; then determine_default_scenario else determine_scenario + override_xci_flavor fi override_scenario -- cgit 1.2.3-korg