2015-10-08 21:41:04 +00:00
#!/usr/bin/env bash
2015-10-22 22:12:49 +00:00
#
2015-11-16 19:21:57 +00:00
# Copyright (c) .NET Foundation and contributors. All rights reserved.
# Licensed under the MIT license. See LICENSE file in the project root for full license information.
#
2015-12-18 01:39:50 +00:00
# Set OFFLINE environment variable to build offline
2015-10-21 22:21:14 +00:00
set -e
2015-10-22 22:56:12 +00:00
SOURCE = " ${ BASH_SOURCE [0] } "
while [ -h " $SOURCE " ] ; do # resolve $SOURCE until the file is no longer a symlink
DIR = " $( cd -P " $( dirname " $SOURCE " ) " && pwd ) "
SOURCE = " $( readlink " $SOURCE " ) "
[ [ $SOURCE != /* ] ] && SOURCE = " $DIR / $SOURCE " # if $SOURCE was a relative symlink, we need to resolve it relative to the path where the symlink file was located
done
DIR = " $( cd -P " $( dirname " $SOURCE " ) " && pwd ) "
2015-10-20 16:05:17 +00:00
2015-11-11 01:30:01 +00:00
source " $DIR /scripts/_common.sh "
2015-11-16 21:49:29 +00:00
for i in " $@ "
do
lowerI = " $( echo $i | awk '{print tolower($0)}' ) "
case $lowerI in
release)
export CONFIGURATION = Release
; ;
debug)
export CONFIGURATION = Debug
; ;
2015-12-18 01:39:50 +00:00
offline)
export OFFLINE = true
; ;
2015-11-16 21:49:29 +00:00
*)
esac
done
[ -z " $CONFIGURATION " ] && CONFIGURATION = Debug
2015-12-18 01:39:50 +00:00
if [ ! -z " $OFFLINE " ] ; then
header " - Offline Build - "
fi
2015-11-16 21:49:29 +00:00
# Use a repo-local install directory (but not the artifacts directory because that gets cleaned a lot
export DOTNET_INSTALL_DIR = $DIR /.dotnet_stage0/$RID
[ -d $DOTNET_INSTALL_DIR ] || mkdir -p $DOTNET_INSTALL_DIR
export PATH = $DOTNET_INSTALL_DIR /bin:$PATH
2015-10-27 21:19:04 +00:00
# UTC Timestamp of the last commit is used as the build number. This is for easy synchronization of build number between Windows, OSX and Linux builds.
LAST_COMMIT_TIMESTAMP = $( git log -1 --format= %ct)
2015-11-18 18:21:05 +00:00
major = 1
minor = 0
# no. of days since epoch
2015-12-09 22:56:39 +00:00
build = 0
2015-11-18 18:21:05 +00:00
revision = $LAST_COMMIT_TIMESTAMP
2015-10-28 23:02:14 +00:00
2015-11-18 18:21:05 +00:00
export DOTNET_BUILD_VERSION = $major .$minor .$build .$revision
2015-10-28 23:02:14 +00:00
2015-11-11 01:30:01 +00:00
header " Building dotnet tools version $DOTNET_BUILD_VERSION - $CONFIGURATION "
2015-10-27 21:19:04 +00:00
2015-11-11 00:18:00 +00:00
if [ ! -z " $BUILD_IN_DOCKER " ] ; then
2015-11-11 01:30:01 +00:00
export BUILD_COMMAND = "/opt/code/scripts/compile.sh"
$DIR /scripts/docker/dockerbuild.sh
2015-11-11 00:18:00 +00:00
else
2015-11-11 01:30:01 +00:00
$DIR /scripts/compile.sh
2015-11-11 00:18:00 +00:00
fi
if [ ! -z " $PACKAGE_IN_DOCKER " ] ; then
2015-11-11 01:30:01 +00:00
export BUILD_COMMAND = "/opt/code/scripts/package/package.sh"
$DIR /scripts/docker/dockerbuild.sh
2015-11-11 00:18:00 +00:00
else
2015-11-11 01:30:01 +00:00
$DIR /scripts/package/package.sh
2015-11-12 00:11:29 +00:00
fi