diff --git a/.gitignore b/.gitignore
index 6dda3ba5a626b256c404e3cfe91edca294b3708e..f0f174232370d97e6841bda58df1e421f4a9852a 100644
--- a/.gitignore
+++ b/.gitignore
@@ -19,7 +19,6 @@ x64/
.dotnet/
.tools/
.packages/
-.o/
# Enable "build/" folder in the NuGet Packages folder since NuGet packages use it for MSBuild targets
!packages/*/build/
diff --git a/azure-pipelines-official.yml b/azure-pipelines-official.yml
index e303ee39a206db4b4d19ceb147c80343325107f0..db4ec0698cfe57444f5c52bc331377938a1a0468 100644
--- a/azure-pipelines-official.yml
+++ b/azure-pipelines-official.yml
@@ -26,22 +26,16 @@ jobs:
steps:
- task: NuGetToolInstaller@0
inputs:
- versionSpec: '4.9.2'
-
- - task: NuGetCommand@2
- displayName: 'Clear NuGet caches'
- inputs:
- command: custom
- arguments: 'locals all -clear'
+ versionSpec: '4.9.2'
- task: NuGetCommand@2
displayName: Restore internal tools
inputs:
command: restore
feedsToUse: config
- restoreSolution: 'eng\internal\Toolset.csproj'
+ restoreSolution: 'eng\common\internal\Tools.csproj'
nugetConfigPath: 'NuGet.config'
- restoreDirectory: '$(UserProfile)\.nuget\packages'
+ restoreDirectory: '$(Build.SourcesDirectory)\.packages'
- task: ms-vseng.MicroBuildTasks.30666190-6959-11e5-9f96-f56098202fef.MicroBuildSigningPlugin@1
inputs:
@@ -65,8 +59,10 @@ jobs:
-officialBuildId $(Build.BuildNumber)
-officialSkipTests $(SkipTests)
-officialSkipApplyOptimizationData $(SkipApplyOptimizationData)
- -vsDropName $(VisualStudio.DropName)
- -vsDropAccessToken $(System.AccessToken)
+ /p:RepositoryName=$(Build.Repository.Name)
+ /p:VisualStudioIbcSourceBranchName="master-vs-deps"
+ /p:VisualStudioDropAccessToken=$(System.AccessToken)
+ /p:VisualStudioDropName=$(VisualStudio.DropName)
/p:DotNetSignType=$(SignType)
/p:DotNetPublishToBlobFeed=true
/p:DotNetPublishBlobFeedKey=$(dotnetfeed-storage-access-key-1)
@@ -74,6 +70,8 @@ jobs:
/p:PublishToSymbolServer=true
/p:DotNetSymbolServerTokenMsdl=$(microsoft-symbol-server-pat)
/p:DotNetSymbolServerTokenSymWeb=$(symweb-symbol-server-pat)
+ /p:IbcOptimizationDataDir=$(Build.SourcesDirectory)\.o\\
+ /p:VisualStudioIbcDropId=75e3797e1105a4da4c10dddda76c3b9398f7725a/223453/935479/1
displayName: Build
condition: succeeded()
@@ -81,7 +79,7 @@ jobs:
displayName: Publish Assets
inputs:
filePath: 'eng\publish-assets.ps1'
- arguments: '-configuration $(BuildConfiguration) -branchName "$(Build.SourceBranch)" -mygetApiKey $(Roslyn.MyGetApiKey) -nugetApiKey $(Roslyn.NuGetApiKey) -gitHubUserName $(Roslyn.GitHubUserName) -gitHubToken $(Roslyn.GitHubToken) -gitHubEmail $(Roslyn.GitHubEmail)'
+ arguments: '-configuration $(BuildConfiguration) -branchName "$(Build.SourceBranchName)" -mygetApiKey $(Roslyn.MyGetApiKey) -nugetApiKey $(Roslyn.NuGetApiKey) -gitHubUserName $(Roslyn.GitHubUserName) -gitHubToken $(Roslyn.GitHubToken) -gitHubEmail $(Roslyn.GitHubEmail)'
condition: succeeded()
# Publish OptProf configuration files
@@ -109,12 +107,12 @@ jobs:
# Publish run settings
- task: PowerShell@2
inputs:
- filePath: eng\generate-optprof-run-settings.ps1
+ filePath: eng\common\sdk-task.ps1
arguments: -configuration $(BuildConfiguration)
- -vsDropName $(VisualStudio.DropName)
- -bootstrapperInfo $(Build.StagingDirectory)\MicroBuild\Output\BootstrapperInfo.json
- failOnStderr: true
- displayName: 'OptProf - Generate runsettings file'
+ -task VisualStudio.BuildIbcTrainingSettings
+ /p:VisualStudioDropName=$(VisualStudio.DropName)
+ /p:BootstrapperInfoPath=$(Build.StagingDirectory)\MicroBuild\Output\BootstrapperInfo.json
+ displayName: 'OptProf - Build IBC training settings'
condition: succeeded()
# Publish bootstrapper info
diff --git a/eng/Tools.props b/eng/Tools.props
deleted file mode 100644
index 2092d69ad7c01dae2fa003385e7595b7e24e9068..0000000000000000000000000000000000000000
--- a/eng/Tools.props
+++ /dev/null
@@ -1,25 +0,0 @@
-
-
-
-
-
- $(MSBuildAllProjects);$(MSBuildThisFileFullPath)
-
-
-
-
-
-
-
-
-
-
-
- $(RestoreSources);
- https://dotnet.myget.org/F/roslyn/api/v3/index.json;
-
-
-
diff --git a/eng/Versions.props b/eng/Versions.props
index 6ea26249d2770b4de4457fb0df2b5d0924aa3712..65ab127a311c8989cd5345a53197c83ab4022ed4 100644
--- a/eng/Versions.props
+++ b/eng/Versions.props
@@ -64,7 +64,6 @@
1.1.0-beta1-63314-01
1.7.0
1.5.0
- 4.7.2-alpha-00001
3.0.0-preview1-03617-02
2.1.1
2.1.1
@@ -73,6 +72,7 @@
14.3.25407-alpha
1.0.0-beta1-63011-01
8.0.0.0-alpha
+ 1.0.0-alpha-004
3.0.0-beta2-19068-12
$(RoslynDiagnosticsNugetPackageVersion)
2.0.0
@@ -280,6 +280,7 @@
true
true
true
+ true
true
true
diff --git a/eng/build-utils.ps1 b/eng/build-utils.ps1
index a5c565f8083e6ce4968f0295b5db8f67b10ff8fc..f884391a8776309d23d0045ce15d9f4ae961fe78 100644
--- a/eng/build-utils.ps1
+++ b/eng/build-utils.ps1
@@ -9,9 +9,6 @@ $ErrorActionPreference="Stop"
$VSSetupDir = Join-Path $ArtifactsDir "VSSetup\$configuration"
$PackagesDir = Join-Path $ArtifactsDir "packages\$configuration"
-# Use very short directory name to avoid long path issues (build machines, ibcmerge.exe)
-$IbcOptimizationDataDir = Join-Path $RepoRoot ".o"
-
$binaryLog = if (Test-Path variable:binaryLog) { $binaryLog } else { $false }
$nodeReuse = if (Test-Path variable:nodeReuse) { $nodeReuse } else { $false }
$bootstrapDir = if (Test-Path variable:bootstrapDir) { $bootstrapDir } else { "" }
diff --git a/eng/build.ps1 b/eng/build.ps1
index 1c3f817d6f57f9285657235a3f8b0a05f120cfc5..4ec710890fa7cb6c907c94ea3623c033b0b67fcf 100644
--- a/eng/build.ps1
+++ b/eng/build.ps1
@@ -46,8 +46,6 @@ param (
[string]$officialBuildId = "",
[string]$officialSkipApplyOptimizationData = "",
[string]$officialSkipTests = "",
- [string]$vsDropName = "",
- [string]$vsDropAccessToken = "",
# Test actions
[switch]$test32,
@@ -97,13 +95,11 @@ function Print-Usage() {
Write-Host " -prepareMachine Prepare machine for CI run, clean up processes after build"
Write-Host " -useGlobalNuGetCache Use global NuGet cache."
Write-Host " -warnAsError Treat all warnings as errors"
- Write-Host ""
+ Write-Host ""
Write-Host "Official build settings:"
Write-Host " -officialBuildId An official build id, e.g. 20190102.3"
Write-Host " -officialSkipTests Pass 'true' to not run tests"
Write-Host " -officialSkipApplyOptimizationData Pass 'true' to not apply optimization data"
- Write-Host " -vsDropName Visual Studio product drop name"
- Write-Host " -vsDropAccessToken Visual Studio drop access token"
Write-Host ""
Write-Host "Command line arguments starting with '/p:' are passed through to MSBuild."
}
@@ -120,12 +116,12 @@ function Process-Arguments() {
if ((Get-Variable $argName -Scope Script).Value) {
if (!$officialBuildId) {
Write-Host "$argName can only be specified for official builds"
- exit 1
+ exit 1
}
} else {
if ($officialBuildId) {
Write-Host "$argName must be specified in official builds"
- exit 1
+ exit 1
}
}
}
@@ -135,21 +131,22 @@ function Process-Arguments() {
exit 0
}
- OfficialBuildOnly "vsDropName"
- OfficialBuildOnly "vsDropAccessToken"
OfficialBuildOnly "officialSkipTests"
OfficialBuildOnly "officialSkipApplyOptimizationData"
if ($officialBuildId) {
+ $script:useGlobalNuGetCache = $false
$script:procdump = $true
$script:testDesktop = ![System.Boolean]::Parse($officialSkipTests)
$script:applyOptimizationData = ![System.Boolean]::Parse($officialSkipApplyOptimizationData)
- $script:buildOptimizationData = $true
} else {
- $script:vsDropName = "Products/DummyDrop"
- $script:applyOptimizationData = $script:buildOptimizationData = $ci -and $configuration -eq "Release" -and $msbuildEngine -eq "vs"
+ $script:applyOptimizationData = $false
}
-
+
+ if ($ci) {
+ $script:binaryLog = $true
+ }
+
if ($test32 -and $test64) {
Write-Host "Cannot combine -test32 and -test64"
exit 1
@@ -186,7 +183,7 @@ function Process-Arguments() {
function BuildSolution() {
# Roslyn.sln can't be built with dotnet due to WPF and VSIX build task dependencies
$solution = if ($msbuildEngine -eq 'dotnet') { "Compilers.sln" } else { "Roslyn.sln" }
-
+
Write-Host "$($solution):"
$bl = if ($binaryLog) { "/bl:" + (Join-Path $LogDir "Build.binlog") } else { "" }
@@ -195,11 +192,10 @@ function BuildSolution() {
$toolsetBuildProj = InitializeToolset
$quietRestore = !$ci
$testTargetFrameworks = if ($testCoreClr) { "netcoreapp2.1" } else { "" }
-
- # Do not set the property to true explicitly, since that would override value projects might set.
- $suppressExtensionDeployment = if (!$deployExtensions) { "/p:DeployExtension=false" } else { "" }
- $optDataDir = if ($applyOptimizationData) { $IbcOptimizationDataDir } else { "" }
+ # Do not set these properties to true explicitly, since that would override values set in projects.
+ $suppressExtensionDeployment = if (!$deployExtensions) { "/p:DeployExtension=false" } else { "" }
+ $suppressPartialNgenOptimization = if (!$applyOptimizationData) { "/p:ApplyPartialNgenOptimization=false" } else { "" }
# Setting /p:TreatWarningsAsErrors=true is a workaround for https://github.com/Microsoft/msbuild/issues/3062.
# We don't pass /warnaserror to msbuild ($warnAsError is set to $false by default above), but set
@@ -224,89 +220,16 @@ function BuildSolution() {
/p:QuietRestore=$quietRestore `
/p:QuietRestoreBinaryLog=$binaryLog `
/p:TestTargetFrameworks=$testTargetFrameworks `
- /p:VisualStudioDropName=$vsDropName `
/p:TreatWarningsAsErrors=true `
- /p:IbcOptimizationDataDir=$optDataDir `
+ $suppressPartialNgenOptimization `
$suppressExtensionDeployment `
@properties
}
-function Restore-OptProfData() {
- $dropToolDir = Get-PackageDir "Drop.App"
- $dropToolPath = Join-Path $dropToolDir "lib\net45\drop.exe"
-
- if (!(Test-Path $dropToolPath)) {
-
- # Only report error when running in an official build.
- # Allows to test optimization data operations locally by running
- # cibuild.cmd after manually restoring internal tools project.
- if (!$officialBuildId) {
- $script:applyOptimizationData = $false
- return
- }
-
- Write-Host "Internal tool not found: '$dropToolPath'." -ForegroundColor Red
- Write-Host "Run nuget restore `"$EngRoot\internal\Toolset.csproj`"." -ForegroundColor DarkGray
- ExitWithExitCode 1
- }
-
- function find-latest-drop($drops) {
- $result = $null
- [DateTime]$latest = [DateTime]::New(0)
- foreach ($drop in $drops) {
- $dt = [DateTime]::Parse($drop.CreatedDateUtc)
- if ($result -eq $null -or ($drop.UploadComplete -and !$drop.DeletePending -and ($dt -gt $latest))) {
- $result = $drop
- $latest = $dt
- }
- }
-
- return $result
- }
-
- Write-Host "Acquiring optimization data"
-
- Create-Directory $IbcOptimizationDataDir
-
- $dropServiceUrl = "https://devdiv.artifacts.visualstudio.com"
- $dropNamePrefix = "OptimizationData/dotnet/roslyn/master-vs-deps"
- $patAuth = if ($officialBuildId) { "--patAuth `"$vsDropAccessToken`"" } else { "" }
-
- $dropsJsonPath = Join-Path $LogDir "OptimizationDataDrops.json"
- $logFile = Join-Path $LogDir "OptimizationDataAcquisition.log"
-
- Exec-Console $dropToolPath "list --dropservice `"$dropServiceUrl`" $patAuth --pathPrefixFilter `"$dropNamePrefix`" --toJsonFile `"$dropsJsonPath`" --traceto `"$logFile`""
- $dropsJson = Get-Content -Raw -Path $dropsJsonPath | ConvertFrom-Json
-
- $latestDrop = find-latest-drop($dropsJson)
-
- if ($latestDrop -eq $null) {
- Write-Host "No drop matching given name found: $dropServiceUrl/$dropNamePrefix/*" -ForegroundColor Red
- ExitWithExitCode 1
- }
-
- # Temporarily hardcoding the drop location name to the last good Preview2 drop. The pipeline that generates new new OptProf drops is generating incomplete data.
- #$latestDropName = $($latestDrop.Name)
- $latestDropName = "OptimizationData/dotnet/roslyn/master-vs-deps/75e3797e1105a4da4c10dddda76c3b9398f7725a/223453/935479/1"
-
- Write-Host "Downloading optimization data from service $dropServiceUrl drop $latestDropName"
- Exec-Console $dropToolPath "get --dropservice `"$dropServiceUrl`" $patAuth --name `"$latestDropName`" --dest `"$IbcOptimizationDataDir`" --traceto `"$logFile`""
-}
-
-function Build-OptProfData() {
+# Set VSO variables used by MicroBuildBuildVSBootstrapper pipeline task
+function Set-OptProfVariables() {
$insertionDir = Join-Path $VSSetupDir "Insertion"
- $optProfDataDir = Join-Path $ArtifactsDir "OptProf\$configuration\Data"
-
- $optProfConfigFile = Join-Path $EngRoot "config\OptProf.json"
- $optProfToolDir = Get-PackageDir "RoslynTools.OptProf"
- $optProfToolExe = Join-Path $optProfToolDir "tools\roslyn.optprof.exe"
-
- Write-Host "Generating optimization data using '$optProfConfigFile' into '$optProfDataDir'"
- Exec-Console $optProfToolExe "--configFile $optProfConfigFile --insertionFolder $insertionDir --outputFolder $optProfDataDir"
-
- # Set VSO variables used by MicroBuildBuildVSBootstrapper pipeline task
$manifestList = [string]::Join(',', (Get-ChildItem "$insertionDir\*.vsman"))
-
Write-Host "##vso[task.setvariable variable=VisualStudio.SetupManifestList;]$manifestList"
}
@@ -439,7 +362,7 @@ function Deploy-VsixViaTool() {
Write-Host "Installing all Roslyn VSIX"
# VSIX files need to be installed in this specific order:
- $orderedVsixFileNames = @(
+ $orderedVsixFileNames = @(
"Roslyn.Compilers.Extension.vsix",
"Roslyn.VisualStudio.Setup.vsix",
"Roslyn.VisualStudio.Setup.Dependencies.vsix",
@@ -511,10 +434,6 @@ try {
Prepare-TempDir
}
- if ($applyOptimizationData -and $restore) {
- Restore-OptProfData
- }
-
if ($bootstrap) {
$bootstrapDir = Make-BootstrapBuild
}
@@ -522,9 +441,9 @@ try {
if ($restore -or $build -or $rebuild -or $pack -or $sign -or $publish -or $testCoreClr) {
BuildSolution
}
-
- if ($buildOptimizationData -and $build) {
- Build-OptProfData
+
+ if ($ci -and $build -and $msbuildEngine -eq "vs") {
+ Set-OptProfVariables
}
if ($testDesktop -or $testVsi -or $testIOperation) {
diff --git a/eng/common/PublishBuildAssets.cmd b/eng/common/PublishBuildAssets.cmd
deleted file mode 100644
index ac629f00e12a5f8cee2ff91fbf09b8c57e7709e8..0000000000000000000000000000000000000000
--- a/eng/common/PublishBuildAssets.cmd
+++ /dev/null
@@ -1,3 +0,0 @@
-@echo off
-powershell -ExecutionPolicy ByPass -NoProfile -command "& """%~dp0Build.ps1""" -msbuildEngine dotnet -restore -execute -binaryLog /p:PublishBuildAssets=true /p:SdkTaskProjects=PublishBuildAssets.proj %*"
-exit /b %ErrorLevel%
diff --git a/eng/common/PublishToPackageFeed.proj b/eng/common/PublishToPackageFeed.proj
index 7dc478d981f694d7777e540b332a9e533cf0fff3..8149e3fb6a13451afd4bf439b26d687342bd4fb6 100644
--- a/eng/common/PublishToPackageFeed.proj
+++ b/eng/common/PublishToPackageFeed.proj
@@ -10,25 +10,38 @@
netcoreapp2.1
-
+
+
+
-
-
+
+
+
+
+
+
+
+
+
+
+ AssetManifestPath="%(ManifestFiles.Identity)"
+ BlobAssetsBasePath="$(BlobBasePath)"
+ PackageAssetsBasePath="$(PackageBasePath)" />
diff --git a/eng/common/build.ps1 b/eng/common/build.ps1
index 2f5e6052a85fcf08cddc4a225e73dfe0a8d5b55b..8279dc713391bedb20b6ec8e68d071aa4bca6649 100644
--- a/eng/common/build.ps1
+++ b/eng/common/build.ps1
@@ -6,7 +6,6 @@ Param(
[string] $msbuildEngine = $null,
[bool] $warnAsError = $true,
[bool] $nodeReuse = $true,
- [switch] $execute,
[switch][Alias('r')]$restore,
[switch] $deployDeps,
[switch][Alias('b')]$build,
@@ -18,7 +17,6 @@ Param(
[switch] $sign,
[switch] $pack,
[switch] $publish,
- [switch] $publishBuildAssets,
[switch][Alias('bl')]$binaryLog,
[switch] $ci,
[switch] $prepareMachine,
@@ -48,7 +46,6 @@ function Print-Usage() {
Write-Host " -performanceTest Run all performance tests in the solution"
Write-Host " -sign Sign build outputs"
Write-Host " -publish Publish artifacts (e.g. symbols)"
- Write-Host " -publishBuildAssets Push assets to BAR"
Write-Host ""
Write-Host "Advanced settings:"
@@ -61,7 +58,6 @@ function Print-Usage() {
Write-Host "The above arguments can be shortened as much as to be unambiguous (e.g. -co for configuration, -t for test, etc.)."
}
-
function InitializeCustomToolset {
if (-not $restore) {
return
@@ -77,6 +73,7 @@ function InitializeCustomToolset {
function Build {
$toolsetBuildProj = InitializeToolset
InitializeCustomToolset
+
$bl = if ($binaryLog) { "/bl:" + (Join-Path $LogDir "Build.binlog") } else { "" }
if ($projects) {
@@ -102,7 +99,6 @@ function Build {
/p:PerformanceTest=$performanceTest `
/p:Sign=$sign `
/p:Publish=$publish `
- /p:Execute=$execute `
/p:ContinuousIntegrationBuild=$ci `
@properties
}
diff --git a/eng/common/darc-init.ps1 b/eng/common/darc-init.ps1
index 96cad844ba3b07791eef59f90c734bac13f49ea5..57db185df1942cfa6eaaa4b4278b57caa8d37af2 100644
--- a/eng/common/darc-init.ps1
+++ b/eng/common/darc-init.ps1
@@ -19,7 +19,7 @@ function InstallDarcCli ($darcVersion) {
# Until we can anonymously query the BAR API for the latest arcade-services
# build applied to the PROD channel, this is hardcoded.
if (-not $darcVersion) {
- $darcVersion = '1.1.0-beta.19057.9'
+ $darcVersion = '1.1.0-beta.19081.1'
}
$arcadeServicesSource = 'https://dotnetfeed.blob.core.windows.net/dotnet-arcade/index.json'
diff --git a/eng/common/internal/Directory.Build.props b/eng/common/internal/Directory.Build.props
new file mode 100644
index 0000000000000000000000000000000000000000..e33179ef37344a904d608daf48f2165513b6d9a4
--- /dev/null
+++ b/eng/common/internal/Directory.Build.props
@@ -0,0 +1,4 @@
+
+
+
+
diff --git a/eng/common/internal/Directory.Build.targets b/eng/common/internal/Directory.Build.targets
new file mode 100644
index 0000000000000000000000000000000000000000..5d26408a9819936c8421d4a5746873384a2138a2
--- /dev/null
+++ b/eng/common/internal/Directory.Build.targets
@@ -0,0 +1,3 @@
+
+
+
diff --git a/eng/internal/Toolset.csproj b/eng/common/internal/Tools.csproj
similarity index 67%
rename from eng/internal/Toolset.csproj
rename to eng/common/internal/Tools.csproj
index 7b112b886216d477fff072380d254565b6137bb6..1d2e2183766cc9362852e160ae678aa8a2398029 100644
--- a/eng/internal/Toolset.csproj
+++ b/eng/common/internal/Tools.csproj
@@ -5,8 +5,10 @@
net472
-
-
+
+
+
+
diff --git a/eng/common/sdk-task.ps1 b/eng/common/sdk-task.ps1
new file mode 100644
index 0000000000000000000000000000000000000000..d0eec5163efe21259aa8a5ce20ab7f5ec6cb090a
--- /dev/null
+++ b/eng/common/sdk-task.ps1
@@ -0,0 +1,79 @@
+[CmdletBinding(PositionalBinding=$false)]
+Param(
+ [string] $configuration = "Debug",
+ [string] $task,
+ [string] $verbosity = "minimal",
+ [string] $msbuildEngine = $null,
+ [switch] $restore,
+ [switch] $prepareMachine,
+ [switch] $help,
+ [Parameter(ValueFromRemainingArguments=$true)][String[]]$properties
+)
+
+$ci = $true
+$binaryLog = $true
+$warnAsError = $true
+
+. $PSScriptRoot\tools.ps1
+
+function Print-Usage() {
+ Write-Host "Common settings:"
+ Write-Host " -task Name of Arcade task (name of a project in SdkTasks directory of the Arcade SDK package)"
+ Write-Host " -restore Restore dependencies"
+ Write-Host " -verbosity Msbuild verbosity: q[uiet], m[inimal], n[ormal], d[etailed], and diag[nostic]"
+ Write-Host " -help Print help and exit"
+ Write-Host ""
+
+ Write-Host "Advanced settings:"
+ Write-Host " -prepareMachine Prepare machine for CI run"
+ Write-Host " -msbuildEngine Msbuild engine to use to run build ('dotnet', 'vs', or unspecified)."
+ Write-Host ""
+ Write-Host "Command line arguments not listed above are passed thru to msbuild."
+}
+
+function Build([string]$target) {
+ $logSuffix = if ($target -eq "Execute") { "" } else { ".$target" }
+ $log = Join-Path $LogDir "$task$logSuffix.binlog"
+ $outputPath = Join-Path $ToolsetDir "$task\\"
+
+ MSBuild $taskProject `
+ /bl:$log `
+ /t:$target `
+ /p:Configuration=$configuration `
+ /p:RepoRoot=$RepoRoot `
+ /p:BaseIntermediateOutputPath=$outputPath `
+ @properties
+}
+
+try {
+ if ($help -or (($null -ne $properties) -and ($properties.Contains("/help") -or $properties.Contains("/?")))) {
+ Print-Usage
+ exit 0
+ }
+
+ if ($task -eq "") {
+ Write-Host "Missing required parameter '-task '" -ForegroundColor Red
+ Print-Usage
+ ExitWithExitCode 1
+ }
+
+ $taskProject = GetSdkTaskProject $task
+ if (!(Test-Path $taskProject)) {
+ Write-Host "Unknown task: $task" -ForegroundColor Red
+ ExitWithExitCode 1
+ }
+
+ if ($restore) {
+ Build "Restore"
+ }
+
+ Build "Execute"
+}
+catch {
+ Write-Host $_
+ Write-Host $_.Exception
+ Write-Host $_.ScriptStackTrace
+ ExitWithExitCode 1
+}
+
+ExitWithExitCode 0
diff --git a/eng/common/templates/job/publish-build-assets.yml b/eng/common/templates/job/publish-build-assets.yml
index c094658fefc73d88fe793d47a88e16c6c40af206..d6d8697cbdebbd9f47b7f6f747c0f4fcc31c0dab 100644
--- a/eng/common/templates/job/publish-build-assets.yml
+++ b/eng/common/templates/job/publish-build-assets.yml
@@ -44,12 +44,15 @@ jobs:
downloadPath: '$(Build.StagingDirectory)/Download'
condition: ${{ parameters.condition }}
continueOnError: ${{ parameters.continueOnError }}
- - script: eng\common\publishbuildassets.cmd
- /p:ManifestsPath='$(Build.StagingDirectory)/Download/AssetManifests'
- /p:BuildAssetRegistryToken=$(MaestroAccessToken)
- /p:MaestroApiEndpoint=https://maestro-prod.westus2.cloudapp.azure.com
- /p:Configuration=$(_BuildConfig)
+ - task: PowerShell@2
displayName: Publish Build Assets
+ inputs:
+ filePath: eng\common\sdk-task.ps1
+ arguments: -task PublishBuildAssets -restore -msbuildEngine dotnet
+ /p:ManifestsPath='$(Build.StagingDirectory)/Download/AssetManifests'
+ /p:BuildAssetRegistryToken=$(MaestroAccessToken)
+ /p:MaestroApiEndpoint=https://maestro-prod.westus2.cloudapp.azure.com
+ /p:Configuration=$(_BuildConfig)
condition: ${{ parameters.condition }}
continueOnError: ${{ parameters.continueOnError }}
- ${{ if eq(parameters.enablePublishBuildArtifacts, 'true') }}:
diff --git a/eng/common/templates/phases/publish-build-assets.yml b/eng/common/templates/phases/publish-build-assets.yml
index 0df6203b506fa06c291ae492f5325ae8fb32914a..85fabe62b98f1f4cd438aea6e9870cb8058cf8a4 100644
--- a/eng/common/templates/phases/publish-build-assets.yml
+++ b/eng/common/templates/phases/publish-build-assets.yml
@@ -29,10 +29,10 @@ phases:
condition: ${{ parameters.condition }}
continueOnError: ${{ parameters.continueOnError }}
- script: eng\common\publishbuildassets.cmd
- -configuration $(_BuildConfig)
/p:ManifestsPath='$(Build.StagingDirectory)/Download/AssetManifests'
/p:BuildAssetRegistryToken=$(MaestroAccessToken)
/p:MaestroApiEndpoint=https://maestro-prod.westus2.cloudapp.azure.com
+ /p:Configuration=$(_BuildConfig)
displayName: Publish Build Assets
condition: ${{ parameters.condition }}
continueOnError: ${{ parameters.continueOnError }}
diff --git a/eng/common/templates/steps/send-to-helix.yml b/eng/common/templates/steps/send-to-helix.yml
index a5835c0f4738026646352195be5e32d244f5a80f..1fbf8b88973211a23db8d9f42d9c5b43901ea7ec 100644
--- a/eng/common/templates/steps/send-to-helix.yml
+++ b/eng/common/templates/steps/send-to-helix.yml
@@ -25,7 +25,7 @@ parameters:
continueOnError: false # optional -- determines whether to continue the build if the step errors; defaults to false
steps:
- - powershell: 'powershell "$env:BUILD_SOURCESDIRECTORY\eng\common\msbuild.ps1 $env:BUILD_SOURCESDIRECTORY\eng\common\helixpublish.proj /bl:$env:BUILD_SOURCESDIRECTORY\artifacts\log\$env:BuildConfig\SendToHelix.binlog"'
+ - powershell: 'powershell "$env:BUILD_SOURCESDIRECTORY\eng\common\msbuild.ps1 $env:BUILD_SOURCESDIRECTORY\eng\common\helixpublish.proj /restore /t:Test /bl:$env:BUILD_SOURCESDIRECTORY\artifacts\log\$env:BuildConfig\SendToHelix.binlog"'
displayName: Send job to Helix (Windows)
env:
BuildConfig: $(_BuildConfig)
@@ -52,7 +52,7 @@ steps:
Creator: ${{ parameters.Creator }}
condition: and(${{ parameters.condition }}, eq(variables['Agent.Os'], 'Windows_NT'))
continueOnError: ${{ parameters.continueOnError }}
- - script: $BUILD_SOURCESDIRECTORY/eng/common/msbuild.sh $BUILD_SOURCESDIRECTORY/eng/common/helixpublish.proj /bl:$BUILD_SOURCESDIRECTORY/artifacts/log/$BuildConfig/SendToHelix.binlog
+ - script: $BUILD_SOURCESDIRECTORY/eng/common/msbuild.sh $BUILD_SOURCESDIRECTORY/eng/common/helixpublish.proj /restore /t:Test /bl:$BUILD_SOURCESDIRECTORY/artifacts/log/$BuildConfig/SendToHelix.binlog
displayName: Send job to Helix (Unix)
env:
BuildConfig: $(_BuildConfig)
diff --git a/eng/common/templates/steps/telemetry-end.yml b/eng/common/templates/steps/telemetry-end.yml
index 9b61481e7e194b3ca068f867c7477fe8de3858f7..fadc04ca1b9a3e7126c13d8ed252d8834fbe862f 100644
--- a/eng/common/templates/steps/telemetry-end.yml
+++ b/eng/common/templates/steps/telemetry-end.yml
@@ -1,3 +1,7 @@
+parameters:
+ maxRetries: 5
+ retryDelay: 10 # in seconds
+
steps:
- bash: |
if [ "$AGENT_JOBSTATUS" = "Succeeded" ] || [ "$AGENT_JOBSTATUS" = "PartiallySucceeded" ]; then
@@ -7,27 +11,41 @@ steps:
fi
warningCount=0
- # create a temporary file for curl output
- res=`mktemp`
-
- curlResult=`
- curl --verbose --output $res --write-out "%{http_code}"\
- -H 'Content-Type: application/json' \
- -H "X-Helix-Job-Token: $Helix_JobToken" \
- -H 'Content-Length: 0' \
- -X POST -G "https://helix.dot.net/api/2018-03-14/telemetry/job/build/$Helix_WorkItemId/finish" \
- --data-urlencode "errorCount=$errorCount" \
- --data-urlencode "warningCount=$warningCount"`
- curlStatus=$?
-
- if [ $curlStatus -eq 0 ]; then
- if [ $curlResult -gt 299 ] || [ $curlResult -lt 200 ]; then
- curlStatus=$curlResult
+ curlStatus=1
+ retryCount=0
+ # retry loop to harden against spotty telemetry connections
+ # we don't retry successes and 4xx client errors
+ until [[ $curlStatus -eq 0 || ( $curlStatus -ge 400 && $curlStatus -le 499 ) || $retryCount -ge $MaxRetries ]]
+ do
+ if [ $retryCount -gt 0 ]; then
+ echo "Failed to send telemetry to Helix; waiting $RetryDelay seconds before retrying..."
+ sleep $RetryDelay
fi
- fi
+
+ # create a temporary file for curl output
+ res=`mktemp`
+
+ curlResult=`
+ curl --verbose --output $res --write-out "%{http_code}"\
+ -H 'Content-Type: application/json' \
+ -H "X-Helix-Job-Token: $Helix_JobToken" \
+ -H 'Content-Length: 0' \
+ -X POST -G "https://helix.dot.net/api/2018-03-14/telemetry/job/build/$Helix_WorkItemId/finish" \
+ --data-urlencode "errorCount=$errorCount" \
+ --data-urlencode "warningCount=$warningCount"`
+ curlStatus=$?
+
+ if [ $curlStatus -eq 0 ]; then
+ if [ $curlResult -gt 299 ] || [ $curlResult -lt 200 ]; then
+ curlStatus=$curlResult
+ fi
+ fi
+
+ let retryCount++
+ done
if [ $curlStatus -ne 0 ]; then
- echo "Failed to Send Build Finish information"
+ echo "Failed to Send Build Finish information after $retryCount retries"
vstsLogOutput="vso[task.logissue type=error;sourcepath=templates/steps/telemetry-end.yml;code=1;]Failed to Send Build Finish information: $curlStatus"
echo "##$vstsLogOutput"
exit 1
@@ -37,6 +55,8 @@ steps:
# defined via VSTS variables in start-job.sh
Helix_JobToken: $(Helix_JobToken)
Helix_WorkItemId: $(Helix_WorkItemId)
+ MaxRetries: ${{ parameters.maxRetries }}
+ RetryDelay: ${{ parameters.retryDelay }}
condition: and(always(), ne(variables['Agent.Os'], 'Windows_NT'))
- powershell: |
if (($env:Agent_JobStatus -eq 'Succeeded') -or ($env:Agent_JobStatus -eq 'PartiallySucceeded')) {
@@ -46,13 +66,30 @@ steps:
}
$WarningCount = 0
- try {
- Invoke-RestMethod -Uri "https://helix.dot.net/api/2018-03-14/telemetry/job/build/$env:Helix_WorkItemId/finish?errorCount=$ErrorCount&warningCount=$WarningCount" -Method Post -ContentType "application/json" -Body "" `
- -Headers @{ 'X-Helix-Job-Token'=$env:Helix_JobToken }
+ # Basic retry loop to harden against server flakiness
+ $retryCount = 0
+ while ($retryCount -lt $env:MaxRetries) {
+ try {
+ Invoke-RestMethod -Uri "https://helix.dot.net/api/2018-03-14/telemetry/job/build/$env:Helix_WorkItemId/finish?errorCount=$ErrorCount&warningCount=$WarningCount" -Method Post -ContentType "application/json" -Body "" `
+ -Headers @{ 'X-Helix-Job-Token'=$env:Helix_JobToken }
+ break
+ }
+ catch {
+ $statusCode = $_.Exception.Response.StatusCode.value__
+ if ($statusCode -ge 400 -and $statusCode -le 499) {
+ Write-Host "##vso[task.logissue]error Failed to send telemetry to Helix (status code $statusCode); not retrying (4xx client error)"
+ Write-Host "##vso[task.logissue]error ", $_.Exception.GetType().FullName, $_.Exception.Message
+ exit 1
+ }
+ Write-Host "Failed to send telemetry to Helix (status code $statusCode); waiting $env:RetryDelay seconds before retrying..."
+ $retryCount++
+ sleep $env:RetryDelay
+ continue
+ }
}
- catch {
- Write-Error $_
- Write-Error $_.Exception
+
+ if ($retryCount -ge $env:MaxRetries) {
+ Write-Host "##vso[task.logissue]error Failed to send telemetry to Helix after $retryCount retries."
exit 1
}
displayName: Send Windows Build End Telemetry
@@ -60,4 +97,6 @@ steps:
# defined via VSTS variables in start-job.ps1
Helix_JobToken: $(Helix_JobToken)
Helix_WorkItemId: $(Helix_WorkItemId)
+ MaxRetries: ${{ parameters.maxRetries }}
+ RetryDelay: ${{ parameters.retryDelay }}
condition: and(always(),eq(variables['Agent.Os'], 'Windows_NT'))
diff --git a/eng/common/templates/steps/telemetry-start.yml b/eng/common/templates/steps/telemetry-start.yml
index 79c128c5de8709fec7b8490d33945e4ecc5ce9ab..f6a521be21ed4da084344f3680ecb6a1f7e4fbf8 100644
--- a/eng/common/templates/steps/telemetry-start.yml
+++ b/eng/common/templates/steps/telemetry-start.yml
@@ -3,6 +3,8 @@ parameters:
helixType: 'undefined_defaulted_in_telemetry.yml'
buildConfig: ''
runAsPublic: false
+ maxRetries: 5
+ retryDelay: 10 # in seconds
steps:
- ${{ if and(eq(parameters.runAsPublic, 'false'), not(eq(variables['System.TeamProject'], 'public'))) }}:
@@ -30,7 +32,7 @@ steps:
}
}
JobListStuff
-
+
cat $jobInfo
# create a temporary file for curl output
@@ -38,30 +40,44 @@ steps:
accessTokenParameter="?access_token=$HelixApiAccessToken"
- curlResult=`
- cat $jobInfo |\
- curl --trace - --verbose --output $res --write-out "%{http_code}" \
- -H 'Content-Type: application/json' \
- -X POST "https://helix.dot.net/api/2018-03-14/telemetry/job$accessTokenParameter" -d @-`
- curlStatus=$?
+ curlStatus=1
+ retryCount=0
+ # retry loop to harden against spotty telemetry connections
+ # we don't retry successes and 4xx client errors
+ until [[ $curlStatus -eq 0 || ( $curlStatus -ge 400 && $curlStatus -le 499 ) || $retryCount -ge $MaxRetries ]]
+ do
+ if [ $retryCount -gt 0 ]; then
+ echo "Failed to send telemetry to Helix; waiting $RetryDelay seconds before retrying..."
+ sleep $RetryDelay
+ fi
+
+ curlResult=`
+ cat $jobInfo |\
+ curl --trace - --verbose --output $res --write-out "%{http_code}" \
+ -H 'Content-Type: application/json' \
+ -X POST "https://helix.dot.net/api/2018-03-14/telemetry/job$accessTokenParameter" -d @-`
+ curlStatus=$?
- if [ $curlStatus -eq 0 ]; then
- if [ $curlResult -gt 299 ] || [ $curlResult -lt 200 ]; then
- curlStatus=$curlResult
+ if [ $curlStatus -eq 0 ]; then
+ if [ $curlResult -gt 299 ] || [ $curlResult -lt 200 ]; then
+ curlStatus=$curlResult
+ fi
fi
- fi
+
+ let retryCount++
+ done
curlResult=`cat $res`
-
+
# validate status of curl command
if [ $curlStatus -ne 0 ]; then
- echo "Failed To Send Job Start information"
+ echo "Failed To Send Job Start information after $retryCount retries"
# We have to append the ## vso prefix or vso will pick up the command when it dumps the inline script into the shell
vstsLogOutput="vso[task.logissue type=error;sourcepath=telemetry/start-job.sh;code=1;]Failed to Send Job Start information: $curlStatus"
echo "##$vstsLogOutput"
exit 1
fi
-
+
# Set the Helix_JobToken variable
export Helix_JobToken=`echo $curlResult | xargs echo` # Strip Quotes
echo "##vso[task.setvariable variable=Helix_JobToken;issecret=true;]$Helix_JobToken"
@@ -75,29 +91,44 @@ steps:
Attempt: 1
OperatingSystem: $(Agent.Os)
Configuration: ${{ parameters.buildConfig }}
+ MaxRetries: ${{ parameters.maxRetries }}
+ RetryDelay: ${{ parameters.retryDelay }}
condition: and(always(), ne(variables['Agent.Os'], 'Windows_NT'))
- bash: |
- res=`mktemp`
- curlResult=`
- curl --verbose --output $res --write-out "%{http_code}"\
- -H 'Content-Type: application/json' \
- -H "X-Helix-Job-Token: $Helix_JobToken" \
- -H 'Content-Length: 0' \
- -X POST -G "https://helix.dot.net/api/2018-03-14/telemetry/job/build" \
- --data-urlencode "buildUri=$BuildUri"`
- curlStatus=$?
-
- if [ $curlStatus -eq 0 ]; then
- if [ $curlResult -gt 299 ] || [ $curlResult -lt 200 ]; then
- curlStatus=$curlResult
+ curlStatus=1
+ retryCount=0
+ # retry loop to harden against spotty telemetry connections
+ # we don't retry successes and 4xx client errors
+ until [[ $curlStatus -eq 0 || ( $curlStatus -ge 400 && $curlStatus -le 499 ) || $retryCount -ge $MaxRetries ]]
+ do
+ if [ $retryCount -gt 0 ]; then
+ echo "Failed to send telemetry to Helix; waiting $RetryDelay seconds before retrying..."
+ sleep $RetryDelay
fi
- fi
- curlResult=`cat $res`
+ res=`mktemp`
+ curlResult=`
+ curl --verbose --output $res --write-out "%{http_code}"\
+ -H 'Content-Type: application/json' \
+ -H "X-Helix-Job-Token: $Helix_JobToken" \
+ -H 'Content-Length: 0' \
+ -X POST -G "https://helix.dot.net/api/2018-03-14/telemetry/job/build" \
+ --data-urlencode "buildUri=$BuildUri"`
+ curlStatus=$?
+
+ if [ $curlStatus -eq 0 ]; then
+ if [ $curlResult -gt 299 ] || [ $curlResult -lt 200 ]; then
+ curlStatus=$curlResult
+ fi
+ fi
+
+ curlResult=`cat $res`
+ let retryCount++
+ done
# validate status of curl command
if [ $curlStatus -ne 0 ]; then
- echo "Failed to Send Build Start information"
+ echo "Failed to Send Build Start information after $retryCount retries"
vstsLogOutput="vso[task.logissue type=error;sourcepath=telemetry/build/start.sh;code=1;]Failed to Send Build Start information: $curlStatus"
echo "##$vstsLogOutput"
exit 1
@@ -109,8 +140,10 @@ steps:
env:
BuildUri: $(System.TaskDefinitionsUri)$(System.TeamProject)/_build/index?buildId=$(Build.BuildId)&_a=summary
Helix_JobToken: $(Helix_JobToken)
+ MaxRetries: ${{ parameters.maxRetries }}
+ RetryDelay: ${{ parameters.retryDelay }}
condition: and(always(), ne(variables['Agent.Os'], 'Windows_NT'))
-
+
- powershell: |
$jobInfo = [pscustomobject]@{
QueueId=$env:QueueId;
@@ -120,17 +153,42 @@ steps:
Attempt=$env:Attempt;
Properties=[pscustomobject]@{ operatingSystem=$env:OperatingSystem; configuration=$env:Configuration };
}
-
+
$jobInfoJson = $jobInfo | ConvertTo-Json
if ($env:HelixApiAccessToken) {
$accessTokenParameter="?access_token=$($env:HelixApiAccessToken)"
}
Write-Host "Job Info: $jobInfoJson"
- $jobToken = Invoke-RestMethod -Uri "https://helix.dot.net/api/2018-03-14/telemetry/job$($accessTokenParameter)" -Method Post -ContentType "application/json" -Body $jobInfoJson
+
+ # Basic retry loop to harden against server flakiness
+ $retryCount = 0
+ while ($retryCount -lt $env:MaxRetries) {
+ try {
+ $jobToken = Invoke-RestMethod -Uri "https://helix.dot.net/api/2018-03-14/telemetry/job$($accessTokenParameter)" -Method Post -ContentType "application/json" -Body $jobInfoJson
+ break
+ }
+ catch {
+ $statusCode = $_.Exception.Response.StatusCode.value__
+ if ($statusCode -ge 400 -and $statusCode -le 499) {
+ Write-Host "##vso[task.logissue]error Failed to send telemetry to Helix (status code $statusCode); not retrying (4xx client error)"
+ Write-Host "##vso[task.logissue]error ", $_.Exception.GetType().FullName, $_.Exception.Message
+ exit 1
+ }
+ Write-Host "Failed to send telemetry to Helix (status code $statusCode); waiting $env:RetryDelay seconds before retrying..."
+ $retryCount++
+ sleep $env:RetryDelay
+ continue
+ }
+ }
+
+ if ($retryCount -ge $env:MaxRetries) {
+ Write-Host "##vso[task.logissue]error Failed to send telemetry to Helix after $retryCount retries."
+ exit 1
+ }
+
$env:Helix_JobToken = $jobToken
Write-Host "##vso[task.setvariable variable=Helix_JobToken;issecret=true;]$env:Helix_JobToken"
- displayName: Send Windows Job Start Telemetry
env:
HelixApiAccessToken: $(HelixApiAccessToken)
Source: ${{ parameters.helixSource }}
@@ -140,15 +198,43 @@ steps:
Attempt: 1
OperatingSystem: $(Agent.Os)
Configuration: ${{ parameters.buildConfig }}
+ MaxRetries: ${{ parameters.maxRetries }}
+ RetryDelay: ${{ parameters.retryDelay }}
condition: and(always(), eq(variables['Agent.Os'], 'Windows_NT'))
- powershell: |
- $workItemId = Invoke-RestMethod -Uri "https://helix.dot.net/api/2018-03-14/telemetry/job/build?buildUri=$([Net.WebUtility]::UrlEncode($env:BuildUri))" -Method Post -ContentType "application/json" -Body "" `
- -Headers @{ 'X-Helix-Job-Token'=$env:Helix_JobToken }
-
+ # Basic retry loop to harden against server flakiness
+ $retryCount = 0
+ while ($retryCount -lt $env:MaxRetries) {
+ try {
+ $workItemId = Invoke-RestMethod -Uri "https://helix.dot.net/api/2018-03-14/telemetry/job/build?buildUri=$([Net.WebUtility]::UrlEncode($env:BuildUri))" -Method Post -ContentType "application/json" -Body "" `
+ -Headers @{ 'X-Helix-Job-Token'=$env:Helix_JobToken }
+ break
+ }
+ catch {
+ $statusCode = $_.Exception.Response.StatusCode.value__
+ if ($statusCode -ge 400 -and $statusCode -le 499) {
+ Write-Host "##vso[task.logissue]error Failed to send telemetry to Helix (status code $statusCode); not retrying (4xx client error)"
+ Write-Host "##vso[task.logissue]error ", $_.Exception.GetType().FullName, $_.Exception.Message
+ exit 1
+ }
+ Write-Host "Failed to send telemetry to Helix (status code $statusCode); waiting $env:RetryDelay seconds before retrying..."
+ $retryCount++
+ sleep $env:RetryDelay
+ continue
+ }
+ }
+
+ if ($retryCount -ge $env:MaxRetries) {
+ Write-Host "##vso[task.logissue]error Failed to send telemetry to Helix after $retryCount retries."
+ exit 1
+ }
+
$env:Helix_WorkItemId = $workItemId
Write-Host "##vso[task.setvariable variable=Helix_WorkItemId]$env:Helix_WorkItemId"
displayName: Send Windows Build Start Telemetry
env:
BuildUri: $(System.TaskDefinitionsUri)$(System.TeamProject)/_build/index?buildId=$(Build.BuildId)&_a=summary
Helix_JobToken: $(Helix_JobToken)
+ MaxRetries: ${{ parameters.maxRetries }}
+ RetryDelay: ${{ parameters.retryDelay }}
condition: and(always(), eq(variables['Agent.Os'], 'Windows_NT'))
diff --git a/eng/common/tools.ps1 b/eng/common/tools.ps1
index 4204dc14f892c01a599d4ea131176bfc0a00532e..e91f8ccf3b31835350ce9254b3a7e3b50a420996 100644
--- a/eng/common/tools.ps1
+++ b/eng/common/tools.ps1
@@ -376,6 +376,11 @@ function GetNuGetPackageCachePath() {
return $env:NUGET_PACKAGES
}
+# Returns a full path to an Arcade SDK task project file.
+function GetSdkTaskProject([string]$taskName) {
+ return Join-Path (Split-Path (InitializeToolset) -Parent) "SdkTasks\$taskName.proj"
+}
+
function InitializeToolset() {
if (Test-Path variable:global:_ToolsetBuildProj) {
return $global:_ToolsetBuildProj
@@ -394,7 +399,7 @@ function InitializeToolset() {
}
if (-not $restore) {
- Write-Host "Toolset version $toolsetVersion has not been restored."
+ Write-Host "Toolset version $toolsetVersion has not been restored." -ForegroundColor Red
ExitWithExitCode 1
}
diff --git a/eng/generate-optprof-run-settings.ps1 b/eng/generate-optprof-run-settings.ps1
deleted file mode 100644
index 1280e96e568b78fb4e6b12baf8abacd4c0347139..0000000000000000000000000000000000000000
--- a/eng/generate-optprof-run-settings.ps1
+++ /dev/null
@@ -1,31 +0,0 @@
-[CmdletBinding(PositionalBinding=$false)]
-param (
- [string]$configuration,
- [string]$vsDropName,
- [string]$bootstrapperInfo
-)
-
-Set-StrictMode -version 2.0
-$ErrorActionPreference = "Stop"
-
-. (Join-Path $PSScriptRoot "build-utils.ps1")
-
-try {
- $optProfToolDir = Get-PackageDir "Roslyn.OptProf.RunSettings.Generator"
- $optProfToolExe = Join-Path $optProfToolDir "tools\roslyn.optprof.runsettings.generator.exe"
- $configFile = Join-Path $EngRoot "config\OptProf.json"
- $runSettingsFile = Join-Path $VSSetupDir "Insertion\OptProf\Training.runsettings"
-
- Exec-Console $optProfToolExe "--config $configFile --vsDropName $vsDropName --bootstrapperInfo $bootstrapperInfo --out $runSettingsFile"
-
- exit 0
-}
-catch {
- Write-Host $_
- Write-Host $_.Exception
- Write-Host $_.ScriptStackTrace
- exit 1
-}
-finally {
- Pop-Location
-}
diff --git a/eng/internal/Directory.Build.props b/eng/internal/Directory.Build.props
deleted file mode 100644
index 4b502f8963a1c3e51415592eed0c050409498982..0000000000000000000000000000000000000000
--- a/eng/internal/Directory.Build.props
+++ /dev/null
@@ -1,4 +0,0 @@
-
-
-
-
\ No newline at end of file
diff --git a/eng/internal/Directory.Build.targets b/eng/internal/Directory.Build.targets
deleted file mode 100644
index d7efd3fada3f3ed6f4a61410578a6a26fa34ab7d..0000000000000000000000000000000000000000
--- a/eng/internal/Directory.Build.targets
+++ /dev/null
@@ -1,3 +0,0 @@
-
-
-
diff --git a/eng/publish-assets.ps1 b/eng/publish-assets.ps1
index 57fb7eb71d9f100b14c1fa21a4fc56c5c609571a..04df43cfbabea95516c4d460659592dea383e9fa 100644
--- a/eng/publish-assets.ps1
+++ b/eng/publish-assets.ps1
@@ -131,17 +131,6 @@ function Test-Member($obj, [string]$name) {
return $value -ne $null
}
-# This script is interested in the short branch name: master, dev15.x, etc ... But several
-# of our publish operations specify fully branch names like /refs/heads/master. Normalizing
-# those out to the short branch name here.
-function Normalize-BranchName([string]$branchName) {
- switch -regex ($branchName) {
- "refs/heads/(.*)" { return $matches[1] }
- "refs/pull/\d*/(.*)" { return $matches[1] }
- default { return $branchName }
- }
-}
-
try {
if ($configuration -eq "") {
Write-Host "Must provide the build configuration with -configuration"
@@ -161,7 +150,6 @@ try {
exit 1
}
elseif ($branchName -ne "") {
- $branchName = Normalize-BranchName $branchName
if (-not (Test-Member $data.branches $branchName)) {
Write-Host "$branchName is not listed for publishing"
exit 0
diff --git a/eng/test-build-correctness.ps1 b/eng/test-build-correctness.ps1
index db2fde5325b684b27197821277d658f934019ca5..f9b856242d8a9d99f16880684a06edf5588cd9a4 100644
--- a/eng/test-build-correctness.ps1
+++ b/eng/test-build-correctness.ps1
@@ -56,7 +56,7 @@ try {
$bootstrapperInfoContent | Set-Content $bootstrapperInfoPath
# generate run settings
- Exec-Block { & (Join-Path $PSScriptRoot "generate-optprof-run-settings.ps1") -configuration:$configuration -vsDropName:"Products/DummyDrop" -bootstrapperInfo:$bootstrapperInfoPath }
+ Exec-Block { & (Join-Path $PSScriptRoot "common\sdk-task.ps1") -configuration:$configuration -task VisualStudio.BuildIbcTrainingSettings /p:VisualStudioDropName="Products/DummyDrop" /p:BootstrapperInfoPath=$bootstrapperInfoPath }
exit 0
}
diff --git a/global.json b/global.json
index 1ba613bf46a8c66caa2abc6600749b2a624f34db..2234f323e3e6b0481de6356aa66feafc32d4a885 100644
--- a/global.json
+++ b/global.json
@@ -7,6 +7,6 @@
"xcopy-msbuild": "15.9.0-alpha"
},
"msbuild-sdks": {
- "Microsoft.DotNet.Arcade.Sdk": "1.0.0-beta.19064.4"
+ "Microsoft.DotNet.Arcade.Sdk": "1.0.0-beta.19104.18"
}
}