X-Git-Url: https://gerrit.nordix.org/gitweb?a=blobdiff_plain;f=jjb%2Fcloud-infra%2Fdetermine-scenario.sh;h=77d6c9bcb50810d4644b2fe6e74b4ac93b7f4b4e;hb=68c9c79b9ad904d2a74ad43c7bbb9c6e65dea9ed;hp=d3ef11f7850b0f2a881f4f49e9268fef9bd61570;hpb=fcf1625b33c598f764eac0bcd21d98568683abab;p=infra%2Fcicd.git diff --git a/jjb/cloud-infra/determine-scenario.sh b/jjb/cloud-infra/determine-scenario.sh index d3ef11f7..77d6c9bc 100644 --- a/jjb/cloud-infra/determine-scenario.sh +++ b/jjb/cloud-infra/determine-scenario.sh @@ -25,28 +25,38 @@ set -o pipefail # this function processes commit message to determine the impacted scenario # using the input provided by the committer. # -# installer type and scenario should be placed at the beginning of lines -# separately and the format of the entry in commit message is as below +# provisioner type, installer type and scenario should be placed at the beginning of +# lines separately and the format of the entry in commit message is as below # +# provisioner-type: # installer-type: # deploy-scenario: # # example is # +# provisioner-type: bifrost # installer-type: kubespray # deploy-scenario: k8-calico-nofeature function override_installer_scenario() { - echo "Processing $GERRIT_PROJECT patchset $GERRIT_REFSPEC to determine the installer and the scenario" + echo "Info: Processing $GERRIT_PROJECT patchset $GERRIT_REFSPEC to determine the provisioner, installer and, scenario" cd $WORKSPACE COMMIT_MESSAGE=$(git show -s --format=%B) + if [[ "$COMMIT_MESSAGE" =~ "provisioner-type:" ]]; then + # we support heat as well so ensure we capture it + export PROVISIONER_TYPE=$(echo "$COMMIT_MESSAGE" | grep '^provisioner-type:' | cut -d":" -f2 | sed 's/\s*//g') + else + # default is almost always bifrost + export PROVISIONER_TYPE=bifrost + fi + if [[ "$COMMIT_MESSAGE" =~ "deploy-scenario:" && "$COMMIT_MESSAGE" =~ "installer-type:" ]]; then export INSTALLER_TYPE=$(echo "$COMMIT_MESSAGE" | grep '^installer-type:' | cut -d":" -f2 | sed 's/\s*//g') export DEPLOY_SCENARIO=$(echo "$COMMIT_MESSAGE" | grep '^deploy-scenario:' | cut -d":" -f2 | sed 's/\s*//g') + write_change_metadata else - echo "Installer type or deploy scenario is not specified." - echo "Falling back to programmatically determining them." - determine_scenario + echo "Info: Installer type or deploy scenario is not specified." + echo "Info: Falling back to programmatically determining them." fi } @@ -55,33 +65,49 @@ function override_installer_scenario() { # touched. # TODO: this is not implented yet. function determine_scenario() { - echo "Processing $GERRIT_PROJECT patchset $GERRIT_REFSPEC" - cd $WORKSPACE - COMMIT_MESSAGE=$(git show -s --format=%B) - echo "Not implemented!" - exit 1 + # for infra/engine repo, we set INSTALLER_TYPE and DEPLOY_SCENARIO to their defaults + echo "Info: Processing $GERRIT_PROJECT patchset $GERRIT_REFSPEC" + if [[ "$GERRIT_PROJECT" == "infra/engine" ]]; then + echo "Info: Setting INSTALLER_TYPE and DEPLOY_SCENARIO to defaults for project $GERRIT_PROJECT patchset $GERRIT_REFSPEC" + export PROVISIONER_TYPE=bifrost + export INSTALLER_TYPE=kubespray + export DEPLOY_SCENARIO=k8-calico-nofeature + write_change_metadata + else + cd $WORKSPACE + COMMIT_MESSAGE=$(git show -s --format=%B) + echo "Info: Not implemented!" + exit 1 + fi } -echo "Determining the impacted scenario and used installer" - -declare -a DEPLOY_SCENARIO -declare -a INSTALLER_TYPE -export PROJECT_GIT_URL=$GIT_BASE_HTTPS/$GERRIT_PROJECT - -override_installer_scenario - -echo "Writing change metadata to $WORKSPACE/change.properties" -cat << EOF > $WORKSPACE/change.properties +function write_change_metadata() { + echo "Info: Writing change metadata to $WORKSPACE/change.properties" + cat << EOF > $WORKSPACE/change.properties PROJECT_GIT_URL=$GIT_BASE_HTTPS/$GERRIT_PROJECT -DEPLOY_SCENARIO=$DEPLOY_SCENARIO +PROVISIONER_TYPE=$PROVISIONER_TYPE INSTALLER_TYPE=$INSTALLER_TYPE +DEPLOY_SCENARIO=$DEPLOY_SCENARIO GERRIT_PATCHSET_REVISION=$GERRIT_PATCHSET_REVISION -GERRIT_REFSPEC=$GERRIT_REFSPEC= +GERRIT_REFSPEC=$GERRIT_REFSPEC EOF -echo "Content of change.properties" -echo "-------------------------------------------------------------------------" -cat $WORKSPACE/change.properties -echo "-------------------------------------------------------------------------" + echo "Info: Content of change.properties" + echo "-------------------------------------------------------------------------" + cat $WORKSPACE/change.properties + echo "-------------------------------------------------------------------------" + + # need to exit here to ensure we don't go further while determining scenario + exit 0 +} + +echo "Info: Determining the provisioner, installer, and scenario" + +declare -a PROVISIONER_TYPE +declare -a INSTALLER_TYPE +declare -a DEPLOY_SCENARIO + +override_installer_scenario +determine_scenario # vim: set ts=2 sw=2 expandtab: