echo %__MsgPrefix%Starting Build at %TIME%
+REM Set variables used when running in an Azure DevOps task
+if defined TF_BUILD (
+ set __ArcadeScriptArgs="-ci"
+ set __ErrMsgPrefix=##vso[task.logissue type=error]
+)
+
set __ThisScriptDir="%~dp0"
call "%__ThisScriptDir%"\setup_vs_tools.cmd
call "%__TestDir%\setup-stress-dependencies.cmd" /arch %__BuildArch% /outputdir %__BinDir%
if errorlevel 1 (
- echo %__MsgPrefix%Error: setup-stress-dependencies failed.
+ echo %__ErrMsgPrefix%%__MsgPrefix%Error: setup-stress-dependencies failed.
goto :Exit_Failure
)
@if defined _echo @echo on
@if defined _echo @echo on
if not defined VSINSTALLDIR (
- echo %__MsgPrefix%Error: VSINSTALLDIR variable not defined.
+ echo %__ErrMsgPrefix%%__MsgPrefix%Error: VSINSTALLDIR variable not defined.
exit /b 1
)
if not exist "%VSINSTALLDIR%DIA SDK" goto NoDIA
popd
if not exist "%__NativeTestIntermediatesDir%\install.vcxproj" (
- echo %__MsgPrefix%Failed to generate test native component build project!
+ echo %__ErrMsgPrefix%%__MsgPrefix%Failed to generate test native component build project!
exit /b 1
)
set __Logging=!__MsbuildLog! !__MsbuildWrn! !__MsbuildErr!
call "%__ProjectDir%\cmake_msbuild.cmd" /nologo /verbosity:minimal /clp:Summary /nodeReuse:false^
- /l:BinClashLogger,Tools/net46/Microsoft.DotNet.Build.Tasks.dll;LogFile=binclash.log^
/p:RestoreDefaultOptimizationDataPackage=false /p:PortableBuild=true^
/p:UsePartialNGENOptimization=false /maxcpucount^
"%__NativeTestIntermediatesDir%\install.vcxproj"^
!__Logging! /p:Configuration=%__BuildType% /p:Platform=%__BuildArch% %__CommonMSBuildArgs% %__PriorityArg% %__UnprocessedBuildArgs%
if errorlevel 1 (
- echo %__MsgPrefix%Error: build failed. Refer to the build log files for details:
+ echo %__ErrMsgPrefix%%__MsgPrefix%Error: native test build failed. Refer to the build log files for details.
echo %__BuildLog%
echo %__BuildWrn%
echo %__BuildErr%
set __MsbuildErr=/flp2:ErrorsOnly;LogFile="%__BuildErr%"
set __Logging=!__MsbuildLog! !__MsbuildWrn! !__MsbuildErr!
-call "%__ProjectDir%\dotnet.cmd" msbuild /nologo /verbosity:minimal /clp:Summary /nodeReuse:false^
- /l:BinClashLogger,Tools/Microsoft.DotNet.Build.Tasks.dll;LogFile=binclash.log^
+REM Disable warnAsError - coreclr issue 19922
+powershell -NoProfile -ExecutionPolicy ByPass -NoLogo -Command "%__ProjectDir%\eng\common\msbuild.ps1" %__ArcadeScriptArgs%^
+ %__ProjectDir%\tests\build.proj -warnAsError:0 /t:BatchRestorePackages /nodeReuse:false^
/p:RestoreDefaultOptimizationDataPackage=false /p:PortableBuild=true^
/p:UsePartialNGENOptimization=false /maxcpucount^
- %__ProjectDir%\tests\build.proj /t:BatchRestorePackages^
- !__Logging! %__CommonMSBuildArgs% %__PriorityArg% %__UnprocessedBuildArgs%
+ '!__Logging!' %__CommonMSBuildArgs% %__PriorityArg% %__UnprocessedBuildArgs%
:SkipRestoreProduct
echo %__MsgPrefix%Starting the Managed Tests Build
if not defined VSINSTALLDIR (
- echo %__MsgPrefix%Error: build-test.cmd should be run from a Visual Studio Command Prompt. Please see https://github.com/dotnet/coreclr/blob/master/Documentation/project-docs/developer-guide.md for build instructions.
+ echo %__ErrMsgPrefix%%__MsgPrefix%Error: build-test.cmd should be run from a Visual Studio Command Prompt. Please see https://github.com/dotnet/coreclr/blob/master/Documentation/project-docs/developer-guide.md for build instructions.
exit /b 1
)
set __AppendToLog=false
set __MsbuildLog=/flp:Verbosity=normal;LogFile="%__BuildLog%";Append=!__AppendToLog!
set __MsbuildWrn=/flp1:WarningsOnly;LogFile="%__BuildWrn%";Append=!__AppendToLog!
set __MsbuildErr=/flp2:ErrorsOnly;LogFile="%__BuildErr%";Append=!__AppendToLog!
+ set __Logging=!__MsbuildLog! !__MsbuildWrn! !__MsbuildErr!
set __TestGroupToBuild=%%G
echo Running: msbuild %__ProjectDir%\tests\build.proj !__MsbuildLog! !__MsbuildWrn! !__MsbuildErr! %TargetsWindowsMsbuildArg% %__msbuildArgs% !__PriorityArg! %__UnprocessedBuildArgs%
- call "%__ProjectDir%\dotnet.cmd" msbuild %__ProjectDir%\tests\build.proj !__MsbuildLog! !__MsbuildWrn! !__MsbuildErr! %TargetsWindowsMsbuildArg% %__msbuildArgs% !__PriorityArg! %__UnprocessedBuildArgs%
+ REM Disable warnAsError - coreclr issue 19922
+ powershell -NoProfile -ExecutionPolicy ByPass -NoLogo -Command "%__ProjectDir%\eng\common\msbuild.ps1" %__ArcadeScriptArgs%^
+ %__ProjectDir%\tests\build.proj -warnAsError:0 '!__Logging!' %TargetsWindowsMsbuildArg% %__msbuildArgs% !__PriorityArg! '%__UnprocessedBuildArgs%'
if errorlevel 1 (
- echo %__MsgPrefix%Error: build failed. Refer to the build log files for details:
+ echo %__ErrMsgPrefix%%__MsgPrefix%Error: managed test build failed. Refer to the build log files for details:
echo %__BuildLog%
echo %__BuildWrn%
echo %__BuildErr%
REM drastically fewer Pri-1 tests than expected.
echo %__MsgPrefix%Check the managed tests build
echo Running: dotnet msbuild %__ProjectDir%\tests\runtest.proj /t:CheckTestBuild /p:CLRTestPriorityToBuild=%__Priority% %__msbuildArgs% %__unprocessedBuildArgs%
-call "%__ProjectDir%\dotnet.cmd" msbuild %__ProjectDir%\tests\runtest.proj /t:CheckTestBuild /p:CLRTestPriorityToBuild=%__Priority% %__msbuildArgs% %__unprocessedBuildArgs%
+powershell -NoProfile -ExecutionPolicy ByPass -NoLogo -File "%__ProjectDir%\eng\common\msbuild.ps1" %__ArcadeScriptArgs%^
+ %__ProjectDir%\tests\runtest.proj /t:CheckTestBuild /p:CLRTestPriorityToBuild=%__Priority% %__msbuildArgs% %__unprocessedBuildArgs%
if errorlevel 1 (
- echo %__MsgPrefix%Error: build failed.
+ echo %__ErrMsgPrefix%%__MsgPrefix%Error: Check Test Build failed.
exit /b 1
)
set __MsbuildErr=/flp2:ErrorsOnly;LogFile="%__BuildErr%"
set __Logging=!__MsbuildLog! !__MsbuildWrn! !__MsbuildErr!
-call %__ProjectDir%\dotnet.cmd msbuild /nologo /verbosity:minimal /clp:Summary /nodeReuse:false^
- /l:BinClashLogger,Tools/Microsoft.DotNet.Build.Tasks.dll;LogFile=binclash.log^
+powershell -NoProfile -ExecutionPolicy ByPass -NoLogo -File "%__ProjectDir%\eng\common\msbuild.ps1" %__ArcadeScriptArgs%^
+ %__ProjectDir%\tests\runtest.proj /t:CreateTestOverlay /nodeReuse:false^
/p:RestoreDefaultOptimizationDataPackage=false /p:PortableBuild=true^
/p:UsePartialNGENOptimization=false /maxcpucount^
- %__ProjectDir%\tests\runtest.proj /t:CreateTestOverlay^
!__Logging! %__CommonMSBuildArgs% %RuntimeIdArg% %__PriorityArg% %__UnprocessedBuildArgs%
if errorlevel 1 (
- echo %__MsgPrefix%Error: build failed. Refer to the build log files for details:
+ echo %__ErrMsgPrefix%%__MsgPrefix%Error: Create Test Overlay failed. Refer to the build log files for details:
echo %__BuildLog%
echo %__BuildWrn%
echo %__BuildErr%
set __MsbuildErr=/flp2:ErrorsOnly;LogFile="%__BuildErr%"
set __Logging=!__MsbuildLog! !__MsbuildWrn! !__MsbuildErr!
-call %__ProjectDir%\dotnet.cmd msbuild /nologo /verbosity:minimal /clp:Summary /nodeReuse:false^
- /l:BinClashLogger,Tools/Microsoft.DotNet.Build.Tasks.dll;LogFile=binclash.log^
+powershell -NoProfile -ExecutionPolicy ByPass -NoLogo -File "%__ProjectDir%\eng\common\msbuild.ps1" %__ArcadeScriptArgs%^
+ %__ProjectDir%\tests\runtest.proj /t:CreateTestHost /nodeReuse:false^
/p:RestoreDefaultOptimizationDataPackage=false /p:PortableBuild=true^
/p:UsePartialNGENOptimization=false /maxcpucount^
- %__ProjectDir%\tests\runtest.proj /t:CreateTestHost^
!__Logging! %__CommonMSBuildArgs% %RuntimeIdArg% %__PriorityArg% %__UnprocessedBuildArgs%
if errorlevel 1 (
- echo %__MsgPrefix%Error: build failed. Refer to the build log files for details:
+ echo %__ErrMsgPrefix%%__MsgPrefix%Error: Create Test Host failed. Refer to the build log files for details:
echo %__BuildLog%
echo %__BuildWrn%
echo %__BuildErr%
REM Build wrappers using the local SDK's msbuild. As we move to arcade, the other builds should be moved away from run.exe as well.
call "%__ProjectDir%\dotnet.cmd" msbuild %__ProjectDir%\tests\runtest.proj /p:RestoreAdditionalProjectSources=https://dotnet.myget.org/F/dotnet-core/ /p:BuildWrappers=true !__Logging! %__msbuildArgs% %TargetsWindowsMsbuildArg% %__UnprocessedBuildArgs%
if errorlevel 1 (
- echo %__MsgPrefix%Error: Xunit wrapper build failed. Refer to the build log files for details:
+ echo %__ErrMsgPrefix%%__MsgPrefix%Error: XUnit wrapper build failed. Refer to the build log files for details:
echo %__BuildLog%
echo %__BuildWrn%
echo %__BuildErr%
REM Delete original .dll & replace it with the Crossgened .dll
del %1
ren "%CORE_ROOT%\temp.ni.dll" %2
-
+
echo Successfully precompiled %2
exit /b 0
eval $nextCommand
if [ $? -ne 0 ]; then
- echo "${__MsgPrefix}Error: build failed. Refer to the build log files for details (above)"
+ echo "${__ErrMsgPrefix}${__MsgPrefix}Error: XUnit wrapper build failed. Refer to the build log files for details (above)"
exit 1
else
echo "XUnit Wrappers have been built."
echo "Resolve runtime dependences via $nextCommand"
eval $nextCommand
if [ $? != 0 ]; then
- echo "${__MsgPrefix}Error: setup-stress-dependencies failed."
+ echo "${__ErrMsgPrefix}${__MsgPrefix}Error: setup-stress-dependencies failed."
exit 1
fi
fi
build_native_projects "$__BuildArch" "${__NativeTestIntermediatesDir}"
if [ $? -ne 0 ]; then
- echo "${__MsgPrefix}Error: build failed. Refer to the build log files for details (above)"
+ echo "${__ErrMsgPrefix}${__MsgPrefix}Error: native test build failed. Refer to the build log files for details (above)"
exit 1
fi
fi
build_MSBuild_projects "Tests_Managed" "$__ProjectDir/tests/build.proj" "Managed tests build (build tests)" "$__up"
if [ $? -ne 0 ]; then
- echo "${__MsgPrefix}Error: build failed. Refer to the build log files for details (above)"
+ echo "${__ErrMsgPrefix}${__MsgPrefix}Error: managed test build failed. Refer to the build log files for details (above)"
exit 1
else
echo "Checking the Managed Tests Build..."
build_MSBuild_projects "Check_Test_Build" "${__ProjectDir}/tests/runtest.proj" "Check Test Build" "/t:CheckTestBuild"
if [ $? -ne 0 ]; then
- echo "${__MsgPrefix}Error: Check Test Build failed."
+ echo "${__ErrMsgPrefix}${__MsgPrefix}Error: Check Test Build failed."
exit 1
fi
fi
__BuildWrn="$__LogsDir/${__BuildLogRootName}.${__BuildOS}.${__BuildArch}.${__BuildType}.wrn"
__BuildErr="$__LogsDir/${__BuildLogRootName}.${__BuildOS}.${__BuildArch}.${__BuildType}.err"
- # Use binclashlogger by default if no other logger is specified
- if [[ "${extraBuildParameters[*]}" == *"/l:"* ]]; then
- __msbuildEventLogging=
- else
- __msbuildEventLogging="/l:BinClashLogger,Tools/Microsoft.DotNet.Build.Tasks.dll\;LogFile=binclash.log"
- fi
-
if [[ "$subDirectoryName" == "Tests_Managed" ]]; then
# Execute msbuild managed test build in stages - workaround for excessive data retention in MSBuild ConfigCache
# See https://github.com/Microsoft/msbuild/issues/2993
export __TestGroupToBuild=$testGroupToBuild
# Generate build command
- buildArgs=("/nologo" "/verbosity:minimal" "/clp:Summary")
+ buildArgs=("$projectName")
buildArgs+=("/p:RestoreDefaultOptimizationDataPackage=false" "/p:PortableBuild=true")
buildArgs+=("/p:UsePartialNGENOptimization=false" "/maxcpucount")
- buildArgs+=("$projectName" "${__msbuildLog}" "${__msbuildWrn}" "${__msbuildErr}")
- buildArgs+=("$__msbuildEventLogging")
+ buildArgs+=("${__msbuildLog}" "${__msbuildWrn}" "${__msbuildErr}")
buildArgs+=("${extraBuildParameters[@]}")
buildArgs+=("${__CommonMSBuildArgs[@]}")
buildArgs+=("${__UnprocessedBuildArgs[@]}")
- nextCommand="\"$__ProjectRoot/dotnet.sh\" msbuild ${buildArgs[@]}"
+ # Disable warnAsError - coreclr issue 19922
+ nextCommand="\"$__ProjectRoot/eng/common/msbuild.sh\" $__ArcadeScriptArgs --warnAsError false ${buildArgs[@]}"
echo "Building step '$stepName' testGroupToBuild=$testGroupToBuild via $nextCommand"
eval $nextCommand
# Make sure everything is OK
if [ $? -ne 0 ]; then
- echo "${__MsgPrefix}Failed to build $stepName. See the build logs:"
+ echo "${__ErrMsgPrefix}${__MsgPrefix}Failed to build $stepName. See the build logs:"
echo " $__BuildLog"
echo " $__BuildWrn"
echo " $__BuildErr"
__msbuildErr="\"/flp2:ErrorsOnly;LogFile=${__BuildErr}\""
# Generate build command
- buildArgs=("/nologo" "/verbosity:minimal" "/clp:Summary")
+ buildArgs=("$projectName")
buildArgs+=("/p:RestoreDefaultOptimizationDataPackage=false" "/p:PortableBuild=true")
buildArgs+=("/p:UsePartialNGENOptimization=false" "/maxcpucount")
- buildArgs+=("$projectName" "${__msbuildLog}" "${__msbuildWrn}" "${__msbuildErr}")
- buildArgs+=("$__msbuildEventLogging")
+ buildArgs+=("${__msbuildLog}" "${__msbuildWrn}" "${__msbuildErr}")
buildArgs+=("${extraBuildParameters[@]}")
buildArgs+=("${__CommonMSBuildArgs[@]}")
buildArgs+=("${__UnprocessedBuildArgs[@]}")
- nextCommand="\"$__ProjectRoot/dotnet.sh\" msbuild ${buildArgs[@]}"
+ # Disable warnAsError - coreclr issue 19922
+ nextCommand="\"$__ProjectRoot/eng/common/msbuild.sh\" $__ArcadeScriptArgs --warnAsError false ${buildArgs[@]}"
echo "Building step '$stepName' via $nextCommand"
eval $nextCommand
# Make sure everything is OK
if [ $? -ne 0 ]; then
- echo "${__MsgPrefix}Failed to build $stepName. See the build logs:"
+ echo "${__ErrMsgPrefix}${__MsgPrefix}Failed to build $stepName. See the build logs:"
echo " $__BuildLog"
echo " $__BuildWrn"
echo " $__BuildErr"
/p:ArcadeBuild=true /t:GenerateNativeVersionFile /restore \
$__CommonMSBuildArgs $__UnprocessedBuildArgs
if [ $? -ne 0 ]; then
- echo "Failed to generate native version file."
+ echo "${__ErrMsgPrefix}Failed to generate native version file."
exit $?
fi
else
fi
if [ ! -f "$intermediatesForBuild/$buildFile" ]; then
- echo "Failed to generate $message build project!"
+ echo "${__ErrMsgPrefix}Failed to generate $message build project!"
exit 1
fi
$buildTool install -j $__NumProc
if [ $? != 0 ]; then
- echo "Failed to build $message."
+ echo "${__ErrMsgPrefix}Failed to build $message."
exit 1
fi
;;
esac
+# Set variables used when running in an Azure DevOps task
+if [[ ! -z $TF_BUILD ]]; then
+ __ArcadeScriptArgs="--ci"
+ __ErrMsgPrefix="##vso[task.logissue type=error]"
+fi
+
__BuildType=Debug
__CodeCoverage=
__IncludeTests=INCLUDE_TESTS
echo %__MsgPrefix%Starting Build at %TIME%
+REM Set variables used when running in an Azure DevOps task
+if defined TF_BUILD (
+ set __ArcadeScriptArgs="-ci"
+ set __ErrMsgPrefix=##vso[task.logissue type=error]
+)
+
set __ThisScriptFull="%~f0"
set __ThisScriptDir="%~dp0"
@if defined _echo @echo on
-powershell -NoProfile -ExecutionPolicy ByPass -NoLogo -File "%__ProjectDir%\eng\common\msbuild.ps1"^
+powershell -NoProfile -ExecutionPolicy ByPass -NoLogo -File "%__ProjectDir%\eng\common\msbuild.ps1" %__ArcadeScriptArgs%^
%__ProjectDir%\eng\empty.csproj /p:NativeVersionFile="%__RootBinDir%\obj\_version.h"^
/p:ArcadeBuild=true /t:GenerateNativeVersionFile /restore^
%__CommonMSBuildArgs% %__UnprocessedBuildArgs%
if not !errorlevel! == 0 (
- echo %__MsgPrefix%Error: Failed to generate version headers.
+ echo %__ErrMsgPrefix%%__MsgPrefix%Error: Failed to generate version headers.
exit /b !errorlevel!
)
set OptDataProjectFilePath=%__ProjectDir%\src\.nuget\optdata\optdata.csproj
if %__RestoreOptData% EQU 1 (
echo %__MsgPrefix%Restoring the OptimizationData Package
- call %__ProjectDir%\dotnet.cmd restore /nologo /verbosity:minimal^
- /nodeReuse:false /maxcpucount^
- %OptDataProjectFilePath%^
- %__CommonMSBuildArgs% %__UnprocessedBuildArgs%
+ powershell -NoProfile -ExecutionPolicy ByPass -NoLogo -File "%__ProjectDir%\eng\common\msbuild.ps1" %__ArcadeScriptArgs%^
+ %OptDataProjectFilePath% /t:Restore^
+ %__CommonMSBuildArgs% %__UnprocessedBuildArgs%
if not !errorlevel! == 0 (
- echo %__MsgPrefix%Error: Failed to restore the optimization data package.
- exit /b 1
+ echo %__ErrMsgPrefix%%__MsgPrefix%Error: Failed to restore the optimization data package.
+ exit /b !errorlevel!
)
)
set IbcDataPackageVersionOutputFile="%__IntermediatesDir%\ibcoptdataversion.txt"
REM Parse the optdata package versions out of msbuild so that we can pass them on to CMake
-call "%__ProjectDir%\dotnet.cmd" msbuild "%OptDataProjectFilePath%" /t:DumpPgoDataPackageVersion /nologo %__CommonMSBuildArgs% /p:PgoDataPackageVersionOutputFile="!PgoDataPackageVersionOutputFile!"
+powershell -NoProfile -ExecutionPolicy ByPass -NoLogo -File "%__ProjectDir%\eng\common\msbuild.ps1" %__ArcadeScriptArgs%^
+ "%OptDataProjectFilePath%" /t:DumpPgoDataPackageVersion %__CommonMSBuildArgs% /p:PgoDataPackageVersionOutputFile="!PgoDataPackageVersionOutputFile!"
if not !errorlevel! == 0 (
- echo "Failed to get PGO data package version."
+ echo %__ErrMsgPrefix%Failed to get PGO data package version.
exit /b !errorlevel!
)
if not exist "!PgoDataPackageVersionOutputFile!" (
- echo "Failed to get PGO data package version."
+ echo %__ErrMsgPrefix%Failed to get PGO data package version.
exit /b 1
)
set /p __PgoOptDataVersion=<"!PgoDataPackageVersionOutputFile!"
-call "%__ProjectDir%\dotnet.cmd" msbuild "%OptDataProjectFilePath%" /t:DumpIbcDataPackageVersion /nologo %__CommonMSBuildArgs% /p:IbcDataPackageVersionOutputFile="!IbcDataPackageVersionOutputFile!"
+powershell -NoProfile -ExecutionPolicy ByPass -NoLogo -File "%__ProjectDir%\eng\common\msbuild.ps1" %__ArcadeScriptArgs%^
+ "%OptDataProjectFilePath%" /t:DumpIbcDataPackageVersion /nologo %__CommonMSBuildArgs% /p:IbcDataPackageVersionOutputFile="!IbcDataPackageVersionOutputFile!"
if not !errorlevel! == 0 (
- echo "Failed to get IBC data package version."
+ echo %__ErrMsgPrefix%Failed to get IBC data package version.
exit /b !errorlevel!
)
if not exist "!IbcDataPackageVersionOutputFile!" (
- echo "Failed to get IBC data package version."
+ echo %__ErrMsgPrefix%Failed to get IBC data package version.
exit /b 1
)
set /p PYTHON=<%TEMP%\pythonlocation.txt
if NOT DEFINED PYTHON (
- echo %__MsgPrefix%Error: Could not find a python installation
+ echo %__ErrMsgPrefix%%__MsgPrefix%Error: Could not find a python installation
exit /b 1
)
:SkipConfigureCrossBuild
if not exist "%__CrossCompIntermediatesDir%\install.vcxproj" (
- echo %__MsgPrefix%Error: failed to generate cross-arch components build project!
+ echo %__ErrMsgPrefix%%__MsgPrefix%Error: failed to generate cross-arch components build project!
exit /b 1
)
!__Logging! /p:Configuration=%__BuildType% /p:Platform=%__CrossArch% %__CommonMSBuildArgs% %__UnprocessedBuildArgs%
if not !errorlevel! == 0 (
- echo %__MsgPrefix%Error: cross-arch components build failed. Refer to the build log files for details:
+ echo %__ErrMsgPrefix%%__MsgPrefix%Error: cross-arch components build failed. Refer to the build log files for details.
echo !__BuildLog!
echo !__BuildWrn!
echo !__BuildErr!
- exit /b 1
+ exit /b !errorlevel!
)
:SkipCrossCompBuild
@if defined _echo @echo on
if not defined VSINSTALLDIR (
- echo %__MsgPrefix%Error: VSINSTALLDIR variable not defined.
+ echo %__ErrMsgPrefix%%__MsgPrefix%Error: VSINSTALLDIR variable not defined.
exit /b 1
)
if not exist "!VSINSTALLDIR!DIA SDK" goto NoDIA
:SkipConfigure
if not exist "%__IntermediatesDir%\install.vcxproj" (
- echo %__MsgPrefix%Error: failed to generate native component build project!
+ echo %__ErrMsgPrefix%%__MsgPrefix%Error: failed to generate native component build project!
exit /b 1
)
!__Logging! /p:Configuration=%__BuildType% /p:Platform=%__BuildArch% %__CommonMSBuildArgs% %__UnprocessedBuildArgs%
if not !errorlevel! == 0 (
- echo %__MsgPrefix%Error: native component build failed. Refer to the build log files for details:
+ echo %__ErrMsgPrefix%%__MsgPrefix%Error: native component build failed. Refer to the build log files for details.
echo !__BuildLog!
echo !__BuildWrn!
echo !__BuildErr!
- exit /b 1
+ exit /b !errorlevel!
)
:SkipNativeBuild
set __MsbuildErr=/flp2:ErrorsOnly;LogFile=!__BuildErr!
set __Logging=!__MsbuildLog! !__MsbuildWrn! !__MsbuildErr!
- call %__ProjectDir%\dotnet.cmd restore /nologo /verbosity:minimal /clp:Summary /nodeReuse:false^
- /p:PortableBuild=true /maxcpucount /p:IncludeRestoreOnlyProjects=true /p:ArcadeBuild=true^
- %__ProjectDir%\src\build.proj^
- !__Logging! %__CommonMSBuildArgs% !__ExtraBuildArgs! %__UnprocessedBuildArgs%
+ powershell -NoProfile -ExecutionPolicy ByPass -NoLogo -File "%__ProjectDir%\eng\common\msbuild.ps1" %__ArcadeScriptArgs%^
+ %__ProjectDir%\src\build.proj /t:Restore^
+ /nodeReuse:false /p:PortableBuild=true /maxcpucount /p:IncludeRestoreOnlyProjects=true /p:ArcadeBuild=true^
+ !__Logging! %__CommonMSBuildArgs% !__ExtraBuildArgs! %__UnprocessedBuildArgs%
if not !errorlevel! == 0 (
- echo %__MsgPrefix%Error: Managed Product assemblies restore failed. Refer to the build log files for details:
+ echo %__ErrMsgPrefix%%__MsgPrefix%Error: Managed Product assemblies restore failed. Refer to the build log files for details.
echo !__BuildLog!
echo !__BuildWrn!
echo !__BuildErr!
- exit /b 1
+ exit /b !errorlevel!
)
- call %__ProjectDir%\dotnet.cmd msbuild /nologo /verbosity:minimal /clp:Summary /nodeReuse:false^
- /p:PortableBuild=true /maxcpucount /p:ArcadeBuild=true^
- %__ProjectDir%\src\build.proj^
- !__Logging! %__CommonMSBuildArgs% !__ExtraBuildArgs! %__UnprocessedBuildArgs%
+ REM Disable warnAsError to work around VS bug (948084) where ucrt lib path is not set properly, resulting in CS1668
+ powershell -NoProfile -ExecutionPolicy ByPass -NoLogo -Command "%__ProjectDir%\eng\common\msbuild.ps1" %__ArcadeScriptArgs%^
+ %__ProjectDir%\src\build.proj -warnAsError:0^
+ /nodeReuse:false /p:PortableBuild=true /maxcpucount /p:ArcadeBuild=true^
+ '!__Logging!' %__CommonMSBuildArgs% !__ExtraBuildArgs! %__UnprocessedBuildArgs%
if not !errorlevel! == 0 (
- echo %__MsgPrefix%Error: Managed Product assemblies build failed. Refer to the build log files for details:
+ echo %__ErrMsgPrefix%%__MsgPrefix%Error: Managed Product assemblies build failed. Refer to the build log files for details.
echo !__BuildLog!
echo !__BuildWrn!
echo !__BuildErr!
- exit /b 1
+ exit /b !errorlevel!
)
)
if %__IbcOptimize% EQU 1 (
echo %__MsgPrefix%Commencing IBCMerge of System.Private.CoreLib for %__BuildOS%.%__BuildArch%.%__BuildType%
set IbcMergeProjectFilePath=%__ProjectDir%\src\.nuget\optdata\ibcmerge.csproj
set IbcMergePackageVersionOutputFile="%__IntermediatesDir%\ibcmergeversion.txt"
- call "%__ProjectDir%\dotnet.cmd" msbuild "!IbcMergeProjectFilePath!" /t:DumpIbcMergePackageVersion /nologo %__CommonMSBuildArgs% /p:IbcMergePackageVersionOutputFile="!IbcMergePackageVersionOutputFile!"
+ powershell -NoProfile -ExecutionPolicy ByPass -NoLogo -File "%__ProjectDir%\eng\common\msbuild.ps1" %__ArcadeScriptArgs%^
+ "!IbcMergeProjectFilePath!" /t:DumpIbcMergePackageVersion /nologo %__CommonMSBuildArgs% /p:IbcMergePackageVersionOutputFile="!IbcMergePackageVersionOutputFile!"
if not !errorlevel! == 0 (
- echo "Failed to determine IBC Merge version."
+ echo %__ErrMsgPrefix%Failed to determine IBC Merge version.
exit /b !errorlevel!
)
if not exist "!IbcMergePackageVersionOutputFile!" (
- echo "Failed to determine IBC Merge version."
+ echo %__ErrMsgPrefix%Failed to determine IBC Merge version.
exit /b 1
)
-
+
set /p __IbcMergeVersion=<"!IbcMergePackageVersionOutputFile!"
set IbcMergePath=%__PackagesDir%\microsoft.dotnet.ibcmerge\!__IbcMergeVersion!\tools\netcoreapp2.0\ibcmerge.dll
echo %__MsgPrefix%!NEXTCMD! >> "%__CrossGenCoreLibLog%"
call !NEXTCMD! >> "%__CrossGenCoreLibLog%" 2>&1
if NOT !errorlevel! == 0 (
- echo %__MsgPrefix%Error: IbcMerge of System.Private.CoreLib build failed. Refer to %__CrossGenCoreLibLog%
+ echo %__ErrMsgPrefix%%__MsgPrefix%Error: IbcMerge of System.Private.CoreLib build failed. Refer to %__CrossGenCoreLibLog%
REM Put it in the same log, helpful for Jenkins
type %__CrossGenCoreLibLog%
goto CrossgenFailure
echo %__MsgPrefix%!NEXTCMD! >> "%__CrossGenCoreLibLog%"
call !NEXTCMD! >> "%__CrossGenCoreLibLog%" 2>&1
if NOT !errorlevel! == 0 (
- echo %__MsgPrefix%Error: IbcMerge of System.Private.CoreLib build failed. Refer to %__CrossGenCoreLibLog%
+ echo %__ErrMsgPrefix%%__MsgPrefix%Error: IbcMerge of System.Private.CoreLib build failed. Refer to %__CrossGenCoreLibLog%
REM Put it in the same log, helpful for Jenkins
type %__CrossGenCoreLibLog%
goto CrossgenFailure
echo %__MsgPrefix%!NEXTCMD! >> "%__CrossGenCoreLibLog%"
call !NEXTCMD! >> "%__CrossGenCoreLibLog%" 2>&1
if NOT !errorlevel! == 0 (
- echo %__MsgPrefix%Error: IbcMerge of System.Private.CoreLib build failed. Refer to %__CrossGenCoreLibLog%
+ echo %__ErrMsgPrefix%%__MsgPrefix%Error: IbcMerge of System.Private.CoreLib build failed. Refer to %__CrossGenCoreLibLog%
REM Put it in the same log, helpful for Jenkins
type %__CrossGenCoreLibLog%
goto CrossgenFailure
echo %__MsgPrefix%!NEXTCMD! >> "%__CrossGenCoreLibLog%"
call !NEXTCMD! >> "%__CrossGenCoreLibLog%" 2>&1
if NOT !errorlevel! == 0 (
- echo %__MsgPrefix%Error: IbcMerge of System.Private.CoreLib build failed. Refer to %__CrossGenCoreLibLog%
+ echo %__ErrMsgPrefix%%__MsgPrefix%Error: IbcMerge of System.Private.CoreLib build failed. Refer to %__CrossGenCoreLibLog%
REM Put it in the same log, helpful for Jenkins
type %__CrossGenCoreLibLog%
goto CrossgenFailure
)
) else (
echo %__MsgPrefix%!TargetOptimizationDataFile! does not exist >> %__CrossGenCoreLibLog%
- echo %__MsgPrefix%Error: IbcMerge of System.Private.CoreLib build failed. Refer to %__CrossGenCoreLibLog%
+ echo %__ErrMsgPrefix%%__MsgPrefix%Error: IbcMerge of System.Private.CoreLib build failed. Refer to %__CrossGenCoreLibLog%
REM Put it in the same log, helpful for Jenkins
type %__CrossGenCoreLibLog%
goto CrossgenFailure
call "%__VCToolsRoot%\vcvarsall.bat" !__VCExecArch!
@if defined _echo @echo on
if NOT !errorlevel! == 0 (
- echo %__MsgPrefix%Error: Failed to load native tools environment for !__VCExecArch!
+ echo %__ErrMsgPrefix%%__MsgPrefix%Error: Failed to load native tools environment for !__VCExecArch!
goto CrossgenFailure
)
)
echo %__MsgPrefix%Copying "!__PgoRtPath!" into "%__BinDir%"
copy /y "!__PgoRtPath!" "%__BinDir%" || (
- echo %__MsgPrefix%Error: copy failed
+ echo %__ErrMsgPrefix%%__MsgPrefix%Error: copy failed
goto CrossgenFailure
)
REM End HACK
echo %__MsgPrefix%!NEXTCMD! >> "%__CrossGenCoreLibLog%"
!NEXTCMD! >> "%__CrossGenCoreLibLog%" 2>&1
if NOT !errorlevel! == 0 (
- echo %__MsgPrefix%Error: CrossGen System.Private.CoreLib build failed. Refer to %__CrossGenCoreLibLog%
+ echo %__ErrMsgPrefix%%__MsgPrefix%Error: CrossGen System.Private.CoreLib build failed. Refer to %__CrossGenCoreLibLog%
REM Put it in the same log, helpful for Jenkins
type %__CrossGenCoreLibLog%
goto CrossgenFailure
echo %__MsgPrefix%!NEXTCMD! >> "%__CrossGenCoreLibLog%"
!NEXTCMD! >> "%__CrossGenCoreLibLog%" 2>&1
if NOT !errorlevel! == 0 (
- echo %__MsgPrefix%Error: CrossGen /CreatePdb System.Private.CoreLib build failed. Refer to %__CrossGenCoreLibLog%
+ echo %__ErrMsgPrefix%%__MsgPrefix%Error: CrossGen /CreatePdb System.Private.CoreLib build failed. Refer to %__CrossGenCoreLibLog%
REM Put it in the same log, helpful for Jenkins
type %__CrossGenCoreLibLog%
goto CrossgenFailure
/p:PortableBuild=true /p:ArcadeBuild=true^
/p:Platform=%__BuildArch% %__CommonMSBuildArgs% %__UnprocessedBuildArgs%
if not !errorlevel! == 0 (
- echo %__MsgPrefix%Error: Nuget package generation failed. Refer to the build log file for details:
+ echo %__ErrMsgPrefix%%__MsgPrefix%Error: Nuget package generation failed. Refer to the build log file for details.
echo !__BuildLog!
exit /b !errorlevel!
)
local OptDataProjectFilePath="$__ProjectRoot/src/.nuget/optdata/optdata.csproj"
if [[ ( $__SkipRestoreOptData == 0 ) && ( $__isMSBuildOnNETCoreSupported == 1 ) ]]; then
echo "Restoring the OptimizationData package"
- "$__ProjectRoot/dotnet.sh" restore /nologo /verbosity:minimal /clp:Summary /m \
- $OptDataProjectFilePath \
- $__CommonMSBuildArgs $__UnprocessedBuildArgs
- if [ $? != 0 ]; then
- echo "Failed to restore the optimization data package."
- exit 1
+ "$__ProjectRoot/eng/common/msbuild.sh" $__ArcadeScriptArgs \
+ $OptDataProjectFilePath /t:Restore /m \
+ $__CommonMSBuildArgs $__UnprocessedBuildArgs
+ local exit_code=$?
+ if [ $exit_code != 0 ]; then
+ echo "${__ErrMsgPrefix}Failed to restore the optimization data package."
+ exit $exit_code
fi
fi
local IbcDataPackageVersionOutputFile="${__IntermediatesDir}/ibcoptdataversion.txt"
# Writes into ${PgoDataPackageVersionOutputFile}
- ${__ProjectDir}/dotnet.sh msbuild $OptDataProjectFilePath /t:DumpPgoDataPackageVersion ${__CommonMSBuildArgs} /p:PgoDataPackageVersionOutputFile=${PgoDataPackageVersionOutputFile} /nologo 2>&1 > /dev/null
- if [ $? != 0 ] || [ ! -f "${PgoDataPackageVersionOutputFile}" ]; then
- echo "Failed to get PGO data package version."
- exit $?
+ "$__ProjectRoot/eng/common/msbuild.sh" $__ArcadeScriptArgs $OptDataProjectFilePath /t:DumpPgoDataPackageVersion ${__CommonMSBuildArgs} /p:PgoDataPackageVersionOutputFile=${PgoDataPackageVersionOutputFile} 2>&1 > /dev/null
+ local exit_code=$?
+ if [ $exit_code != 0 ] || [ ! -f "${PgoDataPackageVersionOutputFile}" ]; then
+ echo "${__ErrMsgPrefix}Failed to get PGO data package version."
+ exit $exit_code
fi
__PgoOptDataVersion=$(<"${PgoDataPackageVersionOutputFile}")
# Writes into ${IbcDataPackageVersionOutputFile}
- ${__ProjectDir}/dotnet.sh msbuild $OptDataProjectFilePath /t:DumpIbcDataPackageVersion ${__CommonMSBuildArgs} /p:IbcDataPackageVersionOutputFile=${IbcDataPackageVersionOutputFile} /nologo 2>&1 > /dev/null
- if [ $? != 0 ] || [ ! -f "${IbcDataPackageVersionOutputFile}" ]; then
- echo "Failed to get IBC data package version."
- exit $?
+ "$__ProjectRoot/eng/common/msbuild.sh" $__ArcadeScriptArgs $OptDataProjectFilePath /t:DumpIbcDataPackageVersion ${__CommonMSBuildArgs} /p:IbcDataPackageVersionOutputFile=${IbcDataPackageVersionOutputFile} 2>&1 > /dev/null
+ local exit_code=$?
+ if [ $exit_code != 0 ] || [ ! -f "${IbcDataPackageVersionOutputFile}" ]; then
+ echo "${__ErrMsgPrefix}Failed to get IBC data package version."
+ exit $exit_code
fi
__IbcOptDataVersion=$(<"${IbcDataPackageVersionOutputFile}")
__versionSourceFile="$intermediatesForBuild/version.c"
if [ $__SkipGenerateVersion == 0 ]; then
pwd
- "$__ProjectRoot/eng/common/msbuild.sh" $__ProjectRoot/eng/empty.csproj \
- /p:NativeVersionFile=$__versionSourceFile \
- /p:ArcadeBuild=true /t:GenerateNativeVersionFile /restore \
- $__CommonMSBuildArgs $__UnprocessedBuildArgs
- if [ $? -ne 0 ]; then
- echo "Failed to generate native version file."
- exit $?
+ "$__ProjectRoot/eng/common/msbuild.sh" $__ArcadeScriptArgs $__ProjectRoot/eng/empty.csproj \
+ /p:NativeVersionFile=$__versionSourceFile \
+ /p:ArcadeBuild=true /t:GenerateNativeVersionFile /restore \
+ $__CommonMSBuildArgs $__UnprocessedBuildArgs
+ local exit_code=$?
+ if [ $exit_code != 0 ]; then
+ echo "${__ErrMsgPrefix}Failed to generate native version file."
+ exit $exit_code
fi
else
# Generate the dummy version.c, but only if it didn't exist to make sure we don't trigger unnecessary rebuild
fi
if [ ! -f "$intermediatesForBuild/$buildFile" ]; then
- echo "Failed to generate $message build project!"
+ echo "${__ErrMsgPrefix}Failed to generate $message build project!"
exit 1
fi
echo "Executing $buildTool install -j $__NumProc"
$buildTool install -j $__NumProc
- if [ $? != 0 ]; then
- echo "Failed to build $message."
- exit 1
+ local exit_code=$?
+ if [ $exit_code != 0 ]; then
+ echo "${__ErrMsgPrefix}Failed to build $message."
+ exit $exit_code
fi
popd
echo "Generating native image of System.Private.CoreLib.dll for $__BuildOS.$__BuildArch.$__BuildType. Logging to \"$__CrossGenCoreLibLog\"."
echo "$__CrossGenExec /Platform_Assemblies_Paths $__CoreLibILDir $__IbcTuning /out $__BinDir/System.Private.CoreLib.dll $__CoreLibILDir/System.Private.CoreLib.dll"
$__CrossGenExec /Platform_Assemblies_Paths $__CoreLibILDir $__IbcTuning /out $__BinDir/System.Private.CoreLib.dll $__CoreLibILDir/System.Private.CoreLib.dll >> $__CrossGenCoreLibLog 2>&1
- if [ $? -ne 0 ]; then
- echo "Failed to generate native image for System.Private.CoreLib. Refer to $__CrossGenCoreLibLog"
- exit 1
+ local exit_code=$?
+ if [ $exit_code != 0 ]; then
+ echo "${__ErrMsgPrefix}Failed to generate native image for System.Private.CoreLib. Refer to $__CrossGenCoreLibLog"
+ exit $exit_code
fi
if [ "$__BuildOS" == "Linux" ]; then
echo "Generating symbol file for System.Private.CoreLib.dll"
echo "$__CrossGenExec /Platform_Assemblies_Paths $__BinDir /CreatePerfMap $__BinDir $__BinDir/System.Private.CoreLib.dll"
$__CrossGenExec /Platform_Assemblies_Paths $__BinDir /CreatePerfMap $__BinDir $__BinDir/System.Private.CoreLib.dll >> $__CrossGenCoreLibLog 2>&1
- if [ $? -ne 0 ]; then
- echo "Failed to generate symbol file for System.Private.CoreLib. Refer to $__CrossGenCoreLibLog"
- exit 1
+ local exit_code=$?
+ if [ $exit_code != 0 ]; then
+ echo "${__ErrMsgPrefix}Failed to generate symbol file for System.Private.CoreLib. Refer to $__CrossGenCoreLibLog"
+ exit $exit_code
fi
fi
}
__ExtraBuildArgs="$__ExtraBuildArgs /p:BuildManagedTools=true"
fi
- $__ProjectRoot/dotnet.sh restore /nologo /verbosity:minimal /clp:Summary \
- /p:PortableBuild=true /maxcpucount /p:IncludeRestoreOnlyProjects=true /p:ArcadeBuild=true\
- $__ProjectDir/src/build.proj \
- /flp:Verbosity=normal\;LogFile=$__LogsDir/System.Private.CoreLib_$__BuildOS__$__BuildArch__$__BuildType.log \
- /p:__IntermediatesDir=$__IntermediatesDir /p:__RootBinDir=$__RootBinDir \
- $__CommonMSBuildArgs $__ExtraBuildArgs $__UnprocessedBuildArgs
-
- if [ $? -ne 0 ]; then
- echo "Failed to restore managed components."
- exit 1
+ "$__ProjectRoot/eng/common/msbuild.sh" $__ArcadeScriptArgs \
+ $__ProjectDir/src/build.proj /t:Restore \
+ /p:PortableBuild=true /maxcpucount /p:IncludeRestoreOnlyProjects=true /p:ArcadeBuild=true\
+ /flp:Verbosity=normal\;LogFile=$__LogsDir/System.Private.CoreLib_$__BuildOS__$__BuildArch__$__BuildType.log \
+ /p:__IntermediatesDir=$__IntermediatesDir /p:__RootBinDir=$__RootBinDir \
+ $__CommonMSBuildArgs $__ExtraBuildArgs $__UnprocessedBuildArgs
+
+ local exit_code=$?
+ if [ $exit_code != 0 ]; then
+ echo "${__ErrMsgPrefix}Failed to restore managed components."
+ exit $exit_code
fi
- $__ProjectRoot/dotnet.sh msbuild /nologo /verbosity:minimal /clp:Summary \
- /p:PortableBuild=true /maxcpucount /p:ArcadeBuild=true\
- $__ProjectDir/src/build.proj \
- /flp:Verbosity=normal\;LogFile=$__LogsDir/System.Private.CoreLib_$__BuildOS__$__BuildArch__$__BuildType.log \
- /p:__IntermediatesDir=$__IntermediatesDir /p:__RootBinDir=$__RootBinDir \
- $__CommonMSBuildArgs $__ExtraBuildArgs $__UnprocessedBuildArgs
-
- if [ $? -ne 0 ]; then
- echo "Failed to build managed components."
- exit 1
+ "$__ProjectRoot/eng/common/msbuild.sh" $__ArcadeScriptArgs \
+ $__ProjectDir/src/build.proj \
+ /p:PortableBuild=true /maxcpucount /p:ArcadeBuild=true\
+ /flp:Verbosity=normal\;LogFile=$__LogsDir/System.Private.CoreLib_$__BuildOS__$__BuildArch__$__BuildType.log \
+ /p:__IntermediatesDir=$__IntermediatesDir /p:__RootBinDir=$__RootBinDir \
+ $__CommonMSBuildArgs $__ExtraBuildArgs $__UnprocessedBuildArgs
+
+ local exit_code=$?
+ if [ $exit_code != 0 ]; then
+ echo "${__ErrMsgPrefix}Failed to build managed components."
+ exit $exit_code
fi
local __CoreLibILDir=$__BinDir/IL
/p:__IntermediatesDir=$__IntermediatesDir /p:__RootBinDir=$__RootBinDir /p:__DoCrossArchBuild=$__CrossBuild \
$__CommonMSBuildArgs $__UnprocessedBuildArgs
- if [ $? -ne 0 ]; then
- echo "Failed to generate Nuget packages."
- exit 1
+ local exit_code=$?
+ if [ $exit_code != 0 ]; then
+ echo "${__ErrMsgPrefix}Failed to generate Nuget packages."
+ exit $exit_code
fi
}
;;
esac
+# Set variables used when running in an Azure DevOps task
+if [[ ! -z $TF_BUILD ]]; then
+ __ArcadeScriptArgs="--ci"
+ __ErrMsgPrefix="##vso[task.logissue type=error]"
+fi
+
__BuildType=Debug
__CodeCoverage=
__IgnoreWarnings=0
<PackageReference Include="optimization.IBC.CoreCLR" Version="$(optimizationIBCCoreCLRVersion)" Condition="'$(optimizationIBCCoreCLRVersion)'!=''" />
</ItemGroup>
- <PropertyGroup>
- <RestoreSources>
- https://dotnetfeed.blob.core.windows.net/dotnet-core/index.json;
- $(RestoreSources);
- </RestoreSources>
- </PropertyGroup>
-
<!-- -->
<!-- Task: DumpPgoDataPackageVersion -->
<!-- -->
<!-- -->
<!-- DumpPgoDataPackageVersion is used by build.sh and build.cmd to pass -->
<!-- the version information to cmake. The task will write a file to be -->
- <!-- read back by build.cmd/sh. The path for the file is: -->
+ <!-- read back by build.cmd/sh. The path for the file is: -->
<!-- $(PgoDataPackageVersionOutputFile) -->
<!-- -->
<!-- -->
<!-- DumpIbcDataPackageVersion is used by build.sh and build.cmd to pass -->
<!-- the version information to cmake. The task will write a file to be -->
- <!-- read back by build.cmd/sh. The path for the file is: -->
+ <!-- read back by build.cmd/sh. The path for the file is: -->
<!-- $(IbcDataPackageVersionOutputFile) -->
<!-- -->
<Target Name="DumpIbcDataPackageVersion">