Make it possible to skip steps of the build by specifying so in the
environment variable "NIGHTLY_SKIP_STEP", making it easier to debug problems in the build.
This commit is contained in:
parent
58c93d2557
commit
7877507f25
1 changed files with 160 additions and 1 deletions
|
@ -2,6 +2,19 @@
|
||||||
#
|
#
|
||||||
# Blame it on marcolz
|
# Blame it on marcolz
|
||||||
#
|
#
|
||||||
|
# Skip certain parts of this script by exporting the variable
|
||||||
|
# "NIGHTLY_SKIP_STEP" containing the following possible substrings,
|
||||||
|
# preventing the named behaviour:
|
||||||
|
#
|
||||||
|
# REDIRECT - Redirect all output to a logfile
|
||||||
|
# CHECKOUT - Fill the sandbox with a fresh cvs checkout
|
||||||
|
# BUILD - Build everything
|
||||||
|
# GENERATE - Generate a new world
|
||||||
|
# SERVERSTART - Start the server
|
||||||
|
# TESTSCRIPT - Run the testscript
|
||||||
|
# SERVERSTOP - Stop the server if it was started by this script
|
||||||
|
# CLEANUP - Remove the contents of the sandbox
|
||||||
|
#
|
||||||
|
|
||||||
# For some reason, solaris sh exits as soon as both stderr and stdout
|
# For some reason, solaris sh exits as soon as both stderr and stdout
|
||||||
# are redirected to file at the exec, so if we run on solaris, use ksh
|
# are redirected to file at the exec, so if we run on solaris, use ksh
|
||||||
|
@ -56,10 +69,24 @@ WORKDIR="${EMPTARGET}.${ARCH}"
|
||||||
[ -n "${EXTRASUFFIX}" ] && WORKDIR="${WORKDIR}.${EXTRASUFFIX}"
|
[ -n "${EXTRASUFFIX}" ] && WORKDIR="${WORKDIR}.${EXTRASUFFIX}"
|
||||||
LOGFILE="${LOGDIR}/${WORKDIR}.${STAMP}"
|
LOGFILE="${LOGDIR}/${WORKDIR}.${STAMP}"
|
||||||
|
|
||||||
|
#
|
||||||
|
# START REDIRECT
|
||||||
|
#
|
||||||
|
case "${NIGHTLY_SKIP_STEP}"
|
||||||
|
in
|
||||||
|
*REDIRECT*) ;;
|
||||||
|
*)
|
||||||
|
|
||||||
# Log everything
|
# Log everything
|
||||||
exec > "${LOGFILE}"
|
exec > "${LOGFILE}"
|
||||||
exec 2>&1
|
exec 2>&1
|
||||||
|
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
#
|
||||||
|
# END REDIRECT
|
||||||
|
#
|
||||||
|
|
||||||
case "${BOXDIR}"
|
case "${BOXDIR}"
|
||||||
in
|
in
|
||||||
/*)
|
/*)
|
||||||
|
@ -74,8 +101,15 @@ cd "${BOXDIR}" || err "Could not chdir to ${BOXDIR}"
|
||||||
echo "Nightly build starting at `date`"
|
echo "Nightly build starting at `date`"
|
||||||
|
|
||||||
|
|
||||||
# Make sandbox
|
#
|
||||||
|
# START CHECKOUT
|
||||||
|
#
|
||||||
|
case "${NIGHTLY_SKIP_STEP}"
|
||||||
|
in
|
||||||
|
*CHECKOUT*) ;;
|
||||||
|
*)
|
||||||
|
|
||||||
|
# Make sandbox
|
||||||
mkdir "${WORKDIR}" || warn "Could not create ${BOXDIR}/${WORKDIR}"
|
mkdir "${WORKDIR}" || warn "Could not create ${BOXDIR}/${WORKDIR}"
|
||||||
cd "${WORKDIR}" || err "Could not cd to ${BOXDIR}/${WORKDIR}"
|
cd "${WORKDIR}" || err "Could not cd to ${BOXDIR}/${WORKDIR}"
|
||||||
|
|
||||||
|
@ -91,6 +125,20 @@ done
|
||||||
echo "Done (CVS)."
|
echo "Done (CVS)."
|
||||||
echo ""
|
echo ""
|
||||||
|
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
#
|
||||||
|
# END CHECKOUT
|
||||||
|
#
|
||||||
|
|
||||||
|
#
|
||||||
|
# START PATCH
|
||||||
|
#
|
||||||
|
case "${NIGHTLY_SKIP_STEP}"
|
||||||
|
in
|
||||||
|
*PATCH*) ;;
|
||||||
|
*)
|
||||||
|
|
||||||
echo "Applying global patches from patches/All:"
|
echo "Applying global patches from patches/All:"
|
||||||
for i in "${SCRIPTDIR}/patches/All"/*.patch
|
for i in "${SCRIPTDIR}/patches/All"/*.patch
|
||||||
do
|
do
|
||||||
|
@ -147,6 +195,20 @@ sed -e "s,^USERNAME = .*$,USERNAME = ${EMPLOGIN}," \
|
||||||
echo "Done (build.conf)."
|
echo "Done (build.conf)."
|
||||||
echo ""
|
echo ""
|
||||||
|
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
#
|
||||||
|
# END PATCH
|
||||||
|
#
|
||||||
|
|
||||||
|
#
|
||||||
|
# START BUILD
|
||||||
|
#
|
||||||
|
case "${NIGHTLY_SKIP_STEP}"
|
||||||
|
in
|
||||||
|
*BUILD*) ;;
|
||||||
|
*)
|
||||||
|
|
||||||
# TODO: this should be fixed another way...
|
# TODO: this should be fixed another way...
|
||||||
echo "Generating empty Makedepends."
|
echo "Generating empty Makedepends."
|
||||||
touch src/client/Makedepend src/doconfig/Makedepend src/lib/as/Makedepend src/lib/commands/Makedepend src/lib/common/Makedepend src/lib/empthread/Makedepend src/lib/gen/Makedepend src/lib/global/Makedepend src/lib/lwp/Makedepend src/lib/player/Makedepend src/lib/subs/Makedepend src/lib/update/Makedepend src/server/Makedepend src/util/Makedepend || err "Could tot touch Makedepends"
|
touch src/client/Makedepend src/doconfig/Makedepend src/lib/as/Makedepend src/lib/commands/Makedepend src/lib/common/Makedepend src/lib/empthread/Makedepend src/lib/gen/Makedepend src/lib/global/Makedepend src/lib/lwp/Makedepend src/lib/player/Makedepend src/lib/subs/Makedepend src/lib/update/Makedepend src/server/Makedepend src/util/Makedepend || err "Could tot touch Makedepends"
|
||||||
|
@ -162,9 +224,23 @@ fi
|
||||||
echo "Done (make)."
|
echo "Done (make)."
|
||||||
echo ""
|
echo ""
|
||||||
|
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
#
|
||||||
|
# END BUILD
|
||||||
|
#
|
||||||
|
|
||||||
# Try to run startup utilities
|
# Try to run startup utilities
|
||||||
for onetime in 1
|
for onetime in 1
|
||||||
do
|
do
|
||||||
|
#
|
||||||
|
# START GENERATE
|
||||||
|
#
|
||||||
|
case "${NIGHTLY_SKIP_STEP}"
|
||||||
|
in
|
||||||
|
*GENERATE*) ;;
|
||||||
|
*)
|
||||||
|
|
||||||
if [ -d ../emp4 -a -d ../emp4/bin -a -d ../emp4/data ]
|
if [ -d ../emp4 -a -d ../emp4/bin -a -d ../emp4/data ]
|
||||||
then
|
then
|
||||||
echo "Directory structure is ok"
|
echo "Directory structure is ok"
|
||||||
|
@ -187,6 +263,20 @@ do
|
||||||
echo "Done (files & fairland)."
|
echo "Done (files & fairland)."
|
||||||
echo ""
|
echo ""
|
||||||
|
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
#
|
||||||
|
# END GENERATE
|
||||||
|
#
|
||||||
|
|
||||||
|
#
|
||||||
|
# START SERVERSTART
|
||||||
|
#
|
||||||
|
case "${NIGHTLY_SKIP_STEP}"
|
||||||
|
in
|
||||||
|
*SERVERSTART*) ;;
|
||||||
|
*)
|
||||||
|
|
||||||
echo "Starting server with -d in the background"
|
echo "Starting server with -d in the background"
|
||||||
./emp_server -d &
|
./emp_server -d &
|
||||||
PID="$!"
|
PID="$!"
|
||||||
|
@ -195,6 +285,20 @@ do
|
||||||
echo "Done (emp_server)."
|
echo "Done (emp_server)."
|
||||||
echo ""
|
echo ""
|
||||||
|
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
#
|
||||||
|
# END SERVERSTART
|
||||||
|
#
|
||||||
|
|
||||||
|
#
|
||||||
|
# START GENERATE (2nd part)
|
||||||
|
#
|
||||||
|
case "${NIGHTLY_SKIP_STEP}"
|
||||||
|
in
|
||||||
|
*GENERATE*) ;;
|
||||||
|
*)
|
||||||
|
|
||||||
echo "Running newcap_script through emp_client"
|
echo "Running newcap_script through emp_client"
|
||||||
runfeed POGO peter < newcap_script >/dev/null 2>&1 ||
|
runfeed POGO peter < newcap_script >/dev/null 2>&1 ||
|
||||||
{
|
{
|
||||||
|
@ -221,6 +325,20 @@ give uw * ?uw>0 5
|
||||||
EOF
|
EOF
|
||||||
echo "Done (preparing)."
|
echo "Done (preparing)."
|
||||||
echo ""
|
echo ""
|
||||||
|
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
#
|
||||||
|
# END GENERATE (2nd part)
|
||||||
|
#
|
||||||
|
|
||||||
|
#
|
||||||
|
# START TESTSCRIPT
|
||||||
|
#
|
||||||
|
case "${NIGHTLY_SKIP_STEP}"
|
||||||
|
in
|
||||||
|
*TESTSCRIPT*) ;;
|
||||||
|
*)
|
||||||
|
|
||||||
for PLAYER in 1 2 3 4 5 6 7 8 9 10
|
for PLAYER in 1 2 3 4 5 6 7 8 9 10
|
||||||
do
|
do
|
||||||
|
@ -240,6 +358,7 @@ EOF
|
||||||
runfeed POGO peter << EOF
|
runfeed POGO peter << EOF
|
||||||
power new
|
power new
|
||||||
cen * ?own#0
|
cen * ?own#0
|
||||||
|
reso * ?own#0
|
||||||
enable
|
enable
|
||||||
force 1
|
force 1
|
||||||
disable
|
disable
|
||||||
|
@ -251,6 +370,7 @@ EOF
|
||||||
echo "Check player 1"
|
echo "Check player 1"
|
||||||
runfeed 1 << EOF
|
runfeed 1 << EOF
|
||||||
cen *
|
cen *
|
||||||
|
map #
|
||||||
read n
|
read n
|
||||||
EOF
|
EOF
|
||||||
echo "Done (check)."
|
echo "Done (check)."
|
||||||
|
@ -268,12 +388,45 @@ EOF
|
||||||
echo "Done (Rudimentary tests)."
|
echo "Done (Rudimentary tests)."
|
||||||
echo ""
|
echo ""
|
||||||
|
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
#
|
||||||
|
# END TESTSCRIPT
|
||||||
|
#
|
||||||
|
|
||||||
|
#
|
||||||
|
# START SERVERSTOP
|
||||||
|
#
|
||||||
|
case "${NIGHTLY_SKIP_STEP}"
|
||||||
|
in
|
||||||
|
*SERVERSTOP*) ;;
|
||||||
|
*)
|
||||||
|
case "${NIGHTLY_SKIP_STEP}"
|
||||||
|
in
|
||||||
|
*SERVERSTART*) ;;
|
||||||
|
*)
|
||||||
|
|
||||||
echo "Stopping server"
|
echo "Stopping server"
|
||||||
trykill "${PID}"
|
trykill "${PID}"
|
||||||
echo "Done (kill)."
|
echo "Done (kill)."
|
||||||
echo ""
|
echo ""
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
#
|
||||||
|
# END SERVERSTOP
|
||||||
|
#
|
||||||
done
|
done
|
||||||
|
|
||||||
|
#
|
||||||
|
# START CLEANUP
|
||||||
|
#
|
||||||
|
case "${NIGHTLY_SKIP_STEP}"
|
||||||
|
in
|
||||||
|
*CLEANUP*) ;;
|
||||||
|
*)
|
||||||
|
|
||||||
echo "Cleaning sandbox"
|
echo "Cleaning sandbox"
|
||||||
cd "${BOXDIR}" || err "Could not cd back to sanbox root !"
|
cd "${BOXDIR}" || err "Could not cd back to sanbox root !"
|
||||||
rm -r "${WORKDIR}" || warn "Directory ${WORKDIR} could not be cleanly removed !"
|
rm -r "${WORKDIR}" || warn "Directory ${WORKDIR} could not be cleanly removed !"
|
||||||
|
@ -281,6 +434,12 @@ rm -rf "${WORKDIR}" || warn "Directory ${WORKDIR} could not be forcibly removed
|
||||||
[ -d "${WORKDIR}/." ] && warn "Directory ${WORKDIR} still present"
|
[ -d "${WORKDIR}/." ] && warn "Directory ${WORKDIR} still present"
|
||||||
echo "Done (cleaning)."
|
echo "Done (cleaning)."
|
||||||
|
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
#
|
||||||
|
# END CLEANUP
|
||||||
|
#
|
||||||
|
|
||||||
echo "Nightly build finished at `date`"
|
echo "Nightly build finished at `date`"
|
||||||
|
|
||||||
exit 0
|
exit 0
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue