add mirror repo example
This commit is contained in:
parent
afce71d8cf
commit
244712f88a
|
@ -0,0 +1,38 @@
|
|||
#!/bin/bash
|
||||
set -u
|
||||
set -e
|
||||
|
||||
my_mirror=git.example.com/org/project
|
||||
echo "Mirroring ${GIT_REPO_ID}#${GIT_REF_NAME} to $my_mirror ..."
|
||||
|
||||
# See the Git Credentials Cheat Sheet
|
||||
# https://coolaj86.com/articles/vanilla-devops-git-credentials-cheatsheet/
|
||||
if [[ ! -d "$HOME/git-mirrors/${GIT_REPO_ID}" ]]; then
|
||||
mkdir -p "$(dirname "$HOME/git-mirrors/${GIT_REPO_ID}")"
|
||||
git clone "${GIT_CLONE_URL}" "$HOME/git-mirrors/${GIT_REPO_ID}"
|
||||
pushd "$HOME/git-mirrors/${GIT_REPO_ID}"
|
||||
git remote add mirror ssh://git@${my_mirror}.git
|
||||
git fetch --all
|
||||
popd
|
||||
fi
|
||||
|
||||
pushd "${HOME}/git-mirrors/${GIT_REPO_ID}"
|
||||
# get a random branch name
|
||||
my_tmp="$(xxd -l8 -ps /dev/urandom)"
|
||||
# get clean
|
||||
git reset --hard HEAD
|
||||
# make a temp branch
|
||||
git checkout -b "${my_tmp}"
|
||||
# delete the existing branch, if any
|
||||
git branch -D "${GIT_REF_NAME}"
|
||||
# get updated
|
||||
git fetch --force origin
|
||||
# get the latest branch
|
||||
git checkout --force "origin/${GIT_REF_NAME}" -b "${GIT_REF_NAME}"
|
||||
# delete the temp branch
|
||||
git branch -D "${my_tmp}"
|
||||
# get the latest of this branch
|
||||
git pull --force
|
||||
# overwrite the mirror's copy
|
||||
git push --force mirror "${GIT_REF_NAME}"
|
||||
popd
|
Loading…
Reference in New Issue