Automated merge with ssh://bitbucket.org/lindenlab/viewer-tools-update
commit
f2d84ecfab
36
build.sh
36
build.sh
|
|
@ -101,7 +101,7 @@ pre_build()
|
|||
|
||||
check_for "Confirm dictionaries are installed before 'autobuild configure'" ${build_dir}/packages/dictionaries
|
||||
|
||||
"$AUTOBUILD" configure -c $variant -- \
|
||||
"$autobuild" configure -c $variant -- \
|
||||
-DPACKAGE:BOOL=ON \
|
||||
-DRELEASE_CRASH_REPORTING:BOOL=ON \
|
||||
-DVIEWER_CHANNEL:STRING="\"$viewer_channel\"" \
|
||||
|
|
@ -119,12 +119,12 @@ package_llphysicsextensions_tpv()
|
|||
if [ "$variant" = "Release" ]
|
||||
then
|
||||
llpetpvcfg=$build_dir/packages/llphysicsextensions/autobuild-tpv.xml
|
||||
"$AUTOBUILD" build --verbose --config-file $llpetpvcfg -c Tpv
|
||||
"$autobuild" build --verbose --config-file $llpetpvcfg -c Tpv
|
||||
|
||||
# capture the package file name for use in upload later...
|
||||
PKGTMP=`mktemp -t pgktpv.XXXXXX`
|
||||
trap "rm $PKGTMP* 2>/dev/null" 0
|
||||
"$AUTOBUILD" package --verbose --config-file $llpetpvcfg --results-file "$(native_path $PKGTMP)"
|
||||
"$autobuild" package --verbose --config-file $llpetpvcfg --results-file "$(native_path $PKGTMP)"
|
||||
tpv_status=$?
|
||||
if [ -r "${PKGTMP}" ]
|
||||
then
|
||||
|
|
@ -148,7 +148,7 @@ build()
|
|||
then
|
||||
begin_section "Viewer$variant"
|
||||
|
||||
"$AUTOBUILD" build --no-configure -c $variant
|
||||
"$autobuild" build --no-configure -c $variant
|
||||
build_ok=$?
|
||||
end_section "Viewer$variant"
|
||||
|
||||
|
|
@ -216,30 +216,16 @@ fi
|
|||
# Check to see if we're skipping the platform
|
||||
eval '$build_'"$arch" || pass
|
||||
|
||||
if [ -z "$AUTOBUILD" ]
|
||||
# set "$autobuild" to cygwin path form for use locally in this script
|
||||
autobuild="$(shell_path "$AUTOBUILD")"
|
||||
if [ ! -x "$autobuild" ]
|
||||
then
|
||||
export autobuild_dir="$here/../../../autobuild/bin/"
|
||||
if [ -d "$autobuild_dir" ]
|
||||
then
|
||||
export AUTOBUILD="$autobuild_dir"autobuild
|
||||
if [ -x "$AUTOBUILD" ]
|
||||
then
|
||||
# *HACK - bash doesn't know how to pass real pathnames to native windows python
|
||||
case "$arch" in
|
||||
CYGWIN) AUTOBUILD=$(cygpath -u $AUTOBUILD.cmd) ;;
|
||||
esac
|
||||
else
|
||||
record_failure "Not executable: $AUTOBUILD"
|
||||
exit 1
|
||||
fi
|
||||
else
|
||||
record_failure "Not found: $autobuild_dir"
|
||||
exit 1
|
||||
fi
|
||||
record_failure "AUTOBUILD not executable: '$autobuild'"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# load autbuild provided shell functions and variables
|
||||
eval "$("$AUTOBUILD" source_environment)"
|
||||
# load autobuild provided shell functions and variables
|
||||
eval "$("$autobuild" source_environment)"
|
||||
|
||||
# dump environment variables for debugging
|
||||
begin_section "Environment"
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
#
|
||||
# Output variables:
|
||||
#
|
||||
# AUTOBUILD_EXECUTABLE - path to autobuild or pautobuild executable
|
||||
# AUTOBUILD_EXECUTABLE - path to autobuild executable
|
||||
|
||||
|
||||
|
||||
|
|
@ -13,12 +13,9 @@ IF (NOT AUTOBUILD_EXECUTABLE)
|
|||
# If cmake was executed by autobuild, autobuild will have set the AUTOBUILD env var
|
||||
IF (DEFINED ENV{AUTOBUILD})
|
||||
SET(AUTOBUILD_EXECUTABLE $ENV{AUTOBUILD})
|
||||
# In case $AUTOBUILD is a cygwin path, fix it back to Windows style
|
||||
STRING(REGEX REPLACE "^/cygdrive/(.)/" "\\1:/" AUTOBUILD_EXECUTABLE
|
||||
"${AUTOBUILD_EXECUTABLE}")
|
||||
ELSE (DEFINED ENV{AUTOBUILD})
|
||||
IF(WIN32)
|
||||
SET(AUTOBUILD_EXE_NAMES autobuild.cmd autobuild.exe)
|
||||
SET(AUTOBUILD_EXE_NAMES autobuild.exe autobuild.cmd)
|
||||
ELSE(WIN32)
|
||||
SET(AUTOBUILD_EXE_NAMES autobuild)
|
||||
ENDIF(WIN32)
|
||||
|
|
@ -28,21 +25,19 @@ IF (NOT AUTOBUILD_EXECUTABLE)
|
|||
AUTOBUILD_EXECUTABLE
|
||||
NAMES ${AUTOBUILD_EXE_NAMES}
|
||||
PATHS
|
||||
ENV PATH
|
||||
${CMAKE_SOURCE_DIR}/..
|
||||
${CMAKE_SOURCE_DIR}/../..
|
||||
${CMAKE_SOURCE_DIR}/../../..
|
||||
ENV PATH
|
||||
${CMAKE_SOURCE_DIR}/..
|
||||
${CMAKE_SOURCE_DIR}/../..
|
||||
${CMAKE_SOURCE_DIR}/../../..
|
||||
PATH_SUFFIXES "/autobuild/bin/"
|
||||
)
|
||||
ENDIF (DEFINED ENV{AUTOBUILD})
|
||||
|
||||
IF (AUTOBUILD_EXECUTABLE)
|
||||
GET_FILENAME_COMPONENT(_autobuild_name ${AUTOBUILD_EXECUTABLE} NAME_WE)
|
||||
ELSE (AUTOBUILD_EXECUTABLE)
|
||||
IF (NOT AUTOBUILD_EXECUTABLE)
|
||||
IF (AUTOBUILD_FIND_REQUIRED)
|
||||
MESSAGE(FATAL_ERROR "Could not find autobuild executable")
|
||||
ENDIF (AUTOBUILD_FIND_REQUIRED)
|
||||
ENDIF (AUTOBUILD_EXECUTABLE)
|
||||
ENDIF (NOT AUTOBUILD_EXECUTABLE)
|
||||
|
||||
MARK_AS_ADVANCED(AUTOBUILD_EXECUTABLE)
|
||||
ENDIF (NOT AUTOBUILD_EXECUTABLE)
|
||||
|
|
|
|||
|
|
@ -38,7 +38,7 @@ viewer_dir = os.path.dirname(__file__)
|
|||
# Put it FIRST because some of our build hosts have an ancient install of
|
||||
# indra.util.llmanifest under their system Python!
|
||||
sys.path.insert(0, os.path.join(viewer_dir, os.pardir, "lib", "python"))
|
||||
from indra.util.llmanifest import LLManifest, main, proper_windows_path, path_ancestors, CHANNEL_VENDOR_BASE, RELEASE_CHANNEL, ManifestError
|
||||
from indra.util.llmanifest import LLManifest, main, path_ancestors, CHANNEL_VENDOR_BASE, RELEASE_CHANNEL, ManifestError
|
||||
try:
|
||||
from llbase import llsd
|
||||
except ImportError:
|
||||
|
|
@ -613,7 +613,7 @@ class Windows_i686_Manifest(ViewerManifest):
|
|||
while (not installer_created) and (nsis_attempts > 0):
|
||||
try:
|
||||
nsis_attempts-=1;
|
||||
self.run_command('"' + proper_windows_path(NSIS_path) + '" ' + self.dst_path_of(tempfile))
|
||||
self.run_command('"' + NSIS_path + '" ' + self.dst_path_of(tempfile))
|
||||
installer_created=True # if no exception was raised, the codesign worked
|
||||
except ManifestError, err:
|
||||
if nsis_attempts:
|
||||
|
|
|
|||
|
|
@ -1,391 +0,0 @@
|
|||
#!/bin/sh
|
||||
|
||||
# This is the build script used by Linden Lab's autmated build system.
|
||||
#
|
||||
|
||||
set -x
|
||||
|
||||
export PATH=/bin:/usr/bin:$PATH
|
||||
arch=`uname | cut -b-6`
|
||||
here=`echo $0 | sed 's:[^/]*$:.:'`
|
||||
year=`date +%Y`
|
||||
branch=`svn info | grep '^URL:' | sed 's:.*/::'`
|
||||
revision=`svn info | grep '^Revision:' | sed 's/.*: //'`
|
||||
|
||||
[ x"$WGET_CACHE" = x ] && export WGET_CACHE=/var/tmp/parabuild/wget
|
||||
[ x"$S3GET_URL" = x ] && export S3GET_URL=http://viewer-source-downloads.s3.amazonaws.com/$year
|
||||
[ x"$S3PUT_URL" = x ] && export S3PUT_URL=https://s3.amazonaws.com/viewer-source-downloads/$year
|
||||
[ x"$PUBLIC_URL" = x ] && export PUBLIC_URL=http://secondlife.com/developers/opensource/downloads/$year
|
||||
[ x"$PUBLIC_EMAIL" = x ] && export PUBLIC_EMAIL=sldev-commits@lists.secondlife.com
|
||||
|
||||
# Make sure command worked and bail out if not, reporting failure to parabuild
|
||||
fail()
|
||||
{
|
||||
release_lock
|
||||
echo "BUILD FAILED" $@
|
||||
exit 1
|
||||
}
|
||||
|
||||
pass()
|
||||
{
|
||||
release_lock
|
||||
echo "BUILD SUCCESSFUL"
|
||||
exit 0
|
||||
}
|
||||
|
||||
# Locking to avoid contention with u-s-c
|
||||
LOCK_CREATE=/usr/bin/lockfile-create
|
||||
LOCK_TOUCH=/usr/bin/lockfile-touch
|
||||
LOCK_REMOVE=/usr/bin/lockfile-remove
|
||||
LOCK_PROCESS=
|
||||
|
||||
locking_available()
|
||||
{
|
||||
test -x "$LOCK_CREATE"\
|
||||
-a -x "$LOCK_TOUCH"\
|
||||
-a -x "$LOCK_REMOVE"
|
||||
}
|
||||
|
||||
acquire_lock()
|
||||
{
|
||||
if locking_available
|
||||
then
|
||||
if "$LOCK_CREATE" /var/lock/update-system-config --retry 99
|
||||
then
|
||||
"$LOCK_TOUCH" /var/lock/update-system-config &
|
||||
LOCK_PROCESS="$!"
|
||||
else
|
||||
fail acquire lock
|
||||
fi
|
||||
else
|
||||
true
|
||||
fi
|
||||
}
|
||||
|
||||
release_lock()
|
||||
{
|
||||
if locking_available
|
||||
then
|
||||
if test x"$LOCK_PROCESS" != x
|
||||
then
|
||||
kill "$LOCK_PROCESS"
|
||||
"$LOCK_REMOVE" /var/lock/update-system-config
|
||||
else
|
||||
echo No Lock Acquired >&2
|
||||
fi
|
||||
else
|
||||
true
|
||||
fi
|
||||
}
|
||||
|
||||
get_asset()
|
||||
{
|
||||
mkdir -p "$WGET_CACHE" || fail creating WGET_CACHE
|
||||
local tarball=`basename "$1"`
|
||||
test -r "$WGET_CACHE/$tarball" || ( cd "$WGET_CACHE" && curl --location --remote-name "$1" || fail getting $1 )
|
||||
case "$tarball" in
|
||||
*.zip) unzip -qq -d .. -o "$WGET_CACHE/$tarball" || fail unzip $tarball ;;
|
||||
*.tar.gz|*.tgz) tar -C .. -xzf "$WGET_CACHE/$tarball" || fail untar $tarball ;;
|
||||
*) fail unrecognized filetype: $tarball ;;
|
||||
esac
|
||||
}
|
||||
|
||||
s3_available()
|
||||
{
|
||||
test -x "$helpers/s3get.sh" -a -x "$helpers/s3put.sh" -a -r "$helpers/s3curl.pl"
|
||||
}
|
||||
|
||||
build_dir_Darwin()
|
||||
{
|
||||
echo build-darwin-universal
|
||||
}
|
||||
|
||||
build_dir_Linux()
|
||||
{
|
||||
echo viewer-linux-i686-`echo $1 | tr A-Z a-z`
|
||||
}
|
||||
|
||||
build_dir_CYGWIN()
|
||||
{
|
||||
echo build-vc80
|
||||
}
|
||||
|
||||
installer_Darwin()
|
||||
{
|
||||
ls -1td "`build_dir_Darwin Release`/newview/"*.dmg 2>/dev/null | sed 1q
|
||||
}
|
||||
|
||||
installer_Linux()
|
||||
{
|
||||
ls -1td "`build_dir_Linux Release`/newview/"*.tar.bz2 2>/dev/null | sed 1q
|
||||
}
|
||||
|
||||
installer_CYGWIN()
|
||||
{
|
||||
d=`build_dir_CYGWIN Release`
|
||||
p=`sed 's:.*=::' "$d/newview/Release/touched.bat"`
|
||||
echo "$d/newview/Release/$p"
|
||||
}
|
||||
|
||||
# deal with aborts etc..
|
||||
trap fail 1 2 3 14 15
|
||||
|
||||
# Check location
|
||||
cd "$here/../.."
|
||||
|
||||
test -x ../linden/scripts/automated_build_scripts/opensrc-build.sh\
|
||||
|| fail 'The parent dir of your checkout needs to be named "linden"'
|
||||
|
||||
. doc/asset_urls.txt
|
||||
get_asset "$SLASSET_ART"
|
||||
|
||||
|
||||
# Set up platform specific stuff
|
||||
case "$arch" in
|
||||
|
||||
# Note that we can only build the "Release" variant for Darwin, because of a compiler bug:
|
||||
# ld: bl out of range (-16777272 max is +/-16M)
|
||||
# from __static_initialization_and_destruction_0(int, int)at 0x033D319C
|
||||
# in __StaticInit of
|
||||
# indra/build-darwin-universal/newview/SecondLife.build/Debug/Second Life.build/Objects-normal/ppc/llvoicevisualizer.o
|
||||
# to ___cxa_atexit$island_2 at 0x023D50F8
|
||||
# in __text of
|
||||
# indra/build-darwin-universal/newview/SecondLife.build/Debug/Second Life.build/Objects-normal/ppc/Second Life
|
||||
# in __static_initialization_and_destruction_0(int, int)
|
||||
# from indra/build-darwin-universal/newview/SecondLife.build/Debug/Second Life.build/Objects-normal/ppc/llvoicevisualizer.o
|
||||
|
||||
Darwin)
|
||||
helpers=/usr/local/buildscripts/generic_vc
|
||||
variants="Release"
|
||||
cmake_generator="Xcode"
|
||||
fmod=fmodapi375mac
|
||||
fmod_tar="$fmod.zip"
|
||||
fmod_so=libfmod.a
|
||||
fmod_lib=lib
|
||||
target_dirs="libraries/universal-darwin/lib_debug
|
||||
libraries/universal-darwin/lib_release
|
||||
libraries/universal-darwin/lib_release_client"
|
||||
other_archs="$S3GET_URL/$branch/$revision/CYGWIN $S3GET_URL/$branch/$revision/Linux"
|
||||
mail="$helpers"/mail.py
|
||||
all_done="$helpers"/all_done.py
|
||||
get_asset "$SLASSET_LIBS_DARWIN"
|
||||
;;
|
||||
|
||||
CYGWIN)
|
||||
helpers=/cygdrive/c/buildscripts
|
||||
variants="Debug RelWithDebInfo Release"
|
||||
#variants="Release"
|
||||
cmake_generator="vc80"
|
||||
fmod=fmodapi375win
|
||||
fmod_tar=fmodapi375win.zip
|
||||
fmod_so=fmodvc.lib
|
||||
fmod_lib=lib
|
||||
target_dirs="libraries/i686-win32/lib/debug
|
||||
libraries/i686-win32/lib/release"
|
||||
other_archs="$S3GET_URL/$branch/$revision/Darwin $S3GET_URL/$branch/$revision/Linux"
|
||||
export PATH="/cygdrive/c/Python25:/cygdrive/c/Program Files/Cmake 2.6/bin":$PATH
|
||||
export PERL="/cygdrive/c/Perl/bin/perl.exe"
|
||||
export S3CURL="C:\\buildscripts\s3curl.pl"
|
||||
export CURL="C:\\cygwin\\bin\\curl.exe"
|
||||
mail="C:\\buildscripts\\mail.py"
|
||||
all_done="C:\\buildscripts\\all_done.py"
|
||||
get_asset "$SLASSET_LIBS_WIN32"
|
||||
;;
|
||||
|
||||
Linux)
|
||||
helpers=/var/opt/parabuild/buildscripts/generic_vc
|
||||
[ x"$CXX" = x ] && test -x /usr/bin/g++-4.1 && export CXX=/usr/bin/g++-4.1
|
||||
acquire_lock
|
||||
variants="Debug RelWithDebInfo Release"
|
||||
#variants="Release"
|
||||
cmake_generator="Unix Makefiles"
|
||||
fmod=fmodapi375linux
|
||||
fmod_tar="$fmod".tar.gz
|
||||
fmod_so=libfmod-3.75.so
|
||||
fmod_lib=.
|
||||
target_dirs="libraries/i686-linux/lib_debug
|
||||
libraries/i686-linux/lib_release
|
||||
libraries/i686-linux/lib_release_client"
|
||||
other_archs="$S3GET_URL/$branch/$revision/Darwin $S3GET_URL/$branch/$revision/CYGWIN"
|
||||
mail="$helpers"/mail.py
|
||||
all_done="$helpers"/all_done.py
|
||||
# Change the DISTCC_DIR to be somewhere that the parabuild process can write to
|
||||
if test -r /etc/debian_version
|
||||
then
|
||||
[ x"$DISTCC_DIR" = x ] && export DISTCC_DIR=/var/tmp/parabuild
|
||||
case `cat /etc/debian_version` in
|
||||
3.*) [ x"$DISTCC_HOSTS" = x ]\
|
||||
&& export DISTCC_HOSTS="build-linux-1
|
||||
build-linux-2
|
||||
build-linux-3
|
||||
build-linux-4
|
||||
build-linux-5" ;;
|
||||
4.*) [ x"$DISTCC_HOSTS" = x ]\
|
||||
&& export DISTCC_HOSTS="build-linux-6
|
||||
build-linux-7
|
||||
build-linux-8
|
||||
build-linux-9" ;;
|
||||
esac
|
||||
fi
|
||||
|
||||
get_asset "$SLASSET_LIBS_LINUXI386"
|
||||
;;
|
||||
|
||||
*) fail undefined $arch ;;
|
||||
esac
|
||||
|
||||
get_asset "http://www.fmod.org/index.php/release/version/$fmod_tar"
|
||||
|
||||
# Special case for Mac...
|
||||
case "$arch" in
|
||||
|
||||
Darwin)
|
||||
if lipo -create -output "../$fmod"/api/$fmod_lib/libfmod-universal.a\
|
||||
"../$fmod"/api/$fmod_lib/libfmod.a\
|
||||
"../$fmod"/api/$fmod_lib/libfmodx86.a
|
||||
then
|
||||
mv "../$fmod"/api/$fmod_lib/libfmod.a "../$fmod"/api/$fmod_lib/libfmodppc.a
|
||||
mv "../$fmod"/api/$fmod_lib/libfmod-universal.a "../$fmod"/api/$fmod_lib/libfmod.a
|
||||
echo Created fat binary
|
||||
else
|
||||
fail running lipo
|
||||
fi
|
||||
;;
|
||||
|
||||
esac
|
||||
|
||||
# ensure helpers are up to date
|
||||
( cd "$helpers" && svn up )
|
||||
|
||||
# First, go into the directory where the code was checked out by Parabuild
|
||||
cd indra
|
||||
|
||||
# This is the way it works now, but it will soon work on a variant dependent way
|
||||
for target_dir in $target_dirs
|
||||
do
|
||||
mkdir -p "../$target_dir"
|
||||
cp -f "../../$fmod/api/$fmod_lib/$fmod_so" "../$target_dir"
|
||||
done
|
||||
mkdir -p "../libraries/include"
|
||||
cp -f "../../$fmod/api/inc/"* "../libraries/include"
|
||||
|
||||
# Special Windows case
|
||||
test -r "../../$fmod/api/fmod.dll" && cp -f "../../$fmod/api/fmod.dll" newview
|
||||
|
||||
# Now run the build command over all variants
|
||||
succeeded=true
|
||||
cp /dev/null build.log
|
||||
|
||||
### TEST CODE - remove when done
|
||||
### variants=
|
||||
### echo "Artificial build failure to test notifications" > build.log
|
||||
### succeeded=false
|
||||
### END TEST CODE
|
||||
|
||||
for variant in $variants
|
||||
do
|
||||
build_dir=`build_dir_$arch $variant`
|
||||
rm -rf "$build_dir"
|
||||
# This is the way it will work in future
|
||||
#for target_dir in $target_dirs
|
||||
#do
|
||||
# mkdir -p "$build_dir/$target_dir"
|
||||
# cp "../../$fmod/api/$fmod_lib/$fmod_so" "$build_dir/$target_dir"
|
||||
#done
|
||||
#mkdir -p "$build_dir/libraries/include"
|
||||
#cp "../../$fmod/api/inc/"* "$build_dir/libraries/include"
|
||||
echo "==== $variant ====" >> build.log
|
||||
if ./develop.py \
|
||||
--unattended \
|
||||
--incredibuild \
|
||||
-t $variant \
|
||||
-G "$cmake_generator" \
|
||||
configure \
|
||||
-DPACKAGE:BOOL=ON >>build.log 2>&1
|
||||
then
|
||||
if ./develop.py\
|
||||
--unattended\
|
||||
--incredibuild \
|
||||
-t $variant\
|
||||
-G "$cmake_generator" \
|
||||
build package >>build.log 2>&1
|
||||
then
|
||||
# run tests if needed
|
||||
true
|
||||
else
|
||||
succeeded=false
|
||||
fi
|
||||
else
|
||||
succeeded=false
|
||||
fi
|
||||
done
|
||||
|
||||
# check statuis and upload results to S3
|
||||
subject=
|
||||
if $succeeded
|
||||
then
|
||||
package=`installer_$arch`
|
||||
test -r "$package" || fail not found: $package
|
||||
package_file=`echo $package | sed 's:.*/::'`
|
||||
if s3_available
|
||||
then
|
||||
echo "$PUBLIC_URL/$branch/$revision/$package_file" > "$arch"
|
||||
echo "$PUBLIC_URL/$branch/$revision/good-build.$arch" >> "$arch"
|
||||
"$helpers/s3put.sh" "$package" "$S3PUT_URL/$branch/$revision/$package_file" binary/octet-stream\
|
||||
|| fail Uploading "$package"
|
||||
"$helpers/s3put.sh" build.log "$S3PUT_URL/$branch/$revision/good-build.$arch" text/plain\
|
||||
|| fail Uploading build.log
|
||||
"$helpers/s3put.sh" "$arch" "$S3PUT_URL/$branch/$revision/$arch" text/plain\
|
||||
|| fail Uploading token file
|
||||
if python "$all_done"\
|
||||
curl\
|
||||
"$S3GET_URL/$branch/$revision/$arch"\
|
||||
$other_archs > message
|
||||
then
|
||||
subject="Successful Build for $branch ($revision)"
|
||||
fi
|
||||
else
|
||||
true s3 is not available
|
||||
fi
|
||||
else
|
||||
if s3_available
|
||||
then
|
||||
"$helpers/s3put.sh" build.log "$S3PUT_URL/$branch/$revision/failed-build.$arch" text/plain\
|
||||
|| fail Uploading build.log
|
||||
subject="Failed Build for $branch ($revision) on $arch"
|
||||
cat >message <<EOF
|
||||
Build for $branch ($revision) failed for $arch.
|
||||
Please see the build log for details:
|
||||
|
||||
$PUBLIC_URL/$branch/$revision/failed-build.$arch
|
||||
|
||||
EOF
|
||||
else
|
||||
true s3 is not available
|
||||
fi
|
||||
fi
|
||||
|
||||
# We have something to say...
|
||||
if [ x"$subject" != x ]
|
||||
then
|
||||
# Extract change list since last build
|
||||
if [ x"$PARABUILD_CHANGE_LIST_NUMBER" = x ]
|
||||
then
|
||||
echo "No change information available" >> message
|
||||
elif [ x"$PARABUILD_PREVIOUS_CHANGE_LIST_NUMBER" = x ]
|
||||
then
|
||||
( cd .. && svn log --verbose --stop-on-copy --limit 50 ) >>message
|
||||
else
|
||||
( cd .. && svn log --verbose -r"$PARABUILD_PREVIOUS_CHANGE_LIST_NUMBER":"$PARABUILD_CHANGE_LIST_NUMBER" ) >>message
|
||||
fi
|
||||
# $PUBLIC_EMAIL can be a list, so no quotes
|
||||
python "$mail" "$subject" $PUBLIC_EMAIL <message
|
||||
fi
|
||||
|
||||
if $succeeded
|
||||
then
|
||||
pass
|
||||
else
|
||||
fail
|
||||
fi
|
||||
|
||||
|
|
@ -30,11 +30,7 @@ import errno
|
|||
import re
|
||||
import subprocess
|
||||
|
||||
_autobuild=os.getenv('AUTOBUILD',
|
||||
'autobuild' if not ( sys.platform == 'win32' or sys.platform == 'cygwin')
|
||||
else 'autobuild.cmd')
|
||||
# HACK: temporarily work around cygwin /cygdrive/c madness
|
||||
_autobuild = re.sub(r"^/cygdrive/(.)/", r"\1:/", _autobuild)
|
||||
_autobuild=os.getenv('AUTOBUILD', 'autobuild')
|
||||
|
||||
pkg_line=re.compile('^([\w-]+):\s+(.*)$')
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue