Markus Pesch
f3c90af2b7
All checks were successful
continuous-integration/drone/push Build is passing
45 lines
1.7 KiB
Bash
Executable File
45 lines
1.7 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
set -e
|
|
|
|
GIT_FETCH_ARGS=""
|
|
GIT_CHECKOUT_ARGS=""
|
|
|
|
if [[ -n "${PLUGIN_DEPTH}" ]]; then
|
|
GIT_FETCH_ARGS="${GIT_FETCH_ARGS} --depth=${PLUGIN_DEPTH}"
|
|
fi
|
|
|
|
if [ ! -d .git ]; then
|
|
git init
|
|
git remote add origin "${DRONE_REMOTE_URL}"
|
|
fi
|
|
|
|
# the branch may be empty for certain event types,
|
|
# such as github deployment events. If the branch
|
|
# is empty we checkout the sha directly. Note that
|
|
# we intentially omit depth flags to avoid failed
|
|
# clones due to lack of history.
|
|
if [[ -z "${DRONE_COMMIT_BRANCH}" ]] && [[ -n "${DRONE_COMMIT_SHA}" ]]; then
|
|
GIT_CHECKOUT_ARGS="${GIT_CHECKOUT_ARGS} --quiet --force ${DRONE_COMMIT_SHA}"
|
|
GIT_FETCH_ARGS="${GIT_FETCH_ARGS} origin"
|
|
fi
|
|
|
|
# the commit sha may be empty for builds that are
|
|
# manually triggered in Harness CI Enterprise. If
|
|
# the commit is empty we clone the branch.
|
|
if [[ -n "${DRONE_COMMIT_BRANCH}" ]] && [[ -z "${DRONE_COMMIT_SHA}" ]]; then
|
|
GIT_CHECKOUT_ARGS="${GIT_CHECKOUT_ARGS} -b ${DRONE_COMMIT_BRANCH} refs/remotes/origin/${DRONE_COMMIT_BRANCH}"
|
|
GIT_FETCH_ARGS="${GIT_FETCH_ARGS} origin +refs/heads/${DRONE_COMMIT_BRANCH}:refs/remotes/origin/${DRONE_COMMIT_BRANCH}"
|
|
fi
|
|
|
|
# if the commit sha and branch name not empty, fetch the branch even if a
|
|
# fast-forward is not possible. Checkout the specified commit sha which must be
|
|
# part of the branch.
|
|
if [[ -n "${DRONE_COMMIT_BRANCH}" ]] && [[ -n "${DRONE_COMMIT_SHA}" ]]; then
|
|
GIT_CHECKOUT_ARGS="${GIT_CHECKOUT_ARGS} ${DRONE_COMMIT_SHA} -b refs/remotes/origin/${DRONE_COMMIT_BRANCH}"
|
|
GIT_FETCH_ARGS="${GIT_FETCH_ARGS} origin +refs/heads/${DRONE_COMMIT_BRANCH}:refs/remotes/origin/${DRONE_COMMIT_BRANCH}"
|
|
fi
|
|
|
|
git fetch ${GIT_FETCH_ARGS}
|
|
git checkout ${GIT_CHECKOUT_ARGS}
|