Merge pull request #544 from piotrpMSFT/piotrpMSFT/260/offlineBuilds

Offline builds. Fixes #260.

On Windows, build.cmd -Offline
@brthor is adding a parameter option for Linux/Mac
This commit is contained in:
Piotr Puszkiewicz 2015-12-18 14:50:37 -08:00
commit f17a2dbb93
4 changed files with 76 additions and 54 deletions

View file

@ -4,7 +4,8 @@
# Licensed under the MIT license. See LICENSE file in the project root for full license information. # Licensed under the MIT license. See LICENSE file in the project root for full license information.
# #
# $1 is passed to package to enable deb or pkg packaging # Set OFFLINE environment variable to build offline
set -e set -e
SOURCE="${BASH_SOURCE[0]}" SOURCE="${BASH_SOURCE[0]}"
@ -27,12 +28,19 @@ do
debug) debug)
export CONFIGURATION=Debug export CONFIGURATION=Debug
;; ;;
offline)
export OFFLINE=true
;;
*) *)
esac esac
done done
[ -z "$CONFIGURATION" ] && CONFIGURATION=Debug [ -z "$CONFIGURATION" ] && CONFIGURATION=Debug
if [ ! -z "$OFFLINE" ]; then
header " - Offline Build - "
fi
# Use a repo-local install directory (but not the artifacts directory because that gets cleaned a lot # 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 export DOTNET_INSTALL_DIR=$DIR/.dotnet_stage0/$RID
[ -d $DOTNET_INSTALL_DIR ] || mkdir -p $DOTNET_INSTALL_DIR [ -d $DOTNET_INSTALL_DIR ] || mkdir -p $DOTNET_INSTALL_DIR

View file

@ -4,7 +4,8 @@
# #
param( param(
[string]$Configuration="Debug") [string]$Configuration="Debug",
[switch]$Offline)
. "$PSScriptRoot\_common.ps1" . "$PSScriptRoot\_common.ps1"
@ -35,7 +36,11 @@ if (!$env:DOTNET_BUILD_VERSION) {
} }
Write-Host -ForegroundColor Green "*** Building dotnet tools version $($env:DOTNET_BUILD_VERSION) - $Configuration ***" Write-Host -ForegroundColor Green "*** Building dotnet tools version $($env:DOTNET_BUILD_VERSION) - $Configuration ***"
& "$PSScriptRoot\compile.ps1" -Configuration:$Configuration if ($Offline)
{
Write-Host -ForegroundColor Yellow " - Offline Build -"
}
& "$PSScriptRoot\compile.ps1" -Configuration:$Configuration -Offline:$Offline
if (!$?) { if (!$?) {
Write-Host "Building dotnet tools finished with errors." Write-Host "Building dotnet tools finished with errors."
Exit 1 Exit 1

View file

@ -3,7 +3,8 @@
# Licensed under the MIT license. See LICENSE file in the project root for full license information. # Licensed under the MIT license. See LICENSE file in the project root for full license information.
# #
param([string]$Configuration = "Debug") param([string]$Configuration = "Debug",
[switch]$Offline)
$ErrorActionPreference="Stop" $ErrorActionPreference="Stop"
@ -23,6 +24,10 @@ Download it from https://www.cmake.org
"@ "@
} }
if($Offline){
Write-Host "Skipping Stage 0, Dnx, and Packages dowlnoad: Offline build"
}
else {
# Install a stage 0 # Install a stage 0
header "Installing dotnet stage 0" header "Installing dotnet stage 0"
& "$PSScriptRoot\install.ps1" & "$PSScriptRoot\install.ps1"
@ -55,7 +60,7 @@ Download it from https://www.cmake.org
Write-Host "Command failed: " dotnet restore "$RepoRoot" --quiet --runtime "osx.10.10-x64" --runtime "ubuntu.14.04-x64" --runtime "win7-x64" --no-cache Write-Host "Command failed: " dotnet restore "$RepoRoot" --quiet --runtime "osx.10.10-x64" --runtime "ubuntu.14.04-x64" --runtime "win7-x64" --no-cache
Exit 1 Exit 1
} }
}
header "Building corehost" header "Building corehost"
pushd "$RepoRoot\src\corehost" pushd "$RepoRoot\src\corehost"

View file

@ -25,6 +25,9 @@ fi
[ -z "$CONFIGURATION" ] && export CONFIGURATION=Debug [ -z "$CONFIGURATION" ] && export CONFIGURATION=Debug
if [[ ! -z "$OFFLINE" ]]; then
header "Skipping Stage 0, Dnx, and Packages download: Offline Build"
else
# Download DNX to copy into stage2 # Download DNX to copy into stage2
header "Downloading DNX $DNX_VERSION" header "Downloading DNX $DNX_VERSION"
DNX_URL="https://api.nuget.org/packages/$DNX_FLAVOR.$DNX_VERSION.nupkg" DNX_URL="https://api.nuget.org/packages/$DNX_FLAVOR.$DNX_VERSION.nupkg"
@ -49,6 +52,7 @@ PREFIX="$(cd -P "$(dirname "$DOTNET_PATH")/.." && pwd)"
header "Restoring packages" header "Restoring packages"
$DNX_ROOT/dnu restore "$REPOROOT" --quiet --runtime "$RID" --no-cache $DNX_ROOT/dnu restore "$REPOROOT" --quiet --runtime "$RID" --no-cache
fi
header "Building corehost" header "Building corehost"