Use Microsoft.Net.Compilers.Toolset (#10415)
This commit is contained in:
parent
c05244cda9
commit
e01d713909
|
|
@ -1,6 +1,15 @@
|
||||||
<Project>
|
<Project>
|
||||||
<Import Project="version.props" />
|
<Import Project="version.props" />
|
||||||
|
|
||||||
|
<!--
|
||||||
|
These imports look funny.
|
||||||
|
Eventually they will be replaced by a simplified import that brings in
|
||||||
|
the entire Arcade SDK. For now, we're moving onto Arcade one piece at a time.
|
||||||
|
-->
|
||||||
|
<Import Project="../tools/DefaultVersions.Generated.props" Sdk="Microsoft.DotNet.Arcade.Sdk" />
|
||||||
|
<Import Project="eng\Versions.props" />
|
||||||
|
<Import Project="../tools/Compiler.props" Sdk="Microsoft.DotNet.Arcade.Sdk" Condition="'$(UsingToolMicrosoftNetCompilers)' == 'true'"/>
|
||||||
|
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<Product>Microsoft ASP.NET Core</Product>
|
<Product>Microsoft ASP.NET Core</Product>
|
||||||
|
|
||||||
|
|
@ -121,7 +130,6 @@
|
||||||
<OutDirName Condition="'$(IsReferenceAssemblyProject)' == 'true'">$(MSBuildProjectName)-ref</OutDirName>
|
<OutDirName Condition="'$(IsReferenceAssemblyProject)' == 'true'">$(MSBuildProjectName)-ref</OutDirName>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<Import Project="eng\Versions.props" />
|
|
||||||
<Import Project="build\sources.props" />
|
<Import Project="build\sources.props" />
|
||||||
|
|
||||||
<!-- Artifacts layout -->
|
<!-- Artifacts layout -->
|
||||||
|
|
|
||||||
|
|
@ -14,6 +14,7 @@
|
||||||
https://dotnetfeed.blob.core.windows.net/aspnet-entityframeworkcore/index.json;
|
https://dotnetfeed.blob.core.windows.net/aspnet-entityframeworkcore/index.json;
|
||||||
https://dotnetfeed.blob.core.windows.net/aspnet-aspnetcore-tooling/index.json;
|
https://dotnetfeed.blob.core.windows.net/aspnet-aspnetcore-tooling/index.json;
|
||||||
https://dotnetfeed.blob.core.windows.net/dotnet-core/index.json;
|
https://dotnetfeed.blob.core.windows.net/dotnet-core/index.json;
|
||||||
|
https://dotnet.myget.org/F/roslyn/api/v3/index.json;
|
||||||
https://grpc.jfrog.io/grpc/api/nuget/v3/grpc-nuget-dev;
|
https://grpc.jfrog.io/grpc/api/nuget/v3/grpc-nuget-dev;
|
||||||
https://api.nuget.org/v3/index.json;
|
https://api.nuget.org/v3/index.json;
|
||||||
</RestoreSources>
|
</RestoreSources>
|
||||||
|
|
|
||||||
|
|
@ -384,13 +384,17 @@
|
||||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||||
<Sha>8dfb4ece7ca9a6dea14264dafc38a0c953874559</Sha>
|
<Sha>8dfb4ece7ca9a6dea14264dafc38a0c953874559</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="Microsoft.DotNet.GenAPI" Version="1.0.0-beta.19270.1">
|
<Dependency Name="Microsoft.DotNet.GenAPI" Version="1.0.0-beta.19272.13">
|
||||||
<Uri>https://github.com/dotnet/arcade</Uri>
|
<Uri>https://github.com/dotnet/arcade</Uri>
|
||||||
<Sha>e913fb3b02d4089a91ff91c041c5f6e7c29038b0</Sha>
|
<Sha>86e674361bdcefecbd8199ab62d0b1a6cb25703d</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="Microsoft.DotNet.Helix.Sdk" Version="2.0.0-beta.19270.1">
|
<Dependency Name="Microsoft.DotNet.Arcade.Sdk" Version="1.0.0-beta.19272.13">
|
||||||
<Uri>https://github.com/dotnet/arcade</Uri>
|
<Uri>https://github.com/dotnet/arcade</Uri>
|
||||||
<Sha>e913fb3b02d4089a91ff91c041c5f6e7c29038b0</Sha>
|
<Sha>86e674361bdcefecbd8199ab62d0b1a6cb25703d</Sha>
|
||||||
|
</Dependency>
|
||||||
|
<Dependency Name="Microsoft.DotNet.Helix.Sdk" Version="2.0.0-beta.19272.13">
|
||||||
|
<Uri>https://github.com/dotnet/arcade</Uri>
|
||||||
|
<Sha>86e674361bdcefecbd8199ab62d0b1a6cb25703d</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="Microsoft.AspNetCore.Testing" Version="3.0.0-preview6.19265.2" CoherentParentDependency="Microsoft.CodeAnalysis.Razor">
|
<Dependency Name="Microsoft.AspNetCore.Testing" Version="3.0.0-preview6.19265.2" CoherentParentDependency="Microsoft.CodeAnalysis.Razor">
|
||||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||||
|
|
|
||||||
|
|
@ -5,6 +5,10 @@
|
||||||
|
|
||||||
-->
|
-->
|
||||||
<Project>
|
<Project>
|
||||||
|
<PropertyGroup Label="Arcade settings">
|
||||||
|
<!-- Opt-in to using the version of the Roslyn compiler bundled with Arcade. -->
|
||||||
|
<UsingToolMicrosoftNetCompilers Condition="'$(MSBuildProjectExtension)' == '.csproj' or '$(MSBuildProjectExtension)' == '.fsproj' or '$(MSBuildProjectExtension)' == '.vbproj'">true</UsingToolMicrosoftNetCompilers>
|
||||||
|
</PropertyGroup>
|
||||||
<!--
|
<!--
|
||||||
|
|
||||||
These versions should ONLY be updated by automation.
|
These versions should ONLY be updated by automation.
|
||||||
|
|
@ -17,7 +21,7 @@
|
||||||
-->
|
-->
|
||||||
<PropertyGroup Label="Automated">
|
<PropertyGroup Label="Automated">
|
||||||
<!-- Packages from dotnet/arcade -->
|
<!-- Packages from dotnet/arcade -->
|
||||||
<MicrosoftDotNetGenAPIPackageVersion>1.0.0-beta.19270.1</MicrosoftDotNetGenAPIPackageVersion>
|
<MicrosoftDotNetGenAPIPackageVersion>1.0.0-beta.19272.13</MicrosoftDotNetGenAPIPackageVersion>
|
||||||
<!-- Packages from dotnet/core-setup -->
|
<!-- Packages from dotnet/core-setup -->
|
||||||
<MicrosoftExtensionsDependencyModelPackageVersion>3.0.0-preview6-27714-15</MicrosoftExtensionsDependencyModelPackageVersion>
|
<MicrosoftExtensionsDependencyModelPackageVersion>3.0.0-preview6-27714-15</MicrosoftExtensionsDependencyModelPackageVersion>
|
||||||
<MicrosoftNETCoreAppPackageVersion>3.0.0-preview6-27714-15</MicrosoftNETCoreAppPackageVersion>
|
<MicrosoftNETCoreAppPackageVersion>3.0.0-preview6-27714-15</MicrosoftNETCoreAppPackageVersion>
|
||||||
|
|
|
||||||
|
|
@ -53,6 +53,7 @@
|
||||||
<TargetStaticFeed Condition="'$(ArtifactsCategory.ToUpper())' == 'TOOLSET'">https://dotnetfeed.blob.core.windows.net/dotnet-toolset/index.json</TargetStaticFeed>
|
<TargetStaticFeed Condition="'$(ArtifactsCategory.ToUpper())' == 'TOOLSET'">https://dotnetfeed.blob.core.windows.net/dotnet-toolset/index.json</TargetStaticFeed>
|
||||||
<TargetStaticFeed Condition="'$(ArtifactsCategory.ToUpper())' == 'WINDOWSDESKTOP'">https://dotnetfeed.blob.core.windows.net/dotnet-windowsdesktop/index.json</TargetStaticFeed>
|
<TargetStaticFeed Condition="'$(ArtifactsCategory.ToUpper())' == 'WINDOWSDESKTOP'">https://dotnetfeed.blob.core.windows.net/dotnet-windowsdesktop/index.json</TargetStaticFeed>
|
||||||
<TargetStaticFeed Condition="'$(ArtifactsCategory.ToUpper())' == 'NUGETCLIENT'">https://dotnetfeed.blob.core.windows.net/nuget-nugetclient/index.json</TargetStaticFeed>
|
<TargetStaticFeed Condition="'$(ArtifactsCategory.ToUpper())' == 'NUGETCLIENT'">https://dotnetfeed.blob.core.windows.net/nuget-nugetclient/index.json</TargetStaticFeed>
|
||||||
|
<TargetStaticFeed Condition="'$(ArtifactsCategory.ToUpper())' == 'ASPNETENTITYFRAMEWORK6'">https://dotnetfeed.blob.core.windows.net/aspnet-entityframework6/index.json</TargetStaticFeed>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<Error
|
<Error
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,7 @@
|
||||||
[CmdletBinding(PositionalBinding=$false)]
|
[CmdletBinding(PositionalBinding=$false)]
|
||||||
Param(
|
Param(
|
||||||
[string][Alias('c')]$configuration = "Debug",
|
[string][Alias('c')]$configuration = "Debug",
|
||||||
|
[string]$platform = $null,
|
||||||
[string] $projects,
|
[string] $projects,
|
||||||
[string][Alias('v')]$verbosity = "minimal",
|
[string][Alias('v')]$verbosity = "minimal",
|
||||||
[string] $msbuildEngine = $null,
|
[string] $msbuildEngine = $null,
|
||||||
|
|
@ -29,6 +30,7 @@ Param(
|
||||||
function Print-Usage() {
|
function Print-Usage() {
|
||||||
Write-Host "Common settings:"
|
Write-Host "Common settings:"
|
||||||
Write-Host " -configuration <value> Build configuration: 'Debug' or 'Release' (short: -c)"
|
Write-Host " -configuration <value> Build configuration: 'Debug' or 'Release' (short: -c)"
|
||||||
|
Write-Host " -platform <value> Platform configuration: 'x86', 'x64' or any valid Platform value to pass to msbuild"
|
||||||
Write-Host " -verbosity <value> Msbuild verbosity: q[uiet], m[inimal], n[ormal], d[etailed], and diag[nostic] (short: -v)"
|
Write-Host " -verbosity <value> Msbuild verbosity: q[uiet], m[inimal], n[ormal], d[etailed], and diag[nostic] (short: -v)"
|
||||||
Write-Host " -binaryLog Output binary log (short: -bl)"
|
Write-Host " -binaryLog Output binary log (short: -bl)"
|
||||||
Write-Host " -help Print help and exit"
|
Write-Host " -help Print help and exit"
|
||||||
|
|
@ -77,6 +79,7 @@ function Build {
|
||||||
InitializeCustomToolset
|
InitializeCustomToolset
|
||||||
|
|
||||||
$bl = if ($binaryLog) { "/bl:" + (Join-Path $LogDir "Build.binlog") } else { "" }
|
$bl = if ($binaryLog) { "/bl:" + (Join-Path $LogDir "Build.binlog") } else { "" }
|
||||||
|
$platformArg = if ($platform) { "/p:Platform=$platform" } else { "" }
|
||||||
|
|
||||||
if ($projects) {
|
if ($projects) {
|
||||||
# Re-assign properties to a new variable because PowerShell doesn't let us append properties directly for unclear reasons.
|
# Re-assign properties to a new variable because PowerShell doesn't let us append properties directly for unclear reasons.
|
||||||
|
|
@ -88,6 +91,7 @@ function Build {
|
||||||
|
|
||||||
MSBuild $toolsetBuildProj `
|
MSBuild $toolsetBuildProj `
|
||||||
$bl `
|
$bl `
|
||||||
|
$platformArg `
|
||||||
/p:Configuration=$configuration `
|
/p:Configuration=$configuration `
|
||||||
/p:RepoRoot=$RepoRoot `
|
/p:RepoRoot=$RepoRoot `
|
||||||
/p:Restore=$restore `
|
/p:Restore=$restore `
|
||||||
|
|
|
||||||
|
|
@ -66,6 +66,7 @@ ci=false
|
||||||
warn_as_error=true
|
warn_as_error=true
|
||||||
node_reuse=true
|
node_reuse=true
|
||||||
binary_log=false
|
binary_log=false
|
||||||
|
pipelines_log=false
|
||||||
|
|
||||||
projects=''
|
projects=''
|
||||||
configuration='Debug'
|
configuration='Debug'
|
||||||
|
|
@ -92,6 +93,9 @@ while [[ $# > 0 ]]; do
|
||||||
-binarylog|-bl)
|
-binarylog|-bl)
|
||||||
binary_log=true
|
binary_log=true
|
||||||
;;
|
;;
|
||||||
|
-pipelineslog|-pl)
|
||||||
|
pipelines_log=true
|
||||||
|
;;
|
||||||
-restore|-r)
|
-restore|-r)
|
||||||
restore=true
|
restore=true
|
||||||
;;
|
;;
|
||||||
|
|
@ -146,6 +150,7 @@ while [[ $# > 0 ]]; do
|
||||||
done
|
done
|
||||||
|
|
||||||
if [[ "$ci" == true ]]; then
|
if [[ "$ci" == true ]]; then
|
||||||
|
pipelines_log=true
|
||||||
binary_log=true
|
binary_log=true
|
||||||
node_reuse=false
|
node_reuse=false
|
||||||
fi
|
fi
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,11 @@
|
||||||
|
deb http://deb.debian.org/debian buster main
|
||||||
|
deb-src http://deb.debian.org/debian buster main
|
||||||
|
|
||||||
|
deb http://deb.debian.org/debian-security/ buster/updates main
|
||||||
|
deb-src http://deb.debian.org/debian-security/ buster/updates main
|
||||||
|
|
||||||
|
deb http://deb.debian.org/debian buster-updates main
|
||||||
|
deb-src http://deb.debian.org/debian buster-updates main
|
||||||
|
|
||||||
|
deb http://deb.debian.org/debian buster-backports main contrib non-free
|
||||||
|
deb-src http://deb.debian.org/debian buster-backports main contrib non-free
|
||||||
|
|
@ -0,0 +1,12 @@
|
||||||
|
deb http://deb.debian.org/debian stretch main
|
||||||
|
deb-src http://deb.debian.org/debian stretch main
|
||||||
|
|
||||||
|
deb http://deb.debian.org/debian-security/ stretch/updates main
|
||||||
|
deb-src http://deb.debian.org/debian-security/ stretch/updates main
|
||||||
|
|
||||||
|
deb http://deb.debian.org/debian stretch-updates main
|
||||||
|
deb-src http://deb.debian.org/debian stretch-updates main
|
||||||
|
|
||||||
|
deb http://deb.debian.org/debian stretch-backports main contrib non-free
|
||||||
|
deb-src http://deb.debian.org/debian stretch-backports main contrib non-free
|
||||||
|
|
||||||
|
|
@ -2,7 +2,7 @@
|
||||||
|
|
||||||
usage()
|
usage()
|
||||||
{
|
{
|
||||||
echo "Usage: $0 [BuildArch] [LinuxCodeName] [lldbx.y] [--skipunmount] --rootfs <directory>]"
|
echo "Usage: $0 [BuildArch] [LinuxCodeName] [lldbx.y] [--skipunmount] --rootfsdir <directory>]"
|
||||||
echo "BuildArch can be: arm(default), armel, arm64, x86"
|
echo "BuildArch can be: arm(default), armel, arm64, x86"
|
||||||
echo "LinuxCodeName - optional, Code name for Linux, can be: trusty, xenial(default), zesty, bionic, alpine. If BuildArch is armel, LinuxCodeName is jessie(default) or tizen."
|
echo "LinuxCodeName - optional, Code name for Linux, can be: trusty, xenial(default), zesty, bionic, alpine. If BuildArch is armel, LinuxCodeName is jessie(default) or tizen."
|
||||||
echo "lldbx.y - optional, LLDB version, can be: lldb3.9(default), lldb4.0, lldb5.0, lldb6.0 no-lldb. Ignored for alpine"
|
echo "lldbx.y - optional, LLDB version, can be: lldb3.9(default), lldb4.0, lldb5.0, lldb6.0 no-lldb. Ignored for alpine"
|
||||||
|
|
@ -113,12 +113,12 @@ while :; do
|
||||||
__LinuxCodeName=trusty
|
__LinuxCodeName=trusty
|
||||||
fi
|
fi
|
||||||
;;
|
;;
|
||||||
xenial) # Ubunry 16.04
|
xenial) # Ubuntu 16.04
|
||||||
if [ "$__LinuxCodeName" != "jessie" ]; then
|
if [ "$__LinuxCodeName" != "jessie" ]; then
|
||||||
__LinuxCodeName=xenial
|
__LinuxCodeName=xenial
|
||||||
fi
|
fi
|
||||||
;;
|
;;
|
||||||
zesty) # Ununtu 17.04
|
zesty) # Ubuntu 17.04
|
||||||
if [ "$__LinuxCodeName" != "jessie" ]; then
|
if [ "$__LinuxCodeName" != "jessie" ]; then
|
||||||
__LinuxCodeName=zesty
|
__LinuxCodeName=zesty
|
||||||
fi
|
fi
|
||||||
|
|
@ -132,7 +132,16 @@ while :; do
|
||||||
__LinuxCodeName=jessie
|
__LinuxCodeName=jessie
|
||||||
__UbuntuRepo="http://ftp.debian.org/debian/"
|
__UbuntuRepo="http://ftp.debian.org/debian/"
|
||||||
;;
|
;;
|
||||||
# TBD Stretch -> Debian 9, Buster -> Debian 10
|
stretch) # Debian 9
|
||||||
|
__LinuxCodeName=stretch
|
||||||
|
__UbuntuRepo="http://ftp.debian.org/debian/"
|
||||||
|
__LLDB_Package="liblldb-6.0-dev"
|
||||||
|
;;
|
||||||
|
buster) # Debian 10
|
||||||
|
__LinuxCodeName=buster
|
||||||
|
__UbuntuRepo="http://ftp.debian.org/debian/"
|
||||||
|
__LLDB_Package="liblldb-6.0-dev"
|
||||||
|
;;
|
||||||
tizen)
|
tizen)
|
||||||
if [ "$__BuildArch" != "armel" ]; then
|
if [ "$__BuildArch" != "armel" ]; then
|
||||||
echo "Tizen is available only for armel."
|
echo "Tizen is available only for armel."
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,6 @@
|
||||||
param (
|
param (
|
||||||
$darcVersion = $null
|
$darcVersion = $null,
|
||||||
|
$versionEndpoint = "https://maestro-prod.westus2.cloudapp.azure.com/api/assets/darc-version?api-version=2019-01-16"
|
||||||
)
|
)
|
||||||
|
|
||||||
$verbosity = "m"
|
$verbosity = "m"
|
||||||
|
|
@ -16,13 +17,13 @@ function InstallDarcCli ($darcVersion) {
|
||||||
Invoke-Expression "& `"$dotnet`" tool uninstall $darcCliPackageName -g"
|
Invoke-Expression "& `"$dotnet`" tool uninstall $darcCliPackageName -g"
|
||||||
}
|
}
|
||||||
|
|
||||||
# Until we can anonymously query the BAR API for the latest arcade-services
|
# If the user didn't explicitly specify the darc version,
|
||||||
# build applied to the PROD channel, this is hardcoded.
|
# query the Maestro API for the correct version of darc to install.
|
||||||
if (-not $darcVersion) {
|
if (-not $darcVersion) {
|
||||||
$darcVersion = '1.1.0-beta.19205.4'
|
$darcVersion = $(Invoke-WebRequest -Uri $versionEndpoint -UseBasicParsing).Content
|
||||||
}
|
}
|
||||||
|
|
||||||
$arcadeServicesSource = 'https://dotnetfeed.blob.core.windows.net/dotnet-arcade/index.json'
|
$arcadeServicesSource = 'https://dotnetfeed.blob.core.windows.net/dotnet-core/index.json'
|
||||||
|
|
||||||
Write-Host "Installing Darc CLI version $darcVersion..."
|
Write-Host "Installing Darc CLI version $darcVersion..."
|
||||||
Write-Host "You may need to restart your command window if this is the first dotnet tool you have installed."
|
Write-Host "You may need to restart your command window if this is the first dotnet tool you have installed."
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,8 @@
|
||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
source="${BASH_SOURCE[0]}"
|
source="${BASH_SOURCE[0]}"
|
||||||
darcVersion="1.1.0-beta.19205.4"
|
darcVersion=''
|
||||||
|
versionEndpoint="https://maestro-prod.westus2.cloudapp.azure.com/api/assets/darc-version?api-version=2019-01-16"
|
||||||
|
|
||||||
while [[ $# > 0 ]]; do
|
while [[ $# > 0 ]]; do
|
||||||
opt="$(echo "$1" | awk '{print tolower($0)}')"
|
opt="$(echo "$1" | awk '{print tolower($0)}')"
|
||||||
|
|
@ -10,6 +11,10 @@ while [[ $# > 0 ]]; do
|
||||||
darcVersion=$2
|
darcVersion=$2
|
||||||
shift
|
shift
|
||||||
;;
|
;;
|
||||||
|
--versionendpoint)
|
||||||
|
versionEndpoint=$2
|
||||||
|
shift
|
||||||
|
;;
|
||||||
*)
|
*)
|
||||||
echo "Invalid argument: $1"
|
echo "Invalid argument: $1"
|
||||||
usage
|
usage
|
||||||
|
|
@ -33,6 +38,10 @@ verbosity=m
|
||||||
|
|
||||||
. "$scriptroot/tools.sh"
|
. "$scriptroot/tools.sh"
|
||||||
|
|
||||||
|
if [ -z "$darcVersion" ]; then
|
||||||
|
darcVersion=$(curl -X GET "$versionEndpoint" -H "accept: text/plain")
|
||||||
|
fi
|
||||||
|
|
||||||
function InstallDarcCli {
|
function InstallDarcCli {
|
||||||
local darc_cli_package_name="microsoft.dotnet.darc"
|
local darc_cli_package_name="microsoft.dotnet.darc"
|
||||||
|
|
||||||
|
|
@ -45,9 +54,9 @@ function InstallDarcCli {
|
||||||
echo $($dotnet_root/dotnet tool uninstall $darc_cli_package_name -g)
|
echo $($dotnet_root/dotnet tool uninstall $darc_cli_package_name -g)
|
||||||
fi
|
fi
|
||||||
|
|
||||||
local arcadeServicesSource="https://dotnetfeed.blob.core.windows.net/dotnet-arcade/index.json"
|
local arcadeServicesSource="https://dotnetfeed.blob.core.windows.net/dotnet-core/index.json"
|
||||||
|
|
||||||
echo "Installing Darc CLI version $toolset_version..."
|
echo "Installing Darc CLI version $darcVersion..."
|
||||||
echo "You may need to restart your command shell if this is the first dotnet tool you have installed."
|
echo "You may need to restart your command shell if this is the first dotnet tool you have installed."
|
||||||
echo $($dotnet_root/dotnet tool install $darc_cli_package_name --version $darcVersion --add-source "$arcadeServicesSource" -v $verbosity -g)
|
echo $($dotnet_root/dotnet tool install $darc_cli_package_name --version $darcVersion --add-source "$arcadeServicesSource" -v $verbosity -g)
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -8,9 +8,14 @@ Param(
|
||||||
|
|
||||||
. $PSScriptRoot\tools.ps1
|
. $PSScriptRoot\tools.ps1
|
||||||
|
|
||||||
|
$dotnetRoot = Join-Path $RepoRoot ".dotnet"
|
||||||
|
|
||||||
|
$installdir = $dotnetRoot
|
||||||
try {
|
try {
|
||||||
$dotnetRoot = Join-Path $RepoRoot ".dotnet"
|
if ($architecture -and $architecture.Trim() -eq "x86") {
|
||||||
InstallDotNet $dotnetRoot $version $architecture $runtime $true
|
$installdir = Join-Path $installdir "x86"
|
||||||
|
}
|
||||||
|
InstallDotNet $installdir $version $architecture $runtime $true
|
||||||
}
|
}
|
||||||
catch {
|
catch {
|
||||||
Write-Host $_
|
Write-Host $_
|
||||||
|
|
@ -19,4 +24,4 @@ catch {
|
||||||
ExitWithExitCode 1
|
ExitWithExitCode 1
|
||||||
}
|
}
|
||||||
|
|
||||||
ExitWithExitCode 0
|
ExitWithExitCode 0
|
||||||
|
|
|
||||||
|
|
@ -5,6 +5,7 @@ parameters:
|
||||||
HelixBuild: $(Build.BuildNumber) # required -- the build number Helix will use to identify this -- automatically set to the AzDO build number
|
HelixBuild: $(Build.BuildNumber) # required -- the build number Helix will use to identify this -- automatically set to the AzDO build number
|
||||||
HelixTargetQueues: '' # required -- semicolon delimited list of Helix queues to test on; see https://helix.dot.net/ for a list of queues
|
HelixTargetQueues: '' # required -- semicolon delimited list of Helix queues to test on; see https://helix.dot.net/ for a list of queues
|
||||||
HelixAccessToken: '' # required -- access token to make Helix API requests; should be provided by the appropriate variable group
|
HelixAccessToken: '' # required -- access token to make Helix API requests; should be provided by the appropriate variable group
|
||||||
|
HelixConfiguration: '' # optional -- additional property attached to a job
|
||||||
HelixPreCommands: '' # optional -- commands to run before Helix work item execution
|
HelixPreCommands: '' # optional -- commands to run before Helix work item execution
|
||||||
HelixPostCommands: '' # optional -- commands to run after Helix work item execution
|
HelixPostCommands: '' # optional -- commands to run after Helix work item execution
|
||||||
WorkItemDirectory: '' # optional -- a payload directory to zip up and send to Helix; requires WorkItemCommand; incompatible with XUnitProjects
|
WorkItemDirectory: '' # optional -- a payload directory to zip up and send to Helix; requires WorkItemCommand; incompatible with XUnitProjects
|
||||||
|
|
@ -35,6 +36,7 @@ steps:
|
||||||
HelixSource: ${{ parameters.HelixSource }}
|
HelixSource: ${{ parameters.HelixSource }}
|
||||||
HelixType: ${{ parameters.HelixType }}
|
HelixType: ${{ parameters.HelixType }}
|
||||||
HelixBuild: ${{ parameters.HelixBuild }}
|
HelixBuild: ${{ parameters.HelixBuild }}
|
||||||
|
HelixConfiguration: ${{ parameters.HelixConfiguration }}
|
||||||
HelixTargetQueues: ${{ parameters.HelixTargetQueues }}
|
HelixTargetQueues: ${{ parameters.HelixTargetQueues }}
|
||||||
HelixAccessToken: ${{ parameters.HelixAccessToken }}
|
HelixAccessToken: ${{ parameters.HelixAccessToken }}
|
||||||
HelixPreCommands: ${{ parameters.HelixPreCommands }}
|
HelixPreCommands: ${{ parameters.HelixPreCommands }}
|
||||||
|
|
@ -64,6 +66,7 @@ steps:
|
||||||
HelixSource: ${{ parameters.HelixSource }}
|
HelixSource: ${{ parameters.HelixSource }}
|
||||||
HelixType: ${{ parameters.HelixType }}
|
HelixType: ${{ parameters.HelixType }}
|
||||||
HelixBuild: ${{ parameters.HelixBuild }}
|
HelixBuild: ${{ parameters.HelixBuild }}
|
||||||
|
HelixConfiguration: ${{ parameters.HelixConfiguration }}
|
||||||
HelixTargetQueues: ${{ parameters.HelixTargetQueues }}
|
HelixTargetQueues: ${{ parameters.HelixTargetQueues }}
|
||||||
HelixAccessToken: ${{ parameters.HelixAccessToken }}
|
HelixAccessToken: ${{ parameters.HelixAccessToken }}
|
||||||
HelixPreCommands: ${{ parameters.HelixPreCommands }}
|
HelixPreCommands: ${{ parameters.HelixPreCommands }}
|
||||||
|
|
|
||||||
|
|
@ -213,7 +213,11 @@ function InitializeVisualStudioMSBuild([bool]$install, [object]$vsRequirements =
|
||||||
if ($env:VSINSTALLDIR -ne $null) {
|
if ($env:VSINSTALLDIR -ne $null) {
|
||||||
$msbuildCmd = Get-Command "msbuild.exe" -ErrorAction SilentlyContinue
|
$msbuildCmd = Get-Command "msbuild.exe" -ErrorAction SilentlyContinue
|
||||||
if ($msbuildCmd -ne $null) {
|
if ($msbuildCmd -ne $null) {
|
||||||
if ($msbuildCmd.Version -ge $vsMinVersion) {
|
# Workaround for https://github.com/dotnet/roslyn/issues/35793
|
||||||
|
# Due to this issue $msbuildCmd.Version returns 0.0.0.0 for msbuild.exe 16.2+
|
||||||
|
$msbuildVersion = [Version]::new((Get-Item $msbuildCmd.Path).VersionInfo.ProductVersion.Split(@('-', '+'))[0])
|
||||||
|
|
||||||
|
if ($msbuildVersion -ge $vsMinVersion) {
|
||||||
return $global:_MSBuildExe = $msbuildCmd.Path
|
return $global:_MSBuildExe = $msbuildCmd.Path
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,20 @@
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
# Initialize variables if they aren't already defined.
|
# Initialize variables if they aren't already defined.
|
||||||
|
|
||||||
# CI mode - set to true on CI server for PR validation build or official build.
|
# CI mode - set to true on CI server for PR validation build or official build.
|
||||||
ci=${ci:-false}
|
ci=${ci:-false}
|
||||||
|
|
||||||
|
# Set to true to use the pipelines logger which will enable Azure logging output.
|
||||||
|
# https://github.com/Microsoft/azure-pipelines-tasks/blob/master/docs/authoring/commands.md
|
||||||
|
# This flag is meant as a temporary opt-opt for the feature while validate it across
|
||||||
|
# our consumers. It will be deleted in the future.
|
||||||
|
if [[ "$ci" == true ]]; then
|
||||||
|
pipelines_log=${pipelines_log:-true}
|
||||||
|
else
|
||||||
|
pipelines_log=${pipelines_log:-false}
|
||||||
|
fi
|
||||||
|
|
||||||
# Build configuration. Common values include 'Debug' and 'Release', but the repository may use other names.
|
# Build configuration. Common values include 'Debug' and 'Release', but the repository may use other names.
|
||||||
configuration=${configuration:-'Debug'}
|
configuration=${configuration:-'Debug'}
|
||||||
|
|
||||||
|
|
@ -40,6 +52,78 @@ else
|
||||||
use_global_nuget_cache=${use_global_nuget_cache:-true}
|
use_global_nuget_cache=${use_global_nuget_cache:-true}
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
function EmitError {
|
||||||
|
if [[ "$ci" != true ]]; then
|
||||||
|
echo "$@" >&2
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
|
||||||
|
message_type="error"
|
||||||
|
sourcepath=''
|
||||||
|
linenumber=''
|
||||||
|
columnnumber=''
|
||||||
|
error_code=''
|
||||||
|
|
||||||
|
while [[ $# -gt 0 ]]; do
|
||||||
|
opt="$(echo "${1/#--/-}" | awk '{print tolower($0)}')"
|
||||||
|
case "$opt" in
|
||||||
|
-type|-t)
|
||||||
|
message_type=$2
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
-sourcepath|-s)
|
||||||
|
sourcepath=$2
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
-linenumber|-l)
|
||||||
|
linenumber=$2
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
-columnnumber|-col)
|
||||||
|
columnnumber=$2
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
-code|-c)
|
||||||
|
error_code=$2
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
break
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
shift
|
||||||
|
done
|
||||||
|
|
||||||
|
message='##vso[task.logissue'
|
||||||
|
|
||||||
|
message="$message type=$message_type"
|
||||||
|
|
||||||
|
if [ -n "$sourcepath" ]; then
|
||||||
|
message="$message;sourcepath=$sourcepath"
|
||||||
|
else
|
||||||
|
message="$message;sourcepath=${BASH_SOURCE[1]}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -n "$linenumber" ]; then
|
||||||
|
message="$message;linenumber=$linenumber"
|
||||||
|
else
|
||||||
|
message="$message;linenumber=${BASH_LINENO[0]}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -n "$columnnumber" ]; then
|
||||||
|
message="$message;columnnumber=$columnnumber"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -n "$error_code" ]; then
|
||||||
|
message="$message;code=$error_code"
|
||||||
|
fi
|
||||||
|
|
||||||
|
message="$message]$*"
|
||||||
|
|
||||||
|
echo "$message"
|
||||||
|
}
|
||||||
|
|
||||||
# Resolve any symlinks in the given path.
|
# Resolve any symlinks in the given path.
|
||||||
function ResolvePath {
|
function ResolvePath {
|
||||||
local path=$1
|
local path=$1
|
||||||
|
|
@ -65,7 +149,7 @@ function ReadGlobalVersion {
|
||||||
local pattern="\"$key\" *: *\"(.*)\""
|
local pattern="\"$key\" *: *\"(.*)\""
|
||||||
|
|
||||||
if [[ ! $line =~ $pattern ]]; then
|
if [[ ! $line =~ $pattern ]]; then
|
||||||
echo "Error: Cannot find \"$key\" in $global_json_file" >&2
|
EmitError "Error: Cannot find \"$key\" in $global_json_file"
|
||||||
ExitWithExitCode 1
|
ExitWithExitCode 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
@ -126,7 +210,7 @@ function InitializeDotNetCli {
|
||||||
if [[ "$install" == true ]]; then
|
if [[ "$install" == true ]]; then
|
||||||
InstallDotNetSdk "$dotnet_root" "$dotnet_sdk_version"
|
InstallDotNetSdk "$dotnet_root" "$dotnet_sdk_version"
|
||||||
else
|
else
|
||||||
echo "Unable to find dotnet with SDK version '$dotnet_sdk_version'" >&2
|
EmitError "Unable to find dotnet with SDK version '$dotnet_sdk_version'"
|
||||||
ExitWithExitCode 1
|
ExitWithExitCode 1
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
@ -179,7 +263,7 @@ function InstallDotNet {
|
||||||
fi
|
fi
|
||||||
bash "$install_script" --version $version --install-dir "$root" $archArg $runtimeArg $skipNonVersionedFilesArg || {
|
bash "$install_script" --version $version --install-dir "$root" $archArg $runtimeArg $skipNonVersionedFilesArg || {
|
||||||
local exit_code=$?
|
local exit_code=$?
|
||||||
echo "Failed to install dotnet SDK (exit code '$exit_code')." >&2
|
EmitError "Failed to install dotnet SDK (exit code '$exit_code')."
|
||||||
ExitWithExitCode $exit_code
|
ExitWithExitCode $exit_code
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -216,6 +300,7 @@ function InitializeBuildTool {
|
||||||
# return values
|
# return values
|
||||||
_InitializeBuildTool="$_InitializeDotNetCli/dotnet"
|
_InitializeBuildTool="$_InitializeDotNetCli/dotnet"
|
||||||
_InitializeBuildToolCommand="msbuild"
|
_InitializeBuildToolCommand="msbuild"
|
||||||
|
_InitializeBuildToolFramework="netcoreapp2.1"
|
||||||
}
|
}
|
||||||
|
|
||||||
function GetNuGetPackageCachePath {
|
function GetNuGetPackageCachePath {
|
||||||
|
|
@ -264,7 +349,7 @@ function InitializeToolset {
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [[ "$restore" != true ]]; then
|
if [[ "$restore" != true ]]; then
|
||||||
echo "Toolset version $toolsetVersion has not been restored." >&2
|
EmitError "Toolset version $toolsetVersion has not been restored."
|
||||||
ExitWithExitCode 2
|
ExitWithExitCode 2
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
@ -276,12 +361,12 @@ function InitializeToolset {
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo '<Project Sdk="Microsoft.DotNet.Arcade.Sdk"/>' > "$proj"
|
echo '<Project Sdk="Microsoft.DotNet.Arcade.Sdk"/>' > "$proj"
|
||||||
MSBuild "$proj" $bl /t:__WriteToolsetLocation /clp:ErrorsOnly\;NoSummary /p:__ToolsetLocationOutputFile="$toolset_location_file"
|
MSBuild-Core "$proj" $bl /t:__WriteToolsetLocation /clp:ErrorsOnly\;NoSummary /p:__ToolsetLocationOutputFile="$toolset_location_file"
|
||||||
|
|
||||||
local toolset_build_proj=`cat "$toolset_location_file"`
|
local toolset_build_proj=`cat "$toolset_location_file"`
|
||||||
|
|
||||||
if [[ ! -a "$toolset_build_proj" ]]; then
|
if [[ ! -a "$toolset_build_proj" ]]; then
|
||||||
echo "Invalid toolset path: $toolset_build_proj" >&2
|
EmitError "Invalid toolset path: $toolset_build_proj"
|
||||||
ExitWithExitCode 3
|
ExitWithExitCode 3
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
@ -304,14 +389,26 @@ function StopProcesses {
|
||||||
}
|
}
|
||||||
|
|
||||||
function MSBuild {
|
function MSBuild {
|
||||||
|
args=$@
|
||||||
|
if [[ "$pipelines_log" == true ]]; then
|
||||||
|
InitializeBuildTool
|
||||||
|
InitializeToolset
|
||||||
|
_toolset_dir="${_InitializeToolset%/*}"
|
||||||
|
_loggerPath="$_toolset_dir/$_InitializeBuildToolFramework/Microsoft.DotNet.Arcade.Sdk.dll"
|
||||||
|
args=( "${args[@]}" "-logger:$_loggerPath" )
|
||||||
|
fi
|
||||||
|
MSBuild-Core ${args[@]}
|
||||||
|
}
|
||||||
|
|
||||||
|
function MSBuild-Core {
|
||||||
if [[ "$ci" == true ]]; then
|
if [[ "$ci" == true ]]; then
|
||||||
if [[ "$binary_log" != true ]]; then
|
if [[ "$binary_log" != true ]]; then
|
||||||
echo "Binary log must be enabled in CI build." >&2
|
EmitError "Binary log must be enabled in CI build."
|
||||||
ExitWithExitCode 1
|
ExitWithExitCode 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [[ "$node_reuse" == true ]]; then
|
if [[ "$node_reuse" == true ]]; then
|
||||||
echo "Node reuse must be disabled in CI build." >&2
|
EmitError "Node reuse must be disabled in CI build."
|
||||||
ExitWithExitCode 1
|
ExitWithExitCode 1
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
@ -325,7 +422,7 @@ function MSBuild {
|
||||||
|
|
||||||
"$_InitializeBuildTool" "$_InitializeBuildToolCommand" /m /nologo /clp:Summary /v:$verbosity /nr:$node_reuse $warnaserror_switch /p:TreatWarningsAsErrors=$warn_as_error /p:ContinuousIntegrationBuild=$ci "$@" || {
|
"$_InitializeBuildTool" "$_InitializeBuildToolCommand" /m /nologo /clp:Summary /v:$verbosity /nr:$node_reuse $warnaserror_switch /p:TreatWarningsAsErrors=$warn_as_error /p:ContinuousIntegrationBuild=$ci "$@" || {
|
||||||
local exit_code=$?
|
local exit_code=$?
|
||||||
echo "Build failed (exit code '$exit_code')." >&2
|
EmitError "Build failed (exit code '$exit_code')."
|
||||||
ExitWithExitCode $exit_code
|
ExitWithExitCode $exit_code
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -3,10 +3,12 @@
|
||||||
"version": "3.0.100-preview5-011568"
|
"version": "3.0.100-preview5-011568"
|
||||||
},
|
},
|
||||||
"tools": {
|
"tools": {
|
||||||
|
"dotnet": "3.0.100-preview5-011568",
|
||||||
"jdk": "11.0.3"
|
"jdk": "11.0.3"
|
||||||
},
|
},
|
||||||
"msbuild-sdks": {
|
"msbuild-sdks": {
|
||||||
"Yarn.MSBuild": "1.15.2",
|
"Yarn.MSBuild": "1.15.2",
|
||||||
"Microsoft.DotNet.Helix.Sdk": "2.0.0-beta.19270.1"
|
"Microsoft.DotNet.Arcade.Sdk": "1.0.0-beta.19272.13",
|
||||||
|
"Microsoft.DotNet.Helix.Sdk": "2.0.0-beta.19272.13"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue