Workarounds for continuous build implementation

This commit is contained in:
Gunnar Kudrjavets 2016-06-23 11:52:31 -07:00
parent 8cd9f04feb
commit aa432be4b9

View file

@ -8,16 +8,58 @@
# for a certain interval.
#
SRC_GIT_REPO=/data/git/rocksdb
error=0
function log {
DATE=`date +%Y-%m-%d:%H:%M:%S`
echo $DATE $@
}
function log_err {
log "ERROR: $@ Error code: $?."
log "ERROR: $@ Error code: $error."
}
function update_repo_status {
# Update the parent first.
pushd $SRC_GIT_REPO
# This is a fatal error. Something in the environment isn't right and we will
# terminate the execution.
error=$?
if [ ! $error -eq 0 ]; then
log_err "Where is $SRC_GIT_REPO?"
exit $error
fi
HTTPS_PROXY=fwdproxy:8080 git fetch -f
error=$?
if [ ! $error -eq 0 ]; then
log_err "git fetch -f failed."
popd
return $error
fi
git update-ref refs/heads/master refs/remotes/origin/master
error=$?
if [ ! $error -eq 0 ]; then
log_err "git update-ref failed."
popd
return $error
fi
popd
# We're back in an instance-specific directory. Get the latest changes.
git pull --rebase
error=$?
if [ ! $error -eq 0 ]; then
log_err "git pull --rebase failed."
return $error
fi
}
#
@ -33,13 +75,11 @@ PREV_COMMIT=
log "Starting to monitor for new RocksDB changes ..."
log "Running under `pwd` as `whoami`."
git remote -v
git status
# Paranoia. Make sure that we're using the right branch.
git checkout master
if [ ! $? -eq 0 ]; then
error=$?
if [ ! $error -eq 0 ]; then
log_err "This is not good. Can't checkout master. Bye-bye!"
exit 1
fi
@ -49,9 +89,10 @@ fi
while true;
do
# Get the latest changes committed.
git pull --rebase
update_repo_status
if [ $? -eq 0 ]; then
error=$?
if [ $error -eq 0 ]; then
LAST_COMMIT=`git log -1 | head -1 | grep commit | awk '{ print $2; }'`
log "Last commit is '$LAST_COMMIT', previous commit is '$PREV_COMMIT'."
@ -73,7 +114,8 @@ do
#
POST_RECEIVE_HOOK=1 php $CONTRUN_DETERMINATOR
if [ $? -eq 0 ]; then
error=$?
if [ $error -eq 0 ]; then
log "Sandcastle run successfully triggered."
else
log_err "Failed to trigger Sandcastle run."
@ -83,7 +125,7 @@ do
fi
fi
else
log_err "git pull --rebase failed. Will skip running tests for now."
log_err "Getting latest changes failed. Will skip running tests for now."
fi
# Always sleep, even if errors happens while trying to determine the latest