X-Git-Url: https://gerrit.opnfv.org/gerrit/gitweb?a=blobdiff_plain;f=docker%2Fexec_tests.sh;h=93e017f49a0a3f22a1adbe5d1d2057c69e89bf4e;hb=b583d4bfe6bc49e0f3bf4beec6612390a1d4bd24;hp=9726e2b4ac6fa4efa86161c2fa76cee9ce47c805;hpb=a6eed7930c01d59b8511edec76cdae8c9ef5c94a;p=yardstick.git diff --git a/docker/exec_tests.sh b/docker/exec_tests.sh index 9726e2b4a..93e017f49 100755 --- a/docker/exec_tests.sh +++ b/docker/exec_tests.sh @@ -17,39 +17,89 @@ set -e : ${RELENG_REPO:='https://gerrit.opnfv.org/gerrit/releng'} : ${RELENG_REPO_DIR:='/home/opnfv/repos/releng'} # TEMP HACK to freeze releng version to workaround fetch_os_creds.sh problem -: ${RELENG_BRANCH:='abbf19f'} # branch, tag, sha1 or refspec +: ${RELENG_BRANCH:='master'} # branch, tag, sha1 or refspec + +# git update using reference as a branch. +# git_update_branch ref +function git_update_branch { + local git_branch=$1 + + git checkout -f origin/${git_branch} + # a local branch might not exist + git branch -D ${git_branch} || true + git checkout -b ${git_branch} +} + +# git update using reference as a branch. +# git_update_remote_branch ref +function git_update_remote_branch { + local git_branch=$1 + + git checkout -b ${git_branch} -t origin/${git_branch} +} + +# git update using reference as a tag. Be careful editing source at that repo +# as working copy will be in a detached mode +# git_update_tag ref +function git_update_tag { + local git_tag=$1 + + git tag -d ${git_tag} + # fetching given tag only + git fetch origin tag ${git_tag} + git checkout -f ${git_tag} +} + + +# OpenStack Functions git_checkout() { - if git cat-file -e $1^{commit} 2>/dev/null; then - # branch, tag or sha1 object - git checkout $1 && git pull - else + local git_ref=$1 + if [[ -n "$(git show-ref refs/tags/${git_ref})" ]]; then + git_update_tag "${git_ref}" + elif [[ -n "$(git show-ref refs/heads/${git_ref})" ]]; then + git_update_branch "${git_ref}" + elif [[ -n "$(git show-ref refs/remotes/origin/${git_ref})" ]]; then + git_update_remote_branch "${git_ref}" + # check to see if it is a remote ref + elif git fetch --tags origin "${git_ref}"; then # refspec / changeset - git fetch --tags --progress $2 $1 git checkout FETCH_HEAD + else + # if we are a random commit id we have to unshallow + # to get all the commits + git fetch --unshallow origin + git checkout -f "${git_ref}" fi } echo -echo "INFO: Updating releng -> $RELENG_BRANCH" -if [ ! -d $RELENG_REPO_DIR ]; then - git clone $RELENG_REPO $RELENG_REPO_DIR +echo "INFO: Updating releng -> ${RELENG_BRANCH}" +if [ ! -d ${RELENG_REPO_DIR} ]; then + git clone ${RELENG_REPO} ${RELENG_REPO_DIR} fi -cd $RELENG_REPO_DIR -git checkout master -git_checkout $RELENG_BRANCH $RELENG_REPO +cd ${RELENG_REPO_DIR} +# reset remote so we know origin is valid +git remote set-url origin ${RELENG_REPO} +# fetch the exact ref +git fetch --tags origin ${RELENG_BRANCH} || true +# purge pyc files +find . -name '*.pyc' -delete +git_checkout ${RELENG_BRANCH} echo -echo "INFO: Updating yardstick -> $YARDSTICK_BRANCH" -if [ ! -d $YARDSTICK_REPO_DIR ]; then - git clone $YARDSTICK_REPO $YARDSTICK_REPO_DIR +echo "INFO: Updating yardstick -> ${YARDSTICK_BRANCH}" +if [ ! -d ${YARDSTICK_REPO_DIR} ]; then + git clone ${YARDSTICK_REPO} ${YARDSTICK_REPO_DIR} fi -cd $YARDSTICK_REPO_DIR -git_checkout $YARDSTICK_BRANCH $YARDSTICK_REPO +cd ${YARDSTICK_REPO_DIR} +git_checkout ${YARDSTICK_BRANCH} -# setup the environment -source $YARDSTICK_REPO_DIR/tests/ci/prepare_env.sh +if [[ "${DEPLOY_SCENARIO:0:2}" == "os" ]];then + # setup the environment + source ${YARDSTICK_REPO_DIR}/tests/ci/prepare_env.sh +fi # execute tests -$YARDSTICK_REPO_DIR/tests/ci/yardstick-verify $@ +${YARDSTICK_REPO_DIR}/tests/ci/yardstick-verify $@