Workarounds for continuous build implementation

main
Gunnar Kudrjavets 9 years ago
parent 8cd9f04feb
commit aa432be4b9
  1. 60
      build_tools/cont_integration.sh

@ -8,16 +8,58 @@
# for a certain interval. # for a certain interval.
# #
SRC_GIT_REPO=/data/git/rocksdb
error=0
function log { function log {
DATE=`date +%Y-%m-%d:%H:%M:%S` DATE=`date +%Y-%m-%d:%H:%M:%S`
echo $DATE $@ echo $DATE $@
} }
function log_err { function log_err {
log "ERROR: $@ Error code: $?." log "ERROR: $@ Error code: $error."
} }
function update_repo_status { 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 "Starting to monitor for new RocksDB changes ..."
log "Running under `pwd` as `whoami`." log "Running under `pwd` as `whoami`."
git remote -v
git status
# Paranoia. Make sure that we're using the right branch. # Paranoia. Make sure that we're using the right branch.
git checkout master 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!" log_err "This is not good. Can't checkout master. Bye-bye!"
exit 1 exit 1
fi fi
@ -49,9 +89,10 @@ fi
while true; while true;
do do
# Get the latest changes committed. # 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; }'` LAST_COMMIT=`git log -1 | head -1 | grep commit | awk '{ print $2; }'`
log "Last commit is '$LAST_COMMIT', previous commit is '$PREV_COMMIT'." log "Last commit is '$LAST_COMMIT', previous commit is '$PREV_COMMIT'."
@ -73,7 +114,8 @@ do
# #
POST_RECEIVE_HOOK=1 php $CONTRUN_DETERMINATOR POST_RECEIVE_HOOK=1 php $CONTRUN_DETERMINATOR
if [ $? -eq 0 ]; then error=$?
if [ $error -eq 0 ]; then
log "Sandcastle run successfully triggered." log "Sandcastle run successfully triggered."
else else
log_err "Failed to trigger Sandcastle run." log_err "Failed to trigger Sandcastle run."
@ -83,7 +125,7 @@ do
fi fi
fi fi
else 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 fi
# Always sleep, even if errors happens while trying to determine the latest # Always sleep, even if errors happens while trying to determine the latest

Loading…
Cancel
Save