2013-06-24 13:41:48 +02:00
|
|
|
#!/bin/sh
|
|
|
|
|
|
|
|
# Copyright (c) Citrix Systems Inc.
|
|
|
|
# All rights reserved.
|
|
|
|
#
|
|
|
|
# Redistribution and use in source and binary forms,
|
|
|
|
# with or without modification, are permitted provided
|
|
|
|
# that the following conditions are met:
|
|
|
|
#
|
|
|
|
# * Redistributions of source code must retain the above
|
|
|
|
# copyright notice, this list of conditions and the
|
|
|
|
# following disclaimer.
|
|
|
|
# * Redistributions in binary form must reproduce the above
|
|
|
|
# copyright notice, this list of conditions and the
|
|
|
|
# following disclaimer in the documentation and/or other
|
|
|
|
# materials provided with the distribution.
|
|
|
|
#
|
|
|
|
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
|
|
|
|
# CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
|
|
|
|
# INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
|
|
|
# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
|
|
|
# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
|
|
|
|
# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
|
|
|
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
|
|
|
|
# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
|
|
|
# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
|
|
|
# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
|
|
|
# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
|
|
|
# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
|
|
|
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
|
|
|
# SUCH DAMAGE.
|
|
|
|
|
|
|
|
# This is usually called by Jenkins
|
|
|
|
# If you define DEBUG environment variable you can make it more verbose.
|
|
|
|
#
|
|
|
|
# When are you doing modifications to the build system, always do them in such
|
|
|
|
# way that it will continue to work even if it's executed manually by a developer
|
|
|
|
# or from a build automation system.
|
|
|
|
|
2016-03-03 17:13:36 +01:00
|
|
|
function check_deps ()
|
|
|
|
{
|
|
|
|
local -a MISSING=()
|
|
|
|
for DEP in "$@"
|
|
|
|
do
|
|
|
|
which $DEP >/dev/null 2>&1
|
|
|
|
if [ $? -ne 0 ]; then
|
|
|
|
MISSING[${#MISSING}]=${DEP}
|
|
|
|
fi
|
|
|
|
done
|
|
|
|
if [ ${#MISSING} -gt 0 ]; then
|
|
|
|
echo "FATAL: One or more build tools were not found in PATH: ${MISSING[@]}"
|
|
|
|
exit 1
|
2015-06-22 18:08:38 +02:00
|
|
|
fi
|
2016-03-03 17:13:36 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
check_deps nunit-console.exe zip unzip mkisofs wget curl hg git patch mt.exe candle.exe light.exe
|
|
|
|
if [ "${BUILD_KIND:+$BUILD_KIND}" != production ]
|
|
|
|
then
|
|
|
|
check_deps signtool.exe
|
2015-07-13 18:23:04 +02:00
|
|
|
fi
|
|
|
|
|
2015-06-22 17:47:35 +02:00
|
|
|
|
2015-07-24 16:58:50 +02:00
|
|
|
if [ -v DEBUG ];
|
2013-06-24 13:41:48 +02:00
|
|
|
then
|
2015-07-22 10:36:15 +02:00
|
|
|
echo "INFO: DEBUG mode activated (verbose)"
|
2013-06-24 13:41:48 +02:00
|
|
|
set -x
|
|
|
|
fi
|
|
|
|
|
|
|
|
set -e
|
|
|
|
|
2013-07-30 13:42:43 +02:00
|
|
|
XENADMIN_DIR="$( cd -P "$( dirname "${BASH_SOURCE[0]}" )/.." && pwd )"
|
|
|
|
|
2016-11-18 01:15:47 +01:00
|
|
|
source ${XENADMIN_DIR}/mk/declarations.sh
|
2013-07-30 13:42:43 +02:00
|
|
|
|
2016-02-11 23:18:06 +01:00
|
|
|
if test -z "${XC_BRANDING}"; then XC_BRANDING=citrix; fi
|
|
|
|
|
2016-01-08 11:50:40 +01:00
|
|
|
git ls-remote git://hg.uk.xensource.com/carbon/${XS_BRANCH}/xenadmin-branding.git &>-
|
2016-01-08 08:42:00 +01:00
|
|
|
if [ "$?" -eq 0 ]; then
|
2016-01-08 11:50:40 +01:00
|
|
|
if [ -d "xenadmin-branding" ]
|
2016-01-08 08:42:00 +01:00
|
|
|
then
|
2016-01-13 08:22:23 +01:00
|
|
|
rm -rf xenadmin-branding
|
2016-01-08 08:42:00 +01:00
|
|
|
fi
|
2016-01-13 08:22:23 +01:00
|
|
|
git clone git://hg.uk.xensource.com/carbon/${XS_BRANCH}/xenadmin-branding.git
|
2016-02-11 23:18:06 +01:00
|
|
|
if [ -d ${BRAND_REPO}/${XC_BRANDING} ]; then
|
|
|
|
echo "Overwriting Branding folder"
|
|
|
|
cp -rf ${BRAND_REPO}/${XC_BRANDING}/* ${REPO}/Branding/
|
|
|
|
fi
|
2016-01-08 08:42:00 +01:00
|
|
|
fi
|
|
|
|
|
2016-11-18 01:15:47 +01:00
|
|
|
# overwrite archive-push.sh and push-latest-successful-build.sh files, if they exist in Branding folder
|
2016-02-05 12:52:42 +01:00
|
|
|
if [ -f ${XENADMIN_DIR}/Branding/branding-archive-push.sh ]; then
|
|
|
|
echo "Overwriting mk/archive-push.sh with Branding/branding-archive-push.sh."
|
|
|
|
cp ${XENADMIN_DIR}/Branding/branding-archive-push.sh ${XENADMIN_DIR}/mk/archive-push.sh
|
|
|
|
fi
|
2016-04-05 13:03:20 +02:00
|
|
|
if [ -f ${XENADMIN_DIR}/Branding/branding-push-latest-successful-build.sh ]; then
|
|
|
|
echo "Overwriting mk/push-latest-successful-build.sh with Branding/branding-push-latest-successful-build.sh."
|
|
|
|
cp ${XENADMIN_DIR}/Branding/branding-push-latest-successful-build.sh ${XENADMIN_DIR}/mk/push-latest-successful-build.sh
|
|
|
|
fi
|
2016-02-05 12:52:42 +01:00
|
|
|
|
2013-06-24 13:41:48 +02:00
|
|
|
production_jenkins_build()
|
|
|
|
{
|
2015-07-24 16:58:50 +02:00
|
|
|
source ${XENADMIN_DIR}/mk/bumpBuildNumber.sh
|
2013-07-30 13:42:43 +02:00
|
|
|
source ${XENADMIN_DIR}/devtools/check-roaming.sh
|
|
|
|
source ${XENADMIN_DIR}/devtools/i18ncheck/i18ncheck.sh
|
|
|
|
source ${XENADMIN_DIR}/devtools/deadcheck/deadcheck.sh
|
|
|
|
source ${XENADMIN_DIR}/devtools/spellcheck/spellcheck.sh
|
|
|
|
source ${XENADMIN_DIR}/mk/xenadmin-build.sh
|
2016-02-25 12:26:34 +01:00
|
|
|
# Skip the tests if the SKIP_TESTS variable is defined (e.g. in the Jenkins UI, add "export SKIP_TESTS=1" above the call for build script)
|
|
|
|
if [ -n "${SKIP_TESTS+x}" ]; then
|
|
|
|
echo "Tests skipped because SKIP_TESTS declared"
|
|
|
|
else
|
|
|
|
source ${XENADMIN_DIR}/mk/tests-checks.sh
|
|
|
|
fi
|
2013-07-30 13:42:43 +02:00
|
|
|
source ${XENADMIN_DIR}/mk/archive-push.sh
|
2013-06-24 13:41:48 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
# Use this option if you're running on a Jenkins that is not the production Jenkins server
|
|
|
|
private_jenkins_build()
|
|
|
|
{
|
2013-07-30 13:42:43 +02:00
|
|
|
source ${XENADMIN_DIR}/mk/xenadmin-build.sh
|
2016-02-25 12:26:34 +01:00
|
|
|
# Skip the tests if the SKIP_TESTS variable is defined (e.g. in the Jenkins UI, add "export SKIP_TESTS=1" above the call for build script)
|
|
|
|
if [ -n "${SKIP_TESTS+x}" ]; then
|
|
|
|
echo "Tests skipped because SKIP_TESTS declared"
|
|
|
|
else
|
|
|
|
source ${XENADMIN_DIR}/mk/tests-checks.sh
|
|
|
|
fi
|
2013-06-24 13:41:48 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
# Set the PRIVATE_BUILD_MODE variable in order to use the private build mode
|
|
|
|
# You can do this from the jenkins ui by putting "export PRIVATE_BUILD_MODE=1" above
|
|
|
|
# the call for this script
|
|
|
|
|
|
|
|
if [ -z "${PRIVATE_BUILD_MODE+xxx}" ]; then
|
|
|
|
production_jenkins_build
|
|
|
|
else
|
2015-07-22 10:36:15 +02:00
|
|
|
echo "INFO: Running private Jenkins build"
|
2013-06-24 13:41:48 +02:00
|
|
|
private_jenkins_build
|
|
|
|
fi
|
|
|
|
unset PRIVATE_BUILD_MODE
|