From 59a6c72be7b6c20961d2a447b1c8bdc851adebd3 Mon Sep 17 00:00:00 2001 From: Davis Goodin Date: Thu, 27 Oct 2016 04:34:27 +0000 Subject: [PATCH] Use --disable-parallel during xplat restores. Works around NuGet parallel restore timeouts becoming build failures when the machine has a slow connection, for example in our Docker Fedora containers. --- .toolversions | 2 +- build.proj | 6 +++++- build_projects/dotnet-cli-build/DotNetRestore.cs | 7 ++++++- .../dotnet-cli-build/DotNetRestoreProjectJson.cs | 7 ++++++- run-build.sh | 3 +++ 5 files changed, 21 insertions(+), 4 deletions(-) diff --git a/.toolversions b/.toolversions index fd4b736d1..adc296916 100644 --- a/.toolversions +++ b/.toolversions @@ -1,2 +1,2 @@ -microsoft.dotnet.buildtools=1.0.26-prerelease-00802-01 +microsoft.dotnet.buildtools=1.0.26-prerelease-00926-02 microsoft.dotnet.buildtools.run=1.0.0-prerelease-00807-04 \ No newline at end of file diff --git a/build.proj b/build.proj index 522844b34..987b159a4 100644 --- a/build.proj +++ b/build.proj @@ -68,7 +68,11 @@ Inputs="$(DotnetCliBuildDirectory)/dotnet-cli-build.csproj" Outputs="@(RestoreDotnetCliBuildFrameworkOutputs)"> - + + $(ExtraRestoreArgs) --disable-parallel + + + diff --git a/build_projects/dotnet-cli-build/DotNetRestore.cs b/build_projects/dotnet-cli-build/DotNetRestore.cs index cb75d513a..888485d47 100644 --- a/build_projects/dotnet-cli-build/DotNetRestore.cs +++ b/build_projects/dotnet-cli-build/DotNetRestore.cs @@ -12,7 +12,7 @@ namespace Microsoft.DotNet.Cli.Build protected override string Args { - get { return $"{GetSource()} {GetPackages()} {GetSkipInvalidConfigurations()}"; } + get { return $"{GetSource()} {GetPackages()} {GetSkipInvalidConfigurations()} {GetDisableParallel()}"; } } public string Source { get; set; } @@ -50,5 +50,10 @@ namespace Microsoft.DotNet.Cli.Build return null; } + + private string GetDisableParallel() + { + return "--disable-parallel"; + } } } diff --git a/build_projects/dotnet-cli-build/DotNetRestoreProjectJson.cs b/build_projects/dotnet-cli-build/DotNetRestoreProjectJson.cs index d22982093..81f70d15f 100644 --- a/build_projects/dotnet-cli-build/DotNetRestoreProjectJson.cs +++ b/build_projects/dotnet-cli-build/DotNetRestoreProjectJson.cs @@ -12,7 +12,7 @@ namespace Microsoft.DotNet.Cli.Build protected override string Args { - get { return $"{GetVerbosity()} {GetFallbackSource()} {GetPackages()}"; } + get { return $"{GetVerbosity()} {GetFallbackSource()} {GetPackages()} {GetDisableParallel()}"; } } public string FallbackSource { get; set; } @@ -50,5 +50,10 @@ namespace Microsoft.DotNet.Cli.Build return null; } + + private string GetDisableParallel() + { + return "--disable-parallel"; + } } } diff --git a/run-build.sh b/run-build.sh index 37504a6bb..c842f7e2a 100755 --- a/run-build.sh +++ b/run-build.sh @@ -132,6 +132,9 @@ done < "$REPOROOT/branchinfo.txt" [ -z "$DOTNET_INSTALL_DIR" ] && export DOTNET_INSTALL_DIR=$REPOROOT/.dotnet_stage0/$ARCHITECTURE [ -d "$DOTNET_INSTALL_DIR" ] || mkdir -p $DOTNET_INSTALL_DIR +# During xplat bootstrapping, disable HTTP parallelism to avoid fatal restore timeouts. +export __INIT_TOOLS_RESTORE_ARGS="$__INIT_TOOLS_RESTORE_ARGS --disable-parallel" + DOTNET_SKIP_FIRST_TIME_EXPERIENCE=1 toolsLocalPath="$REPOROOT/build_tools" bootStrapperPath="$toolsLocalPath/bootstrap.sh"