Update dependencies from https://github.com/dotnet/arcade build 20190904.31 (#4580)
- Microsoft.DotNet.Arcade.Sdk - 1.0.0-beta.19454.31
This commit is contained in:
parent
235177056a
commit
b613daeae8
36 changed files with 1278 additions and 272 deletions
|
@ -65,9 +65,9 @@
|
||||||
</Dependency>
|
</Dependency>
|
||||||
</ProductDependencies>
|
</ProductDependencies>
|
||||||
<ToolsetDependencies>
|
<ToolsetDependencies>
|
||||||
<Dependency Name="Microsoft.DotNet.Arcade.Sdk" Version="1.0.0-beta.19377.2">
|
<Dependency Name="Microsoft.DotNet.Arcade.Sdk" Version="1.0.0-beta.19454.31">
|
||||||
<Uri>https://github.com/dotnet/arcade</Uri>
|
<Uri>https://github.com/dotnet/arcade</Uri>
|
||||||
<Sha>8b670142ae1b65aa4d834257b0b64d4f69f30eb8</Sha>
|
<Sha>00d8aa82b488f321204a0e69a81399af9df276a1</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
</ToolsetDependencies>
|
</ToolsetDependencies>
|
||||||
</Dependencies>
|
</Dependencies>
|
||||||
|
|
|
@ -1,9 +1,9 @@
|
||||||
param (
|
param (
|
||||||
$darcVersion = $null,
|
$darcVersion = $null,
|
||||||
$versionEndpoint = "https://maestro-prod.westus2.cloudapp.azure.com/api/assets/darc-version?api-version=2019-01-16"
|
$versionEndpoint = "https://maestro-prod.westus2.cloudapp.azure.com/api/assets/darc-version?api-version=2019-01-16",
|
||||||
|
$verbosity = "m"
|
||||||
)
|
)
|
||||||
|
|
||||||
$verbosity = "m"
|
|
||||||
. $PSScriptRoot\tools.ps1
|
. $PSScriptRoot\tools.ps1
|
||||||
|
|
||||||
function InstallDarcCli ($darcVersion) {
|
function InstallDarcCli ($darcVersion) {
|
||||||
|
|
|
@ -3,6 +3,7 @@
|
||||||
source="${BASH_SOURCE[0]}"
|
source="${BASH_SOURCE[0]}"
|
||||||
darcVersion=''
|
darcVersion=''
|
||||||
versionEndpoint="https://maestro-prod.westus2.cloudapp.azure.com/api/assets/darc-version?api-version=2019-01-16"
|
versionEndpoint="https://maestro-prod.westus2.cloudapp.azure.com/api/assets/darc-version?api-version=2019-01-16"
|
||||||
|
verbosity=m
|
||||||
|
|
||||||
while [[ $# > 0 ]]; do
|
while [[ $# > 0 ]]; do
|
||||||
opt="$(echo "$1" | awk '{print tolower($0)}')"
|
opt="$(echo "$1" | awk '{print tolower($0)}')"
|
||||||
|
@ -15,6 +16,10 @@ while [[ $# > 0 ]]; do
|
||||||
versionEndpoint=$2
|
versionEndpoint=$2
|
||||||
shift
|
shift
|
||||||
;;
|
;;
|
||||||
|
--verbosity)
|
||||||
|
verbosity=$2
|
||||||
|
shift
|
||||||
|
;;
|
||||||
*)
|
*)
|
||||||
echo "Invalid argument: $1"
|
echo "Invalid argument: $1"
|
||||||
usage
|
usage
|
||||||
|
@ -34,7 +39,6 @@ while [[ -h "$source" ]]; do
|
||||||
[[ $source != /* ]] && source="$scriptroot/$source"
|
[[ $source != /* ]] && source="$scriptroot/$source"
|
||||||
done
|
done
|
||||||
scriptroot="$( cd -P "$( dirname "$source" )" && pwd )"
|
scriptroot="$( cd -P "$( dirname "$source" )" && pwd )"
|
||||||
verbosity=m
|
|
||||||
|
|
||||||
. "$scriptroot/tools.sh"
|
. "$scriptroot/tools.sh"
|
||||||
|
|
||||||
|
|
|
@ -70,8 +70,7 @@ function ReadGlobalJsonNativeTools {
|
||||||
# Only extract the contents of the object.
|
# Only extract the contents of the object.
|
||||||
local native_tools_list=$(echo $native_tools_section | awk -F"[{}]" '{print $2}')
|
local native_tools_list=$(echo $native_tools_section | awk -F"[{}]" '{print $2}')
|
||||||
native_tools_list=${native_tools_list//[\" ]/}
|
native_tools_list=${native_tools_list//[\" ]/}
|
||||||
native_tools_list=${native_tools_list//,/$'\n'}
|
native_tools_list=$( echo "$native_tools_list" | sed 's/\s//g' | sed 's/,/\n/g' )
|
||||||
native_tools_list="$(echo -e "${native_tools_list}" | tr -d '[[:space:]]')"
|
|
||||||
|
|
||||||
local old_IFS=$IFS
|
local old_IFS=$IFS
|
||||||
while read -r line; do
|
while read -r line; do
|
||||||
|
@ -108,6 +107,7 @@ else
|
||||||
installer_command+=" --baseuri $base_uri"
|
installer_command+=" --baseuri $base_uri"
|
||||||
installer_command+=" --installpath $install_bin"
|
installer_command+=" --installpath $install_bin"
|
||||||
installer_command+=" --version $tool_version"
|
installer_command+=" --version $tool_version"
|
||||||
|
echo $installer_command
|
||||||
|
|
||||||
if [[ $force = true ]]; then
|
if [[ $force = true ]]; then
|
||||||
installer_command+=" --force"
|
installer_command+=" --force"
|
||||||
|
|
|
@ -152,6 +152,8 @@ function Get-File {
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
Write-Verbose "Downloading $Uri"
|
Write-Verbose "Downloading $Uri"
|
||||||
|
# Don't display the console progress UI - it's a huge perf hit
|
||||||
|
$ProgressPreference = 'SilentlyContinue'
|
||||||
while($Attempt -Lt $DownloadRetries)
|
while($Attempt -Lt $DownloadRetries)
|
||||||
{
|
{
|
||||||
try {
|
try {
|
||||||
|
|
117
eng/common/native/install-cmake-test.sh
Normal file
117
eng/common/native/install-cmake-test.sh
Normal file
|
@ -0,0 +1,117 @@
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
source="${BASH_SOURCE[0]}"
|
||||||
|
scriptroot="$( cd -P "$( dirname "$source" )" && pwd )"
|
||||||
|
|
||||||
|
. $scriptroot/common-library.sh
|
||||||
|
|
||||||
|
base_uri=
|
||||||
|
install_path=
|
||||||
|
version=
|
||||||
|
clean=false
|
||||||
|
force=false
|
||||||
|
download_retries=5
|
||||||
|
retry_wait_time_seconds=30
|
||||||
|
|
||||||
|
while (($# > 0)); do
|
||||||
|
lowerI="$(echo $1 | awk '{print tolower($0)}')"
|
||||||
|
case $lowerI in
|
||||||
|
--baseuri)
|
||||||
|
base_uri=$2
|
||||||
|
shift 2
|
||||||
|
;;
|
||||||
|
--installpath)
|
||||||
|
install_path=$2
|
||||||
|
shift 2
|
||||||
|
;;
|
||||||
|
--version)
|
||||||
|
version=$2
|
||||||
|
shift 2
|
||||||
|
;;
|
||||||
|
--clean)
|
||||||
|
clean=true
|
||||||
|
shift 1
|
||||||
|
;;
|
||||||
|
--force)
|
||||||
|
force=true
|
||||||
|
shift 1
|
||||||
|
;;
|
||||||
|
--downloadretries)
|
||||||
|
download_retries=$2
|
||||||
|
shift 2
|
||||||
|
;;
|
||||||
|
--retrywaittimeseconds)
|
||||||
|
retry_wait_time_seconds=$2
|
||||||
|
shift 2
|
||||||
|
;;
|
||||||
|
--help)
|
||||||
|
echo "Common settings:"
|
||||||
|
echo " --baseuri <value> Base file directory or Url wrom which to acquire tool archives"
|
||||||
|
echo " --installpath <value> Base directory to install native tool to"
|
||||||
|
echo " --clean Don't install the tool, just clean up the current install of the tool"
|
||||||
|
echo " --force Force install of tools even if they previously exist"
|
||||||
|
echo " --help Print help and exit"
|
||||||
|
echo ""
|
||||||
|
echo "Advanced settings:"
|
||||||
|
echo " --downloadretries Total number of retry attempts"
|
||||||
|
echo " --retrywaittimeseconds Wait time between retry attempts in seconds"
|
||||||
|
echo ""
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
|
||||||
|
tool_name="cmake-test"
|
||||||
|
tool_os=$(GetCurrentOS)
|
||||||
|
tool_folder=$(echo $tool_os | awk '{print tolower($0)}')
|
||||||
|
tool_arch="x86_64"
|
||||||
|
tool_name_moniker="$tool_name-$version-$tool_os-$tool_arch"
|
||||||
|
tool_install_directory="$install_path/$tool_name/$version"
|
||||||
|
tool_file_path="$tool_install_directory/$tool_name_moniker/bin/$tool_name"
|
||||||
|
shim_path="$install_path/$tool_name.sh"
|
||||||
|
uri="${base_uri}/$tool_folder/$tool_name/$tool_name_moniker.tar.gz"
|
||||||
|
|
||||||
|
# Clean up tool and installers
|
||||||
|
if [[ $clean = true ]]; then
|
||||||
|
echo "Cleaning $tool_install_directory"
|
||||||
|
if [[ -d $tool_install_directory ]]; then
|
||||||
|
rm -rf $tool_install_directory
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "Cleaning $shim_path"
|
||||||
|
if [[ -f $shim_path ]]; then
|
||||||
|
rm -rf $shim_path
|
||||||
|
fi
|
||||||
|
|
||||||
|
tool_temp_path=$(GetTempPathFileName $uri)
|
||||||
|
echo "Cleaning $tool_temp_path"
|
||||||
|
if [[ -f $tool_temp_path ]]; then
|
||||||
|
rm -rf $tool_temp_path
|
||||||
|
fi
|
||||||
|
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Install tool
|
||||||
|
if [[ -f $tool_file_path ]] && [[ $force = false ]]; then
|
||||||
|
echo "$tool_name ($version) already exists, skipping install"
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
DownloadAndExtract $uri $tool_install_directory $force $download_retries $retry_wait_time_seconds
|
||||||
|
|
||||||
|
if [[ $? != 0 ]]; then
|
||||||
|
echo "Installation failed" >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Generate Shim
|
||||||
|
# Always rewrite shims so that we are referencing the expected version
|
||||||
|
NewScriptShim $shim_path $tool_file_path true
|
||||||
|
|
||||||
|
if [[ $? != 0 ]]; then
|
||||||
|
echo "Shim generation failed" >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
exit 0
|
|
@ -69,7 +69,7 @@ tool_name_moniker="$tool_name-$version-$tool_os-$tool_arch"
|
||||||
tool_install_directory="$install_path/$tool_name/$version"
|
tool_install_directory="$install_path/$tool_name/$version"
|
||||||
tool_file_path="$tool_install_directory/$tool_name_moniker/bin/$tool_name"
|
tool_file_path="$tool_install_directory/$tool_name_moniker/bin/$tool_name"
|
||||||
shim_path="$install_path/$tool_name.sh"
|
shim_path="$install_path/$tool_name.sh"
|
||||||
uri="${base_uri}/$tool_folder/cmake/$tool_name_moniker.tar.gz"
|
uri="${base_uri}/$tool_folder/$tool_name/$tool_name_moniker.tar.gz"
|
||||||
|
|
||||||
# Clean up tool and installers
|
# Clean up tool and installers
|
||||||
if [[ $clean = true ]]; then
|
if [[ $clean = true ]]; then
|
||||||
|
|
|
@ -5,8 +5,14 @@
|
||||||
<CliArguments>--dotnet-versions %DOTNET_VERSION% --cli-source-info args --cli-branch %PERFLAB_BRANCH% --cli-commit-sha %PERFLAB_HASH% --cli-repository https://github.com/%PERFLAB_REPO% --cli-source-timestamp %PERFLAB_BUILDTIMESTAMP%</CliArguments>
|
<CliArguments>--dotnet-versions %DOTNET_VERSION% --cli-source-info args --cli-branch %PERFLAB_BRANCH% --cli-commit-sha %PERFLAB_HASH% --cli-repository https://github.com/%PERFLAB_REPO% --cli-source-timestamp %PERFLAB_BUILDTIMESTAMP%</CliArguments>
|
||||||
<Python>py -3</Python>
|
<Python>py -3</Python>
|
||||||
<CoreRun>%HELIX_CORRELATION_PAYLOAD%\Core_Root\CoreRun.exe</CoreRun>
|
<CoreRun>%HELIX_CORRELATION_PAYLOAD%\Core_Root\CoreRun.exe</CoreRun>
|
||||||
|
<BaselineCoreRun>%HELIX_CORRELATION_PAYLOAD%\Baseline_Core_Root\CoreRun.exe</BaselineCoreRun>
|
||||||
<HelixPreCommands>$(HelixPreCommands);call %HELIX_CORRELATION_PAYLOAD%\performance\tools\machine-setup.cmd</HelixPreCommands>
|
<HelixPreCommands>$(HelixPreCommands);call %HELIX_CORRELATION_PAYLOAD%\performance\tools\machine-setup.cmd</HelixPreCommands>
|
||||||
<ArtifactsDirectory>%HELIX_CORRELATION_PAYLOAD%\artifacts\BenchmarkDotNet.Artifacts</ArtifactsDirectory>
|
<ArtifactsDirectory>%HELIX_CORRELATION_PAYLOAD%\artifacts\BenchmarkDotNet.Artifacts</ArtifactsDirectory>
|
||||||
|
<BaselineArtifactsDirectory>%HELIX_CORRELATION_PAYLOAD%\artifacts\BenchmarkDotNet.Artifacts_Baseline</BaselineArtifactsDirectory>
|
||||||
|
<ResultsComparer>%HELIX_CORRELATION_PAYLOAD%\performance\src\tools\ResultsComparer\ResultsComparer.csproj</ResultsComparer>
|
||||||
|
<DotnetExe>%HELIX_CORRELATION_PAYLOAD%\performance\tools\dotnet\$(Architecture)\dotnet.exe</DotnetExe>
|
||||||
|
<Percent>%25%25</Percent>
|
||||||
|
<XMLResults>%HELIX_WORKITEM_ROOT%\testResults.xml</XMLResults>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<PropertyGroup Condition="'$(AGENT_OS)' != 'Windows_NT' and '$(RunFromPerfRepo)' == 'false'">
|
<PropertyGroup Condition="'$(AGENT_OS)' != 'Windows_NT' and '$(RunFromPerfRepo)' == 'false'">
|
||||||
|
@ -24,14 +30,24 @@
|
||||||
<CliArguments>--dotnet-versions $DOTNET_VERSION --cli-source-info args --cli-branch $PERFLAB_BRANCH --cli-commit-sha $PERFLAB_HASH --cli-repository https://github.com/$PERFLAB_REPO --cli-source-timestamp $PERFLAB_BUILDTIMESTAMP</CliArguments>
|
<CliArguments>--dotnet-versions $DOTNET_VERSION --cli-source-info args --cli-branch $PERFLAB_BRANCH --cli-commit-sha $PERFLAB_HASH --cli-repository https://github.com/$PERFLAB_REPO --cli-source-timestamp $PERFLAB_BUILDTIMESTAMP</CliArguments>
|
||||||
<Python>python3</Python>
|
<Python>python3</Python>
|
||||||
<CoreRun>$(BaseDirectory)/Core_Root/corerun</CoreRun>
|
<CoreRun>$(BaseDirectory)/Core_Root/corerun</CoreRun>
|
||||||
|
<BaselineCoreRun>$(BaseDirectory)/Baseline_Core_Root/corerun</BaselineCoreRun>
|
||||||
<HelixPreCommands>$(HelixPreCommands);chmod +x $(PerformanceDirectory)/tools/machine-setup.sh;. $(PerformanceDirectory)/tools/machine-setup.sh</HelixPreCommands>
|
<HelixPreCommands>$(HelixPreCommands);chmod +x $(PerformanceDirectory)/tools/machine-setup.sh;. $(PerformanceDirectory)/tools/machine-setup.sh</HelixPreCommands>
|
||||||
<ArtifactsDirectory>$(BaseDirectory)/artifacts/BenchmarkDotNet.Artifacts</ArtifactsDirectory>
|
<ArtifactsDirectory>$(BaseDirectory)/artifacts/BenchmarkDotNet.Artifacts</ArtifactsDirectory>
|
||||||
|
<BaselineArtifactsDirectory>$(BaseDirectory)/artifacts/BenchmarkDotNet.Artifacts_Baseline</BaselineArtifactsDirectory>
|
||||||
|
<ResultsComparer>$(PerformanceDirectory)/src/tools/ResultsComparer/ResultsComparer.csproj</ResultsComparer>
|
||||||
|
<DotnetExe>$(PerformanceDirectory)/tools/dotnet/$(Architecture)/dotnet</DotnetExe>
|
||||||
|
<Percent>%25</Percent>
|
||||||
|
<XMLResults>$HELIX_WORKITEM_ROOT/testResults.xml</XMLResults>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<PropertyGroup Condition="'$(UseCoreRun)' == 'true'">
|
<PropertyGroup Condition="'$(UseCoreRun)' == 'true'">
|
||||||
<CoreRunArgument>--corerun $(CoreRun)</CoreRunArgument>
|
<CoreRunArgument>--corerun $(CoreRun)</CoreRunArgument>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
|
<PropertyGroup Condition="'$(UseBaselineCoreRun)' == 'true'">
|
||||||
|
<BaselineCoreRunArgument>--corerun $(BaselineCoreRun)</BaselineCoreRunArgument>
|
||||||
|
</PropertyGroup>
|
||||||
|
|
||||||
<PropertyGroup Condition="'$(WorkItemCommand)' != ''">
|
<PropertyGroup Condition="'$(WorkItemCommand)' != ''">
|
||||||
<WorkItemCommand>$(Python) $(WorkItemCommand) --incremental no --architecture $(Architecture) -f $(_Framework) $(PerfLabArguments)</WorkItemCommand>
|
<WorkItemCommand>$(Python) $(WorkItemCommand) --incremental no --architecture $(Architecture) -f $(_Framework) $(PerfLabArguments)</WorkItemCommand>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
@ -57,20 +73,29 @@
|
||||||
<Partition Include="$(BuildConfig).Partition4" Index="4" />
|
<Partition Include="$(BuildConfig).Partition4" Index="4" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
|
<PropertyGroup Condition="'$(Compare)' == 'true'">
|
||||||
|
<FailOnTestFailure>false</FailOnTestFailure>
|
||||||
|
</PropertyGroup>
|
||||||
|
|
||||||
<!--
|
<!--
|
||||||
Partition the Microbenchmarks project, but nothing else
|
Partition the Microbenchmarks project, but nothing else
|
||||||
-->
|
-->
|
||||||
<ItemGroup Condition="$(TargetCsproj.Contains('MicroBenchmarks.csproj'))">
|
<ItemGroup Condition="$(TargetCsproj.Contains('MicroBenchmarks.csproj'))">
|
||||||
<HelixWorkItem Include="@(Partition)">
|
<HelixWorkItem Include="@(Partition)">
|
||||||
<PayloadDirectory>$(WorkItemDirectory)</PayloadDirectory>
|
<PayloadDirectory>$(WorkItemDirectory)</PayloadDirectory>
|
||||||
<Command>$(WorkItemCommand) --bdn-arguments="--anyCategories $(BDNCategories) $(ExtraBenchmarkDotNetArguments) $(CoreRunArgument) --artifacts $(ArtifactsDirectory) --partition-count $(PartitionCount) --partition-index %(HelixWorkItem.Index)"</Command>
|
<PreCommands Condition="'$(Compare)' == 'true'">$(WorkItemCommand) --bdn-artifacts $(BaselineArtifactsDirectory) --bdn-arguments="--anyCategories $(BDNCategories) $(ExtraBenchmarkDotNetArguments) $(BaselineCoreRunArgument) --partition-count $(PartitionCount) --partition-index %(HelixWorkItem.Index)"</PreCommands>
|
||||||
|
<Command>$(WorkItemCommand) --bdn-artifacts $(ArtifactsDirectory) --bdn-arguments="--anyCategories $(BDNCategories) $(ExtraBenchmarkDotNetArguments) $(CoreRunArgument) --partition-count $(PartitionCount) --partition-index %(HelixWorkItem.Index)"</Command>
|
||||||
|
<PostCommands Condition="'$(Compare)' == 'true'">$(DotnetExe) run -f $(_Framework) -p $(ResultsComparer) --base $(BaselineArtifactsDirectory) --diff $(ArtifactsDirectory) --threshold 2$(Percent) --xml $(XMLResults);$(FinalCommand)</PostCommands>
|
||||||
<Timeout>4:00</Timeout>
|
<Timeout>4:00</Timeout>
|
||||||
</HelixWorkItem>
|
</HelixWorkItem>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
<ItemGroup Condition="!$(TargetCsproj.Contains('MicroBenchmarks.csproj'))">
|
<ItemGroup Condition="!$(TargetCsproj.Contains('MicroBenchmarks.csproj'))">
|
||||||
<HelixWorkItem Include="$(BuildConfig).WorkItem">
|
<HelixWorkItem Include="$(BuildConfig).WorkItem">
|
||||||
<PayloadDirectory>$(WorkItemDirectory)</PayloadDirectory>
|
<PayloadDirectory>$(WorkItemDirectory)</PayloadDirectory>
|
||||||
<Command>$(WorkItemCommand) --bdn-arguments="--anyCategories $(BDNCategories) $(ExtraBenchmarkDotNetArguments) $(CoreRunArgument) --artifacts $(ArtifactsDirectory)"</Command>
|
<PreCommands Condition="'$(Compare)' == 'true'">$(WorkItemCommand) --bdn-artifacts $(BaselineArtifactsDirectory) --bdn-arguments="--anyCategories $(BDNCategories) $(ExtraBenchmarkDotNetArguments) $(BaselineCoreRunArgument)"</PreCommands>
|
||||||
|
<Command>$(WorkItemCommand) --bdn-artifacts $(ArtifactsDirectory) --bdn-arguments="--anyCategories $(BDNCategories) $(ExtraBenchmarkDotNetArguments) $(CoreRunArgument)"</Command>
|
||||||
|
<PostCommands Condition="'$(Compare)' == 'true'">$(DotnetExe) run -f $(_Framework) -p $(ResultsComparer) --base $(BaselineArtifactsDirectory) --diff $(ArtifactsDirectory) --threshold 2$(Percent) --xml $(XMLResults)</PostCommands>
|
||||||
<Timeout>4:00</Timeout>
|
<Timeout>4:00</Timeout>
|
||||||
</HelixWorkItem>
|
</HelixWorkItem>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
|
@ -1,8 +1,9 @@
|
||||||
Param(
|
Param(
|
||||||
[string] $SourceDirectory=$env:BUILD_SOURCESDIRECTORY,
|
[string] $SourceDirectory=$env:BUILD_SOURCESDIRECTORY,
|
||||||
[string] $CoreRootDirectory,
|
[string] $CoreRootDirectory,
|
||||||
|
[string] $BaselineCoreRootDirectory,
|
||||||
[string] $Architecture="x64",
|
[string] $Architecture="x64",
|
||||||
[string] $Framework="netcoreapp3.0",
|
[string] $Framework="netcoreapp5.0",
|
||||||
[string] $CompilationMode="Tiered",
|
[string] $CompilationMode="Tiered",
|
||||||
[string] $Repository=$env:BUILD_REPOSITORY_NAME,
|
[string] $Repository=$env:BUILD_REPOSITORY_NAME,
|
||||||
[string] $Branch=$env:BUILD_SOURCEBRANCH,
|
[string] $Branch=$env:BUILD_SOURCEBRANCH,
|
||||||
|
@ -12,11 +13,13 @@ Param(
|
||||||
[string] $Csproj="src\benchmarks\micro\MicroBenchmarks.csproj",
|
[string] $Csproj="src\benchmarks\micro\MicroBenchmarks.csproj",
|
||||||
[string] $Kind="micro",
|
[string] $Kind="micro",
|
||||||
[switch] $Internal,
|
[switch] $Internal,
|
||||||
|
[switch] $Compare,
|
||||||
[string] $Configurations="CompilationMode=$CompilationMode"
|
[string] $Configurations="CompilationMode=$CompilationMode"
|
||||||
)
|
)
|
||||||
|
|
||||||
$RunFromPerformanceRepo = ($Repository -eq "dotnet/performance")
|
$RunFromPerformanceRepo = ($Repository -eq "dotnet/performance")
|
||||||
$UseCoreRun = ($CoreRootDirectory -ne [string]::Empty)
|
$UseCoreRun = ($CoreRootDirectory -ne [string]::Empty)
|
||||||
|
$UseBaselineCoreRun = ($BaselineCoreRootDirectory -ne [string]::Empty)
|
||||||
|
|
||||||
$PayloadDirectory = (Join-Path $SourceDirectory "Payload")
|
$PayloadDirectory = (Join-Path $SourceDirectory "Payload")
|
||||||
$PerformanceDirectory = (Join-Path $PayloadDirectory "performance")
|
$PerformanceDirectory = (Join-Path $PayloadDirectory "performance")
|
||||||
|
@ -29,11 +32,17 @@ $HelixSourcePrefix = "pr"
|
||||||
$Queue = "Windows.10.Amd64.ClientRS4.DevEx.15.8.Open"
|
$Queue = "Windows.10.Amd64.ClientRS4.DevEx.15.8.Open"
|
||||||
|
|
||||||
if ($Framework.StartsWith("netcoreapp")) {
|
if ($Framework.StartsWith("netcoreapp")) {
|
||||||
$Queue = "Windows.10.Amd64.ClientRS4.Open"
|
$Queue = "Windows.10.Amd64.ClientRS5.Open"
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($Compare) {
|
||||||
|
$Queue = "Windows.10.Amd64.19H1.Tiger.Perf.Open"
|
||||||
|
$PerfLabArguments = ""
|
||||||
|
$ExtraBenchmarkDotNetArguments = ""
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($Internal) {
|
if ($Internal) {
|
||||||
$Queue = "Windows.10.Amd64.ClientRS5.Perf"
|
$Queue = "Windows.10.Amd64.19H1.Tiger.Perf"
|
||||||
$PerfLabArguments = "--upload-to-perflab-container"
|
$PerfLabArguments = "--upload-to-perflab-container"
|
||||||
$ExtraBenchmarkDotNetArguments = ""
|
$ExtraBenchmarkDotNetArguments = ""
|
||||||
$Creator = ""
|
$Creator = ""
|
||||||
|
@ -56,6 +65,10 @@ if ($UseCoreRun) {
|
||||||
$NewCoreRoot = (Join-Path $PayloadDirectory "Core_Root")
|
$NewCoreRoot = (Join-Path $PayloadDirectory "Core_Root")
|
||||||
Move-Item -Path $CoreRootDirectory -Destination $NewCoreRoot
|
Move-Item -Path $CoreRootDirectory -Destination $NewCoreRoot
|
||||||
}
|
}
|
||||||
|
if ($UseBaselineCoreRun) {
|
||||||
|
$NewBaselineCoreRoot = (Join-Path $PayloadDirectory "Baseline_Core_Root")
|
||||||
|
Move-Item -Path $BaselineCoreRootDirectory -Destination $NewBaselineCoreRoot
|
||||||
|
}
|
||||||
|
|
||||||
$DocsDir = (Join-Path $PerformanceDirectory "docs")
|
$DocsDir = (Join-Path $PerformanceDirectory "docs")
|
||||||
robocopy $DocsDir $WorkItemDirectory
|
robocopy $DocsDir $WorkItemDirectory
|
||||||
|
@ -80,7 +93,9 @@ Write-PipelineSetVariable -Name 'TargetCsproj' -Value "$Csproj" -IsMultiJobVaria
|
||||||
Write-PipelineSetVariable -Name 'Kind' -Value "$Kind" -IsMultiJobVariable $false
|
Write-PipelineSetVariable -Name 'Kind' -Value "$Kind" -IsMultiJobVariable $false
|
||||||
Write-PipelineSetVariable -Name 'Architecture' -Value "$Architecture" -IsMultiJobVariable $false
|
Write-PipelineSetVariable -Name 'Architecture' -Value "$Architecture" -IsMultiJobVariable $false
|
||||||
Write-PipelineSetVariable -Name 'UseCoreRun' -Value "$UseCoreRun" -IsMultiJobVariable $false
|
Write-PipelineSetVariable -Name 'UseCoreRun' -Value "$UseCoreRun" -IsMultiJobVariable $false
|
||||||
|
Write-PipelineSetVariable -Name 'UseBaselineCoreRun' -Value "$UseBaselineCoreRun" -IsMultiJobVariable $false
|
||||||
Write-PipelineSetVariable -Name 'RunFromPerfRepo' -Value "$RunFromPerformanceRepo" -IsMultiJobVariable $false
|
Write-PipelineSetVariable -Name 'RunFromPerfRepo' -Value "$RunFromPerformanceRepo" -IsMultiJobVariable $false
|
||||||
|
Write-PipelineSetVariable -Name 'Compare' -Value "$Compare" -IsMultiJobVariable $false
|
||||||
|
|
||||||
# Helix Arguments
|
# Helix Arguments
|
||||||
Write-PipelineSetVariable -Name 'Creator' -Value "$Creator" -IsMultiJobVariable $false
|
Write-PipelineSetVariable -Name 'Creator' -Value "$Creator" -IsMultiJobVariable $false
|
||||||
|
|
|
@ -2,20 +2,23 @@
|
||||||
|
|
||||||
source_directory=$BUILD_SOURCESDIRECTORY
|
source_directory=$BUILD_SOURCESDIRECTORY
|
||||||
core_root_directory=
|
core_root_directory=
|
||||||
|
baseline_core_root_directory=
|
||||||
architecture=x64
|
architecture=x64
|
||||||
framework=netcoreapp3.0
|
framework=netcoreapp5.0
|
||||||
compilation_mode=tiered
|
compilation_mode=tiered
|
||||||
repository=$BUILD_REPOSITORY_NAME
|
repository=$BUILD_REPOSITORY_NAME
|
||||||
branch=$BUILD_SOURCEBRANCH
|
branch=$BUILD_SOURCEBRANCH
|
||||||
commit_sha=$BUILD_SOURCEVERSION
|
commit_sha=$BUILD_SOURCEVERSION
|
||||||
build_number=$BUILD_BUILDNUMBER
|
build_number=$BUILD_BUILDNUMBER
|
||||||
internal=false
|
internal=false
|
||||||
|
compare=false
|
||||||
kind="micro"
|
kind="micro"
|
||||||
run_categories="coreclr corefx"
|
run_categories="coreclr corefx"
|
||||||
csproj="src\benchmarks\micro\MicroBenchmarks.csproj"
|
csproj="src\benchmarks\micro\MicroBenchmarks.csproj"
|
||||||
configurations=
|
configurations=
|
||||||
run_from_perf_repo=false
|
run_from_perf_repo=false
|
||||||
use_core_run=true
|
use_core_run=true
|
||||||
|
use_baseline_core_run=true
|
||||||
|
|
||||||
while (($# > 0)); do
|
while (($# > 0)); do
|
||||||
lowerI="$(echo $1 | awk '{print tolower($0)}')"
|
lowerI="$(echo $1 | awk '{print tolower($0)}')"
|
||||||
|
@ -28,6 +31,10 @@ while (($# > 0)); do
|
||||||
core_root_directory=$2
|
core_root_directory=$2
|
||||||
shift 2
|
shift 2
|
||||||
;;
|
;;
|
||||||
|
--baselinecorerootdirectory)
|
||||||
|
baseline_core_root_directory=$2
|
||||||
|
shift 2
|
||||||
|
;;
|
||||||
--architecture)
|
--architecture)
|
||||||
architecture=$2
|
architecture=$2
|
||||||
shift 2
|
shift 2
|
||||||
|
@ -72,6 +79,10 @@ while (($# > 0)); do
|
||||||
internal=true
|
internal=true
|
||||||
shift 1
|
shift 1
|
||||||
;;
|
;;
|
||||||
|
--compare)
|
||||||
|
compare=true
|
||||||
|
shift 1
|
||||||
|
;;
|
||||||
--configurations)
|
--configurations)
|
||||||
configurations=$2
|
configurations=$2
|
||||||
shift 2
|
shift 2
|
||||||
|
@ -114,6 +125,10 @@ if [ -z "$core_root_directory" ]; then
|
||||||
use_core_run=false
|
use_core_run=false
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
if [ -z "$baseline_core_root_directory" ]; then
|
||||||
|
use_baseline_core_run=false
|
||||||
|
fi
|
||||||
|
|
||||||
payload_directory=$source_directory/Payload
|
payload_directory=$source_directory/Payload
|
||||||
performance_directory=$payload_directory/performance
|
performance_directory=$payload_directory/performance
|
||||||
workitem_directory=$source_directory/workitem
|
workitem_directory=$source_directory/workitem
|
||||||
|
@ -123,6 +138,19 @@ queue=Ubuntu.1804.Amd64.Open
|
||||||
creator=$BUILD_DEFINITIONNAME
|
creator=$BUILD_DEFINITIONNAME
|
||||||
helix_source_prefix="pr"
|
helix_source_prefix="pr"
|
||||||
|
|
||||||
|
if [[ "$compare" == true ]]; then
|
||||||
|
extra_benchmark_dotnet_arguments=
|
||||||
|
perflab_arguments=
|
||||||
|
|
||||||
|
# No open queues for arm64
|
||||||
|
if [[ "$architecture" = "arm64" ]]; then
|
||||||
|
echo "Compare not available for arm64"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
queue=Ubuntu.1804.Amd64.Tiger.Perf.Open
|
||||||
|
fi
|
||||||
|
|
||||||
if [[ "$internal" == true ]]; then
|
if [[ "$internal" == true ]]; then
|
||||||
perflab_arguments="--upload-to-perflab-container"
|
perflab_arguments="--upload-to-perflab-container"
|
||||||
helix_source_prefix="official"
|
helix_source_prefix="official"
|
||||||
|
@ -132,7 +160,7 @@ if [[ "$internal" == true ]]; then
|
||||||
if [[ "$architecture" = "arm64" ]]; then
|
if [[ "$architecture" = "arm64" ]]; then
|
||||||
queue=Ubuntu.1804.Arm64.Perf
|
queue=Ubuntu.1804.Arm64.Perf
|
||||||
else
|
else
|
||||||
queue=Ubuntu.1804.Amd64.Perf
|
queue=Ubuntu.1804.Amd64.Tiger.Perf
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
@ -156,21 +184,33 @@ if [[ "$use_core_run" = true ]]; then
|
||||||
mv $core_root_directory $new_core_root
|
mv $core_root_directory $new_core_root
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
if [[ "$use_baseline_core_run" = true ]]; then
|
||||||
|
new_baseline_core_root=$payload_directory/Baseline_Core_Root
|
||||||
|
mv $baseline_core_root_directory $new_baseline_core_root
|
||||||
|
fi
|
||||||
|
|
||||||
|
ci=true
|
||||||
|
|
||||||
|
_script_dir=$(pwd)/eng/common
|
||||||
|
. "$_script_dir/pipeline-logging-functions.sh"
|
||||||
|
|
||||||
# Make sure all of our variables are available for future steps
|
# Make sure all of our variables are available for future steps
|
||||||
echo "##vso[task.setvariable variable=UseCoreRun]$use_core_run"
|
Write-PipelineSetVariable -name "UseCoreRun" -value "$use_core_run" -is_multi_job_variable false
|
||||||
echo "##vso[task.setvariable variable=Architecture]$architecture"
|
Write-PipelineSetVariable -name "UseBaselineCoreRun" -value "$use_baseline_core_run" -is_multi_job_variable false
|
||||||
echo "##vso[task.setvariable variable=PayloadDirectory]$payload_directory"
|
Write-PipelineSetVariable -name "Architecture" -value "$architecture" -is_multi_job_variable false
|
||||||
echo "##vso[task.setvariable variable=PerformanceDirectory]$performance_directory"
|
Write-PipelineSetVariable -name "PayloadDirectory" -value "$payload_directory" -is_multi_job_variable false
|
||||||
echo "##vso[task.setvariable variable=WorkItemDirectory]$workitem_directory"
|
Write-PipelineSetVariable -name "PerformanceDirectory" -value "$performance_directory" -is_multi_job_variable false
|
||||||
echo "##vso[task.setvariable variable=Queue]$queue"
|
Write-PipelineSetVariable -name "WorkItemDirectory" -value "$workitem_directory" -is_multi_job_variable false
|
||||||
echo "##vso[task.setvariable variable=SetupArguments]$setup_arguments"
|
Write-PipelineSetVariable -name "Queue" -value "$queue" -is_multi_job_variable false
|
||||||
echo "##vso[task.setvariable variable=Python]python3"
|
Write-PipelineSetVariable -name "SetupArguments" -value "$setup_arguments" -is_multi_job_variable false
|
||||||
echo "##vso[task.setvariable variable=PerfLabArguments]$perflab_arguments"
|
Write-PipelineSetVariable -name "Python" -value "$python3" -is_multi_job_variable false
|
||||||
echo "##vso[task.setvariable variable=ExtraBenchmarkDotNetArguments]$extra_benchmark_dotnet_arguments"
|
Write-PipelineSetVariable -name "PerfLabArguments" -value "$perflab_arguments" -is_multi_job_variable false
|
||||||
echo "##vso[task.setvariable variable=BDNCategories]$run_categories"
|
Write-PipelineSetVariable -name "ExtraBenchmarkDotNetArguments" -value "$extra_benchmark_dotnet_arguments" -is_multi_job_variable false
|
||||||
echo "##vso[task.setvariable variable=TargetCsproj]$csproj"
|
Write-PipelineSetVariable -name "BDNCategories" -value "$run_categories" -is_multi_job_variable false
|
||||||
echo "##vso[task.setvariable variable=RunFromPerfRepo]$run_from_perf_repo"
|
Write-PipelineSetVariable -name "TargetCsproj" -value "$csproj" -is_multi_job_variable false
|
||||||
echo "##vso[task.setvariable variable=Creator]$creator"
|
Write-PipelineSetVariable -name "RunFromPerfRepo" -value "$run_from_perf_repo" -is_multi_job_variable false
|
||||||
echo "##vso[task.setvariable variable=HelixSourcePrefix]$helix_source_prefix"
|
Write-PipelineSetVariable -name "Creator" -value "$creator" -is_multi_job_variable false
|
||||||
echo "##vso[task.setvariable variable=Kind]$kind"
|
Write-PipelineSetVariable -name "HelixSourcePrefix" -value "$helix_source_prefix" -is_multi_job_variable false
|
||||||
echo "##vso[task.setvariable variable=_BuildConfig]$architecture.$kind.$framework"
|
Write-PipelineSetVariable -name "Kind" -value "$kind" -is_multi_job_variable false
|
||||||
|
Write-PipelineSetVariable -name "_BuildConfig" -value "$architecture.$kind.$framework" -is_multi_job_variable false
|
||||||
|
Write-PipelineSetVariable -name "Compare" -value "$compare" -is_multi_job_variable false
|
||||||
|
|
|
@ -19,7 +19,17 @@ try {
|
||||||
ExitWithExitCode $exitCode
|
ExitWithExitCode $exitCode
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# For now, only use a dry run.
|
||||||
|
# Ideally we would change darc to enable a quick request that
|
||||||
|
# would check whether the file exists that you can download it,
|
||||||
|
# and that it won't conflict with other files.
|
||||||
|
# https://github.com/dotnet/arcade/issues/3674
|
||||||
|
# Right now we can't remove continue-on-error because we ocassionally will have
|
||||||
|
# dependencies that have no associated builds (e.g. an old dependency).
|
||||||
|
# We need to add an option to baseline specific dependencies away, or add them manually
|
||||||
|
# to the BAR.
|
||||||
darc gather-drop --non-shipping `
|
darc gather-drop --non-shipping `
|
||||||
|
--dry-run `
|
||||||
--continue-on-error `
|
--continue-on-error `
|
||||||
--id $BarBuildId `
|
--id $BarBuildId `
|
||||||
--output-dir $DropLocation `
|
--output-dir $DropLocation `
|
||||||
|
|
|
@ -1,29 +0,0 @@
|
||||||
param (
|
|
||||||
$dotnetsymbolVersion = $null
|
|
||||||
)
|
|
||||||
|
|
||||||
$ErrorActionPreference = "Stop"
|
|
||||||
Set-StrictMode -Version 2.0
|
|
||||||
|
|
||||||
. $PSScriptRoot\..\tools.ps1
|
|
||||||
|
|
||||||
$verbosity = "minimal"
|
|
||||||
|
|
||||||
function Installdotnetsymbol ($dotnetsymbolVersion) {
|
|
||||||
$dotnetsymbolPackageName = "dotnet-symbol"
|
|
||||||
|
|
||||||
$dotnetRoot = InitializeDotNetCli -install:$true
|
|
||||||
$dotnet = "$dotnetRoot\dotnet.exe"
|
|
||||||
$toolList = & "$dotnet" tool list --global
|
|
||||||
|
|
||||||
if (($toolList -like "*$dotnetsymbolPackageName*") -and ($toolList -like "*$dotnetsymbolVersion*")) {
|
|
||||||
Write-Host "dotnet-symbol version $dotnetsymbolVersion is already installed."
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
Write-Host "Installing dotnet-symbol version $dotnetsymbolVersion..."
|
|
||||||
Write-Host "You may need to restart your command window if this is the first dotnet tool you have installed."
|
|
||||||
& "$dotnet" tool install $dotnetsymbolPackageName --version $dotnetsymbolVersion --verbosity $verbosity --global
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
Installdotnetsymbol $dotnetsymbolVersion
|
|
|
@ -1,29 +0,0 @@
|
||||||
param (
|
|
||||||
$sourcelinkCliVersion = $null
|
|
||||||
)
|
|
||||||
|
|
||||||
$ErrorActionPreference = "Stop"
|
|
||||||
Set-StrictMode -Version 2.0
|
|
||||||
|
|
||||||
. $PSScriptRoot\..\tools.ps1
|
|
||||||
|
|
||||||
$verbosity = "minimal"
|
|
||||||
|
|
||||||
function InstallSourcelinkCli ($sourcelinkCliVersion) {
|
|
||||||
$sourcelinkCliPackageName = "sourcelink"
|
|
||||||
|
|
||||||
$dotnetRoot = InitializeDotNetCli -install:$true
|
|
||||||
$dotnet = "$dotnetRoot\dotnet.exe"
|
|
||||||
$toolList = & "$dotnet" tool list --global
|
|
||||||
|
|
||||||
if (($toolList -like "*$sourcelinkCliPackageName*") -and ($toolList -like "*$sourcelinkCliVersion*")) {
|
|
||||||
Write-Host "SourceLink CLI version $sourcelinkCliVersion is already installed."
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
Write-Host "Installing SourceLink CLI version $sourcelinkCliVersion..."
|
|
||||||
Write-Host "You may need to restart your command window if this is the first dotnet tool you have installed."
|
|
||||||
& "$dotnet" tool install $sourcelinkCliPackageName --version $sourcelinkCliVersion --verbosity $verbosity --global
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
InstallSourcelinkCli $sourcelinkCliVersion
|
|
|
@ -1,8 +1,8 @@
|
||||||
param(
|
param(
|
||||||
[Parameter(Mandatory=$true)][string] $InputPath, # Full path to directory where Symbols.NuGet packages to be checked are stored
|
[Parameter(Mandatory=$true)][string] $InputPath, # Full path to directory where Symbols.NuGet packages to be checked are stored
|
||||||
[Parameter(Mandatory=$true)][string] $ExtractPath, # Full path to directory where the packages will be extracted during validation
|
[Parameter(Mandatory=$true)][string] $ExtractPath, # Full path to directory where the packages will be extracted during validation
|
||||||
[Parameter(Mandatory=$true)][string] $GHRepoName, # GitHub name of the repo including the Org. E.g., dotnet/arcade
|
[Parameter(Mandatory=$false)][string] $GHRepoName, # GitHub name of the repo including the Org. E.g., dotnet/arcade
|
||||||
[Parameter(Mandatory=$true)][string] $GHCommit, # GitHub commit SHA used to build the packages
|
[Parameter(Mandatory=$false)][string] $GHCommit, # GitHub commit SHA used to build the packages
|
||||||
[Parameter(Mandatory=$true)][string] $SourcelinkCliVersion # Version of SourceLink CLI to use
|
[Parameter(Mandatory=$true)][string] $SourcelinkCliVersion # Version of SourceLink CLI to use
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -13,6 +13,12 @@ param(
|
||||||
# all files present in the repo at a specific commit point.
|
# all files present in the repo at a specific commit point.
|
||||||
$global:RepoFiles = @{}
|
$global:RepoFiles = @{}
|
||||||
|
|
||||||
|
# Maximum number of jobs to run in parallel
|
||||||
|
$MaxParallelJobs = 6
|
||||||
|
|
||||||
|
# Wait time between check for system load
|
||||||
|
$SecondsBetweenLoadChecks = 10
|
||||||
|
|
||||||
$ValidatePackage = {
|
$ValidatePackage = {
|
||||||
param(
|
param(
|
||||||
[string] $PackagePath # Full path to a Symbols.NuGet package
|
[string] $PackagePath # Full path to a Symbols.NuGet package
|
||||||
|
@ -22,8 +28,8 @@ $ValidatePackage = {
|
||||||
|
|
||||||
# Ensure input file exist
|
# Ensure input file exist
|
||||||
if (!(Test-Path $PackagePath)) {
|
if (!(Test-Path $PackagePath)) {
|
||||||
Write-PipelineTaskError "Input file does not exist: $PackagePath"
|
Write-Host "Input file does not exist: $PackagePath"
|
||||||
ExitWithExitCode 1
|
return 1
|
||||||
}
|
}
|
||||||
|
|
||||||
# Extensions for which we'll look for SourceLink information
|
# Extensions for which we'll look for SourceLink information
|
||||||
|
@ -38,7 +44,7 @@ $ValidatePackage = {
|
||||||
|
|
||||||
Add-Type -AssemblyName System.IO.Compression.FileSystem
|
Add-Type -AssemblyName System.IO.Compression.FileSystem
|
||||||
|
|
||||||
[System.IO.Directory]::CreateDirectory($ExtractPath);
|
[System.IO.Directory]::CreateDirectory($ExtractPath) | Out-Null
|
||||||
|
|
||||||
try {
|
try {
|
||||||
$zip = [System.IO.Compression.ZipFile]::OpenRead($PackagePath)
|
$zip = [System.IO.Compression.ZipFile]::OpenRead($PackagePath)
|
||||||
|
@ -138,16 +144,18 @@ $ValidatePackage = {
|
||||||
|
|
||||||
if ($FailedFiles -eq 0) {
|
if ($FailedFiles -eq 0) {
|
||||||
Write-Host "Passed."
|
Write-Host "Passed."
|
||||||
|
return 0
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
Write-PipelineTaskError "$PackagePath has broken SourceLink links."
|
Write-Host "$PackagePath has broken SourceLink links."
|
||||||
|
return 1
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function ValidateSourceLinkLinks {
|
function ValidateSourceLinkLinks {
|
||||||
if (!($GHRepoName -Match "^[^\s\/]+/[^\s\/]+$")) {
|
if ($GHRepoName -ne "" -and !($GHRepoName -Match "^[^\s\/]+/[^\s\/]+$")) {
|
||||||
if (!($GHRepoName -Match "^[^\s-]+-[^\s]+$")) {
|
if (!($GHRepoName -Match "^[^\s-]+-[^\s]+$")) {
|
||||||
Write-PipelineTaskError "GHRepoName should be in the format <org>/<repo> or <org>-<repo>"
|
Write-PipelineTaskError "GHRepoName should be in the format <org>/<repo> or <org>-<repo>. '$GHRepoName'"
|
||||||
ExitWithExitCode 1
|
ExitWithExitCode 1
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
@ -155,30 +163,33 @@ function ValidateSourceLinkLinks {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!($GHCommit -Match "^[0-9a-fA-F]{40}$")) {
|
if ($GHCommit -ne "" -and !($GHCommit -Match "^[0-9a-fA-F]{40}$")) {
|
||||||
Write-PipelineTaskError "GHCommit should be a 40 chars hexadecimal string"
|
Write-PipelineTaskError "GHCommit should be a 40 chars hexadecimal string. '$GHCommit'"
|
||||||
ExitWithExitCode 1
|
ExitWithExitCode 1
|
||||||
}
|
}
|
||||||
|
|
||||||
$RepoTreeURL = -Join("http://api.github.com/repos/", $GHRepoName, "/git/trees/", $GHCommit, "?recursive=1")
|
if ($GHRepoName -ne "" -and $GHCommit -ne "") {
|
||||||
$CodeExtensions = @(".cs", ".vb", ".fs", ".fsi", ".fsx", ".fsscript")
|
$RepoTreeURL = -Join("http://api.github.com/repos/", $GHRepoName, "/git/trees/", $GHCommit, "?recursive=1")
|
||||||
|
$CodeExtensions = @(".cs", ".vb", ".fs", ".fsi", ".fsx", ".fsscript")
|
||||||
|
|
||||||
try {
|
try {
|
||||||
# Retrieve the list of files in the repo at that particular commit point and store them in the RepoFiles hash
|
# Retrieve the list of files in the repo at that particular commit point and store them in the RepoFiles hash
|
||||||
$Data = Invoke-WebRequest $RepoTreeURL -UseBasicParsing | ConvertFrom-Json | Select-Object -ExpandProperty tree
|
$Data = Invoke-WebRequest $RepoTreeURL -UseBasicParsing | ConvertFrom-Json | Select-Object -ExpandProperty tree
|
||||||
|
|
||||||
foreach ($file in $Data) {
|
foreach ($file in $Data) {
|
||||||
$Extension = [System.IO.Path]::GetExtension($file.path)
|
$Extension = [System.IO.Path]::GetExtension($file.path)
|
||||||
|
|
||||||
if ($CodeExtensions.Contains($Extension)) {
|
if ($CodeExtensions.Contains($Extension)) {
|
||||||
$RepoFiles[$file.path] = 1
|
$RepoFiles[$file.path] = 1
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
catch {
|
||||||
|
Write-Host "Problems downloading the list of files from the repo. Url used: $RepoTreeURL . Execution will proceed without caching."
|
||||||
|
}
|
||||||
}
|
}
|
||||||
catch {
|
elseif ($GHRepoName -ne "" -or $GHCommit -ne "") {
|
||||||
Write-PipelineTaskError "Problems downloading the list of files from the repo. Url used: $RepoTreeURL"
|
Write-Host "For using the http caching mechanism both GHRepoName and GHCommit should be informed."
|
||||||
Write-Host $_
|
|
||||||
ExitWithExitCode 1
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (Test-Path $ExtractPath) {
|
if (Test-Path $ExtractPath) {
|
||||||
|
@ -186,14 +197,33 @@ function ValidateSourceLinkLinks {
|
||||||
}
|
}
|
||||||
|
|
||||||
# Process each NuGet package in parallel
|
# Process each NuGet package in parallel
|
||||||
$Jobs = @()
|
|
||||||
Get-ChildItem "$InputPath\*.symbols.nupkg" |
|
Get-ChildItem "$InputPath\*.symbols.nupkg" |
|
||||||
ForEach-Object {
|
ForEach-Object {
|
||||||
$Jobs += Start-Job -ScriptBlock $ValidatePackage -ArgumentList $_.FullName
|
Start-Job -ScriptBlock $ValidatePackage -ArgumentList $_.FullName | Out-Null
|
||||||
|
$NumJobs = @(Get-Job -State 'Running').Count
|
||||||
|
|
||||||
|
while ($NumJobs -ge $MaxParallelJobs) {
|
||||||
|
Write-Host "There are $NumJobs validation jobs running right now. Waiting $SecondsBetweenLoadChecks seconds to check again."
|
||||||
|
sleep $SecondsBetweenLoadChecks
|
||||||
|
$NumJobs = @(Get-Job -State 'Running').Count
|
||||||
|
}
|
||||||
|
|
||||||
|
foreach ($Job in @(Get-Job -State 'Completed')) {
|
||||||
|
Receive-Job -Id $Job.Id
|
||||||
|
Remove-Job -Id $Job.Id
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
foreach ($Job in $Jobs) {
|
$ValidationFailures = 0
|
||||||
Wait-Job -Id $Job.Id | Receive-Job
|
foreach ($Job in @(Get-Job)) {
|
||||||
|
$jobResult = Wait-Job -Id $Job.Id | Receive-Job
|
||||||
|
if ($jobResult -ne "0") {
|
||||||
|
$ValidationFailures++
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if ($ValidationFailures -gt 0) {
|
||||||
|
Write-PipelineTaskError " $ValidationFailures package(s) failed validation."
|
||||||
|
ExitWithExitCode 1
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -37,10 +37,10 @@ function FirstMatchingSymbolDescriptionOrDefault {
|
||||||
# DWARF file for a .dylib
|
# DWARF file for a .dylib
|
||||||
$DylibDwarf = $SymbolPath.Replace($Extension, ".dylib.dwarf")
|
$DylibDwarf = $SymbolPath.Replace($Extension, ".dylib.dwarf")
|
||||||
|
|
||||||
$dotnetsymbolExe = "$env:USERPROFILE\.dotnet\tools"
|
$dotnetSymbolExe = "$env:USERPROFILE\.dotnet\tools"
|
||||||
$dotnetsymbolExe = Resolve-Path "$dotnetsymbolExe\dotnet-symbol.exe"
|
$dotnetSymbolExe = Resolve-Path "$dotnetSymbolExe\dotnet-symbol.exe"
|
||||||
|
|
||||||
& $dotnetsymbolExe --symbols --modules --windows-pdbs $TargetServerParam $FullPath -o $SymbolsPath | Out-Null
|
& $dotnetSymbolExe --symbols --modules --windows-pdbs $TargetServerParam $FullPath -o $SymbolsPath | Out-Null
|
||||||
|
|
||||||
if (Test-Path $PdbPath) {
|
if (Test-Path $PdbPath) {
|
||||||
return "PDB"
|
return "PDB"
|
||||||
|
@ -159,25 +159,25 @@ function CheckSymbolsAvailable {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function Installdotnetsymbol {
|
function InstallDotnetSymbol {
|
||||||
$dotnetsymbolPackageName = "dotnet-symbol"
|
$dotnetSymbolPackageName = "dotnet-symbol"
|
||||||
|
|
||||||
$dotnetRoot = InitializeDotNetCli -install:$true
|
$dotnetRoot = InitializeDotNetCli -install:$true
|
||||||
$dotnet = "$dotnetRoot\dotnet.exe"
|
$dotnet = "$dotnetRoot\dotnet.exe"
|
||||||
$toolList = & "$dotnet" tool list --global
|
$toolList = & "$dotnet" tool list --global
|
||||||
|
|
||||||
if (($toolList -like "*$dotnetsymbolPackageName*") -and ($toolList -like "*$dotnetsymbolVersion*")) {
|
if (($toolList -like "*$dotnetSymbolPackageName*") -and ($toolList -like "*$dotnetSymbolVersion*")) {
|
||||||
Write-Host "dotnet-symbol version $dotnetsymbolVersion is already installed."
|
Write-Host "dotnet-symbol version $dotnetSymbolVersion is already installed."
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
Write-Host "Installing dotnet-symbol version $dotnetsymbolVersion..."
|
Write-Host "Installing dotnet-symbol version $dotnetSymbolVersion..."
|
||||||
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."
|
||||||
& "$dotnet" tool install $dotnetsymbolPackageName --version $dotnetsymbolVersion --verbosity "minimal" --global
|
& "$dotnet" tool install $dotnetSymbolPackageName --version $dotnetSymbolVersion --verbosity "minimal" --global
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
Installdotnetsymbol
|
InstallDotnetSymbol
|
||||||
|
|
||||||
CheckSymbolsAvailable
|
CheckSymbolsAvailable
|
||||||
}
|
}
|
||||||
|
|
|
@ -45,6 +45,7 @@ if ($GuardianPackageName) {
|
||||||
$guardianCliLocation = $GuardianCliLocation
|
$guardianCliLocation = $GuardianCliLocation
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$workingDirectory = (Split-Path $SourceDirectory -Parent)
|
||||||
$ValidPath = Test-Path $guardianCliLocation
|
$ValidPath = Test-Path $guardianCliLocation
|
||||||
|
|
||||||
if ($ValidPath -eq $False)
|
if ($ValidPath -eq $False)
|
||||||
|
@ -53,13 +54,13 @@ if ($ValidPath -eq $False)
|
||||||
exit 1
|
exit 1
|
||||||
}
|
}
|
||||||
|
|
||||||
& $(Join-Path $PSScriptRoot "init-sdl.ps1") -GuardianCliLocation $guardianCliLocation -Repository $RepoName -BranchName $BranchName -WorkingDirectory $ArtifactsDirectory -AzureDevOpsAccessToken $AzureDevOpsAccessToken -GuardianLoggerLevel $GuardianLoggerLevel
|
& $(Join-Path $PSScriptRoot "init-sdl.ps1") -GuardianCliLocation $guardianCliLocation -Repository $RepoName -BranchName $BranchName -WorkingDirectory $workingDirectory -AzureDevOpsAccessToken $AzureDevOpsAccessToken -GuardianLoggerLevel $GuardianLoggerLevel
|
||||||
$gdnFolder = Join-Path $ArtifactsDirectory ".gdn"
|
$gdnFolder = Join-Path $workingDirectory ".gdn"
|
||||||
|
|
||||||
if ($TsaOnboard) {
|
if ($TsaOnboard) {
|
||||||
if ($TsaCodebaseName -and $TsaNotificationEmail -and $TsaCodebaseAdmin -and $TsaBugAreaPath) {
|
if ($TsaCodebaseName -and $TsaNotificationEmail -and $TsaCodebaseAdmin -and $TsaBugAreaPath) {
|
||||||
Write-Host "$guardianCliLocation tsa-onboard --codebase-name `"$TsaCodebaseName`" --notification-alias `"$TsaNotificationEmail`" --codebase-admin `"$TsaCodebaseAdmin`" --instance-url `"$TsaInstanceUrl`" --project-name `"$TsaProjectName`" --area-path `"$TsaBugAreaPath`" --iteration-path `"$TsaIterationPath`" --working-directory $ArtifactsDirectory --logger-level $GuardianLoggerLevel"
|
Write-Host "$guardianCliLocation tsa-onboard --codebase-name `"$TsaCodebaseName`" --notification-alias `"$TsaNotificationEmail`" --codebase-admin `"$TsaCodebaseAdmin`" --instance-url `"$TsaInstanceUrl`" --project-name `"$TsaProjectName`" --area-path `"$TsaBugAreaPath`" --iteration-path `"$TsaIterationPath`" --working-directory $workingDirectory --logger-level $GuardianLoggerLevel"
|
||||||
& $guardianCliLocation tsa-onboard --codebase-name "$TsaCodebaseName" --notification-alias "$TsaNotificationEmail" --codebase-admin "$TsaCodebaseAdmin" --instance-url "$TsaInstanceUrl" --project-name "$TsaProjectName" --area-path "$TsaBugAreaPath" --iteration-path "$TsaIterationPath" --working-directory $ArtifactsDirectory --logger-level $GuardianLoggerLevel
|
& $guardianCliLocation tsa-onboard --codebase-name "$TsaCodebaseName" --notification-alias "$TsaNotificationEmail" --codebase-admin "$TsaCodebaseAdmin" --instance-url "$TsaInstanceUrl" --project-name "$TsaProjectName" --area-path "$TsaBugAreaPath" --iteration-path "$TsaIterationPath" --working-directory $workingDirectory --logger-level $GuardianLoggerLevel
|
||||||
if ($LASTEXITCODE -ne 0) {
|
if ($LASTEXITCODE -ne 0) {
|
||||||
Write-Host "Guardian tsa-onboard failed with exit code $LASTEXITCODE."
|
Write-Host "Guardian tsa-onboard failed with exit code $LASTEXITCODE."
|
||||||
exit $LASTEXITCODE
|
exit $LASTEXITCODE
|
||||||
|
@ -71,10 +72,10 @@ if ($TsaOnboard) {
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($ArtifactToolsList -and $ArtifactToolsList.Count -gt 0) {
|
if ($ArtifactToolsList -and $ArtifactToolsList.Count -gt 0) {
|
||||||
& $(Join-Path $PSScriptRoot "run-sdl.ps1") -GuardianCliLocation $guardianCliLocation -WorkingDirectory $ArtifactsDirectory -TargetDirectory $ArtifactsDirectory -GdnFolder $gdnFolder -ToolsList $ArtifactToolsList -AzureDevOpsAccessToken $AzureDevOpsAccessToken -UpdateBaseline $UpdateBaseline -GuardianLoggerLevel $GuardianLoggerLevel -CrScanAdditionalRunConfigParams $CrScanAdditionalRunConfigParams -PoliCheckAdditionalRunConfigParams $PoliCheckAdditionalRunConfigParams
|
& $(Join-Path $PSScriptRoot "run-sdl.ps1") -GuardianCliLocation $guardianCliLocation -WorkingDirectory $workingDirectory -TargetDirectory $ArtifactsDirectory -GdnFolder $gdnFolder -ToolsList $ArtifactToolsList -AzureDevOpsAccessToken $AzureDevOpsAccessToken -UpdateBaseline $UpdateBaseline -GuardianLoggerLevel $GuardianLoggerLevel -CrScanAdditionalRunConfigParams $CrScanAdditionalRunConfigParams -PoliCheckAdditionalRunConfigParams $PoliCheckAdditionalRunConfigParams
|
||||||
}
|
}
|
||||||
if ($SourceToolsList -and $SourceToolsList.Count -gt 0) {
|
if ($SourceToolsList -and $SourceToolsList.Count -gt 0) {
|
||||||
& $(Join-Path $PSScriptRoot "run-sdl.ps1") -GuardianCliLocation $guardianCliLocation -WorkingDirectory $ArtifactsDirectory -TargetDirectory $SourceDirectory -GdnFolder $gdnFolder -ToolsList $SourceToolsList -AzureDevOpsAccessToken $AzureDevOpsAccessToken -UpdateBaseline $UpdateBaseline -GuardianLoggerLevel $GuardianLoggerLevel -CrScanAdditionalRunConfigParams $CrScanAdditionalRunConfigParams -PoliCheckAdditionalRunConfigParams $PoliCheckAdditionalRunConfigParams
|
& $(Join-Path $PSScriptRoot "run-sdl.ps1") -GuardianCliLocation $guardianCliLocation -WorkingDirectory $workingDirectory -TargetDirectory $SourceDirectory -GdnFolder $gdnFolder -ToolsList $SourceToolsList -AzureDevOpsAccessToken $AzureDevOpsAccessToken -UpdateBaseline $UpdateBaseline -GuardianLoggerLevel $GuardianLoggerLevel -CrScanAdditionalRunConfigParams $CrScanAdditionalRunConfigParams -PoliCheckAdditionalRunConfigParams $PoliCheckAdditionalRunConfigParams
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($UpdateBaseline) {
|
if ($UpdateBaseline) {
|
||||||
|
@ -86,8 +87,8 @@ if ($TsaPublish) {
|
||||||
if (-not $TsaRepositoryName) {
|
if (-not $TsaRepositoryName) {
|
||||||
$TsaRepositoryName = "$($Repository)-$($BranchName)"
|
$TsaRepositoryName = "$($Repository)-$($BranchName)"
|
||||||
}
|
}
|
||||||
Write-Host "$guardianCliLocation tsa-publish --all-tools --repository-name `"$TsaRepositoryName`" --branch-name `"$TsaBranchName`" --build-number `"$BuildNumber`" --codebase-name `"$TsaCodebaseName`" --notification-alias `"$TsaNotificationEmail`" --codebase-admin `"$TsaCodebaseAdmin`" --instance-url `"$TsaInstanceUrl`" --project-name `"$TsaProjectName`" --area-path `"$TsaBugAreaPath`" --iteration-path `"$TsaIterationPath`" --working-directory $SourceDirectory --logger-level $GuardianLoggerLevel"
|
Write-Host "$guardianCliLocation tsa-publish --all-tools --repository-name `"$TsaRepositoryName`" --branch-name `"$TsaBranchName`" --build-number `"$BuildNumber`" --codebase-name `"$TsaCodebaseName`" --notification-alias `"$TsaNotificationEmail`" --codebase-admin `"$TsaCodebaseAdmin`" --instance-url `"$TsaInstanceUrl`" --project-name `"$TsaProjectName`" --area-path `"$TsaBugAreaPath`" --iteration-path `"$TsaIterationPath`" --working-directory $workingDirectory --logger-level $GuardianLoggerLevel"
|
||||||
& $guardianCliLocation tsa-publish --all-tools --repository-name "$TsaRepositoryName" --branch-name "$TsaBranchName" --build-number "$BuildNumber" --codebase-name "$TsaCodebaseName" --notification-alias "$TsaNotificationEmail" --codebase-admin "$TsaCodebaseAdmin" --instance-url "$TsaInstanceUrl" --project-name "$TsaProjectName" --area-path "$TsaBugAreaPath" --iteration-path "$TsaIterationPath" --working-directory $ArtifactsDirectory --logger-level $GuardianLoggerLevel
|
& $guardianCliLocation tsa-publish --all-tools --repository-name "$TsaRepositoryName" --branch-name "$TsaBranchName" --build-number "$BuildNumber" --onboard $True --codebase-name "$TsaCodebaseName" --notification-alias "$TsaNotificationEmail" --codebase-admin "$TsaCodebaseAdmin" --instance-url "$TsaInstanceUrl" --project-name "$TsaProjectName" --area-path "$TsaBugAreaPath" --iteration-path "$TsaIterationPath" --working-directory $workingDirectory --logger-level $GuardianLoggerLevel
|
||||||
if ($LASTEXITCODE -ne 0) {
|
if ($LASTEXITCODE -ne 0) {
|
||||||
Write-Host "Guardian tsa-publish failed with exit code $LASTEXITCODE."
|
Write-Host "Guardian tsa-publish failed with exit code $LASTEXITCODE."
|
||||||
exit $LASTEXITCODE
|
exit $LASTEXITCODE
|
||||||
|
|
|
@ -11,6 +11,9 @@ $ErrorActionPreference = "Stop"
|
||||||
Set-StrictMode -Version 2.0
|
Set-StrictMode -Version 2.0
|
||||||
$LASTEXITCODE = 0
|
$LASTEXITCODE = 0
|
||||||
|
|
||||||
|
# Don't display the console progress UI - it's a huge perf hit
|
||||||
|
$ProgressPreference = 'SilentlyContinue'
|
||||||
|
|
||||||
# Construct basic auth from AzDO access token; construct URI to the repository's gdn folder stored in that repository; construct location of zip file
|
# Construct basic auth from AzDO access token; construct URI to the repository's gdn folder stored in that repository; construct location of zip file
|
||||||
$encodedPat = [Convert]::ToBase64String([System.Text.Encoding]::ASCII.GetBytes(":$AzureDevOpsAccessToken"))
|
$encodedPat = [Convert]::ToBase64String([System.Text.Encoding]::ASCII.GetBytes(":$AzureDevOpsAccessToken"))
|
||||||
$escapedRepository = [Uri]::EscapeDataString("/$Repository/$BranchName/.gdn")
|
$escapedRepository = [Uri]::EscapeDataString("/$Repository/$BranchName/.gdn")
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<packages>
|
<packages>
|
||||||
<package id="Microsoft.Guardian.Cli" version="0.6.0"/>
|
<package id="Microsoft.Guardian.Cli" version="0.7.2"/>
|
||||||
</packages>
|
</packages>
|
||||||
|
|
|
@ -25,43 +25,35 @@ if ($ValidPath -eq $False)
|
||||||
exit 1
|
exit 1
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$configParam = @("--config")
|
||||||
|
|
||||||
foreach ($tool in $ToolsList) {
|
foreach ($tool in $ToolsList) {
|
||||||
$gdnConfigFile = Join-Path $gdnConfigPath "$tool-configure.gdnconfig"
|
$gdnConfigFile = Join-Path $gdnConfigPath "$tool-configure.gdnconfig"
|
||||||
$config = $False
|
|
||||||
Write-Host $tool
|
Write-Host $tool
|
||||||
# We have to manually configure tools that run on source to look at the source directory only
|
# We have to manually configure tools that run on source to look at the source directory only
|
||||||
if ($tool -eq "credscan") {
|
if ($tool -eq "credscan") {
|
||||||
Write-Host "$GuardianCliLocation configure --working-directory $WorkingDirectory --tool $tool --output-path $gdnConfigFile --logger-level $GuardianLoggerLevel --noninteractive --force --args `" TargetDirectory : $TargetDirectory `" $(If ($CrScanAdditionalRunConfigParams) {$CrScanAdditionalRunConfigParams})"
|
Write-Host "$GuardianCliLocation configure --working-directory $WorkingDirectory --tool $tool --output-path $gdnConfigFile --logger-level $GuardianLoggerLevel --noninteractive --force --args `" TargetDirectory < $TargetDirectory `" `" OutputType < pre `" $(If ($CrScanAdditionalRunConfigParams) {$CrScanAdditionalRunConfigParams})"
|
||||||
& $GuardianCliLocation configure --working-directory $WorkingDirectory --tool $tool --output-path $gdnConfigFile --logger-level $GuardianLoggerLevel --noninteractive --force --args " TargetDirectory : $TargetDirectory " $(If ($CrScanAdditionalRunConfigParams) {$CrScanAdditionalRunConfigParams})
|
& $GuardianCliLocation configure --working-directory $WorkingDirectory --tool $tool --output-path $gdnConfigFile --logger-level $GuardianLoggerLevel --noninteractive --force --args " TargetDirectory < $TargetDirectory " "OutputType < pre" $(If ($CrScanAdditionalRunConfigParams) {$CrScanAdditionalRunConfigParams})
|
||||||
if ($LASTEXITCODE -ne 0) {
|
if ($LASTEXITCODE -ne 0) {
|
||||||
Write-Host "Guardian configure for $tool failed with exit code $LASTEXITCODE."
|
Write-Host "Guardian configure for $tool failed with exit code $LASTEXITCODE."
|
||||||
exit $LASTEXITCODE
|
exit $LASTEXITCODE
|
||||||
}
|
}
|
||||||
$config = $True
|
|
||||||
}
|
}
|
||||||
if ($tool -eq "policheck") {
|
if ($tool -eq "policheck") {
|
||||||
Write-Host "$GuardianCliLocation configure --working-directory $WorkingDirectory --tool $tool --output-path $gdnConfigFile --logger-level $GuardianLoggerLevel --noninteractive --force --args `" Target : $TargetDirectory `" $(If ($PoliCheckAdditionalRunConfigParams) {$PoliCheckAdditionalRunConfigParams})"
|
Write-Host "$GuardianCliLocation configure --working-directory $WorkingDirectory --tool $tool --output-path $gdnConfigFile --logger-level $GuardianLoggerLevel --noninteractive --force --args `" Target < $TargetDirectory `" $(If ($PoliCheckAdditionalRunConfigParams) {$PoliCheckAdditionalRunConfigParams})"
|
||||||
& $GuardianCliLocation configure --working-directory $WorkingDirectory --tool $tool --output-path $gdnConfigFile --logger-level $GuardianLoggerLevel --noninteractive --force --args " Target : $TargetDirectory " $(If ($PoliCheckAdditionalRunConfigParams) {$PoliCheckAdditionalRunConfigParams})
|
& $GuardianCliLocation configure --working-directory $WorkingDirectory --tool $tool --output-path $gdnConfigFile --logger-level $GuardianLoggerLevel --noninteractive --force --args " Target < $TargetDirectory " $(If ($PoliCheckAdditionalRunConfigParams) {$PoliCheckAdditionalRunConfigParams})
|
||||||
if ($LASTEXITCODE -ne 0) {
|
if ($LASTEXITCODE -ne 0) {
|
||||||
Write-Host "Guardian configure for $tool failed with exit code $LASTEXITCODE."
|
Write-Host "Guardian configure for $tool failed with exit code $LASTEXITCODE."
|
||||||
exit $LASTEXITCODE
|
exit $LASTEXITCODE
|
||||||
}
|
}
|
||||||
$config = $True
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Write-Host "$GuardianCliLocation run --working-directory $WorkingDirectory --tool $tool --baseline mainbaseline --update-baseline $UpdateBaseline --logger-level $GuardianLoggerLevel --config $gdnConfigFile $config"
|
$configParam+=$gdnConfigFile
|
||||||
if ($config) {
|
|
||||||
& $GuardianCliLocation run --working-directory $WorkingDirectory --tool $tool --baseline mainbaseline --update-baseline $UpdateBaseline --logger-level $GuardianLoggerLevel --config $gdnConfigFile
|
|
||||||
if ($LASTEXITCODE -ne 0) {
|
|
||||||
Write-Host "Guardian run for $tool using $gdnConfigFile failed with exit code $LASTEXITCODE."
|
|
||||||
exit $LASTEXITCODE
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
& $GuardianCliLocation run --working-directory $WorkingDirectory --tool $tool --baseline mainbaseline --update-baseline $UpdateBaseline --logger-level $GuardianLoggerLevel
|
|
||||||
if ($LASTEXITCODE -ne 0) {
|
|
||||||
Write-Host "Guardian run for $tool failed with exit code $LASTEXITCODE."
|
|
||||||
exit $LASTEXITCODE
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Write-Host "$GuardianCliLocation run --working-directory $WorkingDirectory --baseline mainbaseline --update-baseline $UpdateBaseline --logger-level $GuardianLoggerLevel $configParam"
|
||||||
|
& $GuardianCliLocation run --working-directory $WorkingDirectory --tool $tool --baseline mainbaseline --update-baseline $UpdateBaseline --logger-level $GuardianLoggerLevel $configParam
|
||||||
|
if ($LASTEXITCODE -ne 0) {
|
||||||
|
Write-Host "Guardian run for $ToolsList using $configParam failed with exit code $LASTEXITCODE."
|
||||||
|
exit $LASTEXITCODE
|
||||||
|
}
|
||||||
|
|
|
@ -1,7 +1,10 @@
|
||||||
parameters:
|
parameters:
|
||||||
overrideParameters: '' # Optional: to override values for parameters.
|
overrideParameters: '' # Optional: to override values for parameters.
|
||||||
additionalParameters: '' # Optional: parameters that need user specific values eg: '-SourceToolsList @("abc","def") -ArtifactToolsList @("ghi","jkl")'
|
additionalParameters: '' # Optional: parameters that need user specific values eg: '-SourceToolsList @("abc","def") -ArtifactToolsList @("ghi","jkl")'
|
||||||
continueOnError: false # optional: determines whether to continue the build if the step errors;
|
# There is some sort of bug (has been reported) in Azure DevOps where if this parameter is named
|
||||||
|
# 'continueOnError', the parameter value is not correctly picked up.
|
||||||
|
# This can also be remedied by the caller (post-build.yml) if it does not use a nested parameter
|
||||||
|
sdlContinueOnError: false # optional: determines whether to continue the build if the step errors;
|
||||||
dependsOn: '' # Optional: dependencies of the job
|
dependsOn: '' # Optional: dependencies of the job
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
|
@ -10,6 +13,8 @@ jobs:
|
||||||
displayName: Run SDL tool
|
displayName: Run SDL tool
|
||||||
variables:
|
variables:
|
||||||
- group: DotNet-VSTS-Bot
|
- group: DotNet-VSTS-Bot
|
||||||
|
pool:
|
||||||
|
name: Hosted VS2017
|
||||||
steps:
|
steps:
|
||||||
- checkout: self
|
- checkout: self
|
||||||
clean: true
|
clean: true
|
||||||
|
@ -24,12 +29,12 @@ jobs:
|
||||||
-InputPath $(Build.SourcesDirectory)\artifacts\BlobArtifacts
|
-InputPath $(Build.SourcesDirectory)\artifacts\BlobArtifacts
|
||||||
-ExtractPath $(Build.SourcesDirectory)\artifacts\BlobArtifacts
|
-ExtractPath $(Build.SourcesDirectory)\artifacts\BlobArtifacts
|
||||||
displayName: Extract Blob Artifacts
|
displayName: Extract Blob Artifacts
|
||||||
continueOnError: ${{ parameters.continueOnError }}
|
continueOnError: ${{ parameters.sdlContinueOnError }}
|
||||||
- powershell: eng/common/sdl/extract-artifact-packages.ps1
|
- powershell: eng/common/sdl/extract-artifact-packages.ps1
|
||||||
-InputPath $(Build.SourcesDirectory)\artifacts\PackageArtifacts
|
-InputPath $(Build.SourcesDirectory)\artifacts\PackageArtifacts
|
||||||
-ExtractPath $(Build.SourcesDirectory)\artifacts\PackageArtifacts
|
-ExtractPath $(Build.SourcesDirectory)\artifacts\PackageArtifacts
|
||||||
displayName: Extract Package Artifacts
|
displayName: Extract Package Artifacts
|
||||||
continueOnError: ${{ parameters.continueOnError }}
|
continueOnError: ${{ parameters.sdlContinueOnError }}
|
||||||
- task: NuGetToolInstaller@1
|
- task: NuGetToolInstaller@1
|
||||||
displayName: 'Install NuGet.exe'
|
displayName: 'Install NuGet.exe'
|
||||||
- task: NuGetCommand@2
|
- task: NuGetCommand@2
|
||||||
|
@ -43,12 +48,12 @@ jobs:
|
||||||
- ${{ if ne(parameters.overrideParameters, '') }}:
|
- ${{ if ne(parameters.overrideParameters, '') }}:
|
||||||
- powershell: eng/common/sdl/execute-all-sdl-tools.ps1 ${{ parameters.overrideParameters }}
|
- powershell: eng/common/sdl/execute-all-sdl-tools.ps1 ${{ parameters.overrideParameters }}
|
||||||
displayName: Execute SDL
|
displayName: Execute SDL
|
||||||
continueOnError: ${{ parameters.continueOnError }}
|
continueOnError: ${{ parameters.sdlContinueOnError }}
|
||||||
- ${{ if eq(parameters.overrideParameters, '') }}:
|
- ${{ if eq(parameters.overrideParameters, '') }}:
|
||||||
- powershell: eng/common/sdl/execute-all-sdl-tools.ps1
|
- powershell: eng/common/sdl/execute-all-sdl-tools.ps1
|
||||||
-GuardianPackageName Microsoft.Guardian.Cli.0.6.0
|
-GuardianPackageName Microsoft.Guardian.Cli.0.7.2
|
||||||
-NugetPackageDirectory $(Build.SourcesDirectory)\.packages
|
-NugetPackageDirectory $(Build.SourcesDirectory)\.packages
|
||||||
-AzureDevOpsAccessToken $(dn-bot-dotnet-build-rw-code-rw)
|
-AzureDevOpsAccessToken $(dn-bot-dotnet-build-rw-code-rw)
|
||||||
${{ parameters.additionalParameters }}
|
${{ parameters.additionalParameters }}
|
||||||
displayName: Execute SDL
|
displayName: Execute SDL
|
||||||
continueOnError: ${{ parameters.continueOnError }}
|
continueOnError: ${{ parameters.sdlContinueOnError }}
|
||||||
|
|
|
@ -37,6 +37,9 @@ parameters:
|
||||||
# Optional: Enable publishing to the build asset registry
|
# Optional: Enable publishing to the build asset registry
|
||||||
enablePublishBuildAssets: false
|
enablePublishBuildAssets: false
|
||||||
|
|
||||||
|
# Optional: Prevent gather/push manifest from executing when using publishing pipelines
|
||||||
|
enablePublishUsingPipelines: false
|
||||||
|
|
||||||
# Optional: Include PublishTestResults task
|
# Optional: Include PublishTestResults task
|
||||||
enablePublishTestResults: false
|
enablePublishTestResults: false
|
||||||
|
|
||||||
|
@ -187,7 +190,7 @@ jobs:
|
||||||
continueOnError: true
|
continueOnError: true
|
||||||
condition: always()
|
condition: always()
|
||||||
|
|
||||||
- ${{ if and(eq(parameters.enablePublishBuildAssets, true), ne(variables['_PublishUsingPipelines'], 'true'), eq(parameters.runAsPublic, 'false'), ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}:
|
- ${{ if and(eq(parameters.enablePublishBuildAssets, true), ne(parameters.enablePublishUsingPipelines, 'true'), eq(parameters.runAsPublic, 'false'), ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}:
|
||||||
- task: CopyFiles@2
|
- task: CopyFiles@2
|
||||||
displayName: Gather Asset Manifests
|
displayName: Gather Asset Manifests
|
||||||
inputs:
|
inputs:
|
||||||
|
@ -195,6 +198,7 @@ jobs:
|
||||||
TargetFolder: '$(Build.StagingDirectory)/AssetManifests'
|
TargetFolder: '$(Build.StagingDirectory)/AssetManifests'
|
||||||
continueOnError: ${{ parameters.continueOnError }}
|
continueOnError: ${{ parameters.continueOnError }}
|
||||||
condition: and(succeeded(), eq(variables['_DotNetPublishToBlobFeed'], 'true'))
|
condition: and(succeeded(), eq(variables['_DotNetPublishToBlobFeed'], 'true'))
|
||||||
|
|
||||||
- task: PublishBuildArtifacts@1
|
- task: PublishBuildArtifacts@1
|
||||||
displayName: Push Asset Manifests
|
displayName: Push Asset Manifests
|
||||||
inputs:
|
inputs:
|
||||||
|
|
|
@ -1,40 +1,51 @@
|
||||||
parameters:
|
parameters:
|
||||||
enableSymbolValidation: true
|
enableSymbolValidation: true
|
||||||
|
symbolPublishingAdditionalParameters: ''
|
||||||
|
artifactsPublishingAdditionalParameters: ''
|
||||||
|
publishInstallersAndChecksums: false
|
||||||
|
|
||||||
stages:
|
stages:
|
||||||
- stage: Publish
|
- stage: NetCore_Dev30_Publish
|
||||||
dependsOn: validate
|
dependsOn: validate
|
||||||
variables:
|
variables:
|
||||||
- template: ../common-variables.yml
|
- template: ../common-variables.yml
|
||||||
displayName: Developer Channel
|
displayName: .NET Core 3.0 Dev Publishing
|
||||||
jobs:
|
jobs:
|
||||||
- template: ../setup-maestro-vars.yml
|
- template: ../setup-maestro-vars.yml
|
||||||
|
|
||||||
- job:
|
- job:
|
||||||
displayName: Symbol Publishing
|
displayName: Symbol Publishing
|
||||||
dependsOn: setupMaestroVars
|
dependsOn: setupMaestroVars
|
||||||
condition: contains(dependencies.setupMaestroVars.outputs['setReleaseVars.InitialChannels'], variables.PublicDevRelease_30_Channel_Id)
|
condition: contains(dependencies.setupMaestroVars.outputs['setReleaseVars.InitialChannels'], format('[{0}]', variables.PublicDevRelease_30_Channel_Id))
|
||||||
variables:
|
variables:
|
||||||
- group: DotNet-Symbol-Server-Pats
|
- group: DotNet-Symbol-Server-Pats
|
||||||
pool:
|
pool:
|
||||||
vmImage: 'windows-2019'
|
vmImage: 'windows-2019'
|
||||||
steps:
|
steps:
|
||||||
- task: DownloadBuildArtifacts@0
|
- task: DownloadBuildArtifacts@0
|
||||||
displayName: Download Artifacts
|
displayName: Download Blob Artifacts
|
||||||
inputs:
|
inputs:
|
||||||
downloadType: specific files
|
artifactName: 'BlobArtifacts'
|
||||||
matchingPattern: "*Artifacts*"
|
continueOnError: true
|
||||||
|
|
||||||
|
- task: DownloadBuildArtifacts@0
|
||||||
|
displayName: Download PDB Artifacts
|
||||||
|
inputs:
|
||||||
|
artifactName: 'PDBArtifacts'
|
||||||
|
continueOnError: true
|
||||||
|
|
||||||
- task: PowerShell@2
|
- task: PowerShell@2
|
||||||
displayName: Publish
|
displayName: Publish
|
||||||
inputs:
|
inputs:
|
||||||
filePath: eng\common\sdk-task.ps1
|
filePath: eng\common\sdk-task.ps1
|
||||||
arguments: -task PublishToSymbolServers -restore -msbuildEngine dotnet
|
arguments: -task PublishToSymbolServers -restore -msbuildEngine dotnet
|
||||||
/p:DotNetSymbolServerTokenMsdl=$(microsoft-symbol-server-pat)
|
/p:DotNetSymbolServerTokenMsdl=$(microsoft-symbol-server-pat)
|
||||||
/p:DotNetSymbolServerTokenSymWeb=$(symweb-symbol-server-pat)
|
/p:DotNetSymbolServerTokenSymWeb=$(symweb-symbol-server-pat)
|
||||||
/p:PDBArtifactsDirectory='$(Build.ArtifactStagingDirectory)/PDBArtifacts/'
|
/p:PDBArtifactsDirectory='$(Build.ArtifactStagingDirectory)/PDBArtifacts/'
|
||||||
/p:BlobBasePath='$(Build.ArtifactStagingDirectory)/BlobArtifacts/'
|
/p:BlobBasePath='$(Build.ArtifactStagingDirectory)/BlobArtifacts/'
|
||||||
|
/p:SymbolPublishingExclusionsFile='$(Build.SourcesDirectory)/eng/SymbolPublishingExclusionsFile.txt'
|
||||||
/p:Configuration=Release
|
/p:Configuration=Release
|
||||||
|
${{ parameters.symbolPublishingAdditionalParameters }}
|
||||||
|
|
||||||
- job:
|
- job:
|
||||||
displayName: Publish Assets
|
displayName: Publish Assets
|
||||||
|
@ -46,7 +57,7 @@ stages:
|
||||||
value: $[ dependencies.setupMaestroVars.outputs['setReleaseVars.BARBuildId'] ]
|
value: $[ dependencies.setupMaestroVars.outputs['setReleaseVars.BARBuildId'] ]
|
||||||
- name: IsStableBuild
|
- name: IsStableBuild
|
||||||
value: $[ dependencies.setupMaestroVars.outputs['setReleaseVars.IsStableBuild'] ]
|
value: $[ dependencies.setupMaestroVars.outputs['setReleaseVars.IsStableBuild'] ]
|
||||||
condition: contains(dependencies.setupMaestroVars.outputs['setReleaseVars.InitialChannels'], variables.PublicDevRelease_30_Channel_Id)
|
condition: contains(dependencies.setupMaestroVars.outputs['setReleaseVars.InitialChannels'], format('[{0}]', variables.PublicDevRelease_30_Channel_Id))
|
||||||
pool:
|
pool:
|
||||||
vmImage: 'windows-2019'
|
vmImage: 'windows-2019'
|
||||||
steps:
|
steps:
|
||||||
|
@ -74,7 +85,7 @@ stages:
|
||||||
AZURE_DEVOPS_EXT_PAT: $(dn-bot-dnceng-unviersal-packages-rw)
|
AZURE_DEVOPS_EXT_PAT: $(dn-bot-dnceng-unviersal-packages-rw)
|
||||||
inputs:
|
inputs:
|
||||||
filePath: eng\common\sdk-task.ps1
|
filePath: eng\common\sdk-task.ps1
|
||||||
arguments: -task PublishArtifactsInManifest -restore -msbuildEngine dotnet
|
arguments: -task PublishArtifactsInManifest -restore -msbuildEngine dotnet
|
||||||
/p:ChannelId=$(PublicDevRelease_30_Channel_Id)
|
/p:ChannelId=$(PublicDevRelease_30_Channel_Id)
|
||||||
/p:ArtifactsCategory=$(_DotNetArtifactsCategory)
|
/p:ArtifactsCategory=$(_DotNetArtifactsCategory)
|
||||||
/p:IsStableBuild=$(IsStableBuild)
|
/p:IsStableBuild=$(IsStableBuild)
|
||||||
|
@ -82,17 +93,23 @@ stages:
|
||||||
/p:RepositoryName=$(Build.Repository.Name)
|
/p:RepositoryName=$(Build.Repository.Name)
|
||||||
/p:CommitSha=$(Build.SourceVersion)
|
/p:CommitSha=$(Build.SourceVersion)
|
||||||
/p:NugetPath=$(Agent.BuildDirectory)\Nuget\NuGet.exe
|
/p:NugetPath=$(Agent.BuildDirectory)\Nuget\NuGet.exe
|
||||||
/p:AzdoTargetFeedPAT='$(dn-bot-dnceng-unviersal-packages-rw)'
|
/p:AzdoTargetFeedPAT='$(dn-bot-dnceng-unviersal-packages-rw)'
|
||||||
/p:TargetFeedPAT='$(dn-bot-dnceng-unviersal-packages-rw)'
|
/p:TargetFeedPAT='$(dn-bot-dnceng-unviersal-packages-rw)'
|
||||||
/p:AzureStorageTargetFeedPAT='$(dotnetfeed-storage-access-key-1)'
|
/p:AzureStorageTargetFeedPAT='$(dotnetfeed-storage-access-key-1)'
|
||||||
/p:BARBuildId=$(BARBuildId)
|
/p:BARBuildId=$(BARBuildId)
|
||||||
/p:MaestroApiEndpoint='$(MaestroApiEndPoint)'
|
/p:MaestroApiEndpoint='$(MaestroApiEndPoint)'
|
||||||
/p:BuildAssetRegistryToken='$(MaestroApiAccessToken)'
|
/p:BuildAssetRegistryToken='$(MaestroApiAccessToken)'
|
||||||
/p:ManifestsBasePath='$(Build.ArtifactStagingDirectory)/AssetManifests/'
|
/p:ManifestsBasePath='$(Build.ArtifactStagingDirectory)/AssetManifests/'
|
||||||
/p:BlobBasePath='$(Build.ArtifactStagingDirectory)/BlobArtifacts/'
|
/p:BlobBasePath='$(Build.ArtifactStagingDirectory)/BlobArtifacts/'
|
||||||
/p:PackageBasePath='$(Build.ArtifactStagingDirectory)/PackageArtifacts/'
|
/p:PackageBasePath='$(Build.ArtifactStagingDirectory)/PackageArtifacts/'
|
||||||
/p:Configuration=Release
|
/p:Configuration=Release
|
||||||
|
/p:PublishInstallersAndChecksums=${{ parameters.publishInstallersAndChecksums }}
|
||||||
|
/p:InstallersTargetStaticFeed=$(InstallersBlobFeedUrl)
|
||||||
|
/p:InstallersAzureAccountKey=$(dotnetcli-storage-key)
|
||||||
|
/p:ChecksumsTargetStaticFeed=$(ChecksumsBlobFeedUrl)
|
||||||
|
/p:ChecksumsAzureAccountKey=$(dotnetclichecksums-storage-key)
|
||||||
|
${{ parameters.artifactsPublishingAdditionalParameters }}
|
||||||
|
|
||||||
- task: NuGetCommand@2
|
- task: NuGetCommand@2
|
||||||
displayName: Publish Packages to AzDO Feed
|
displayName: Publish Packages to AzDO Feed
|
||||||
condition: contains(variables['TargetAzDOFeed'], 'pkgs.visualstudio.com')
|
condition: contains(variables['TargetAzDOFeed'], 'pkgs.visualstudio.com')
|
||||||
|
@ -106,16 +123,16 @@ stages:
|
||||||
displayName: Publish Blobs to AzDO Feed
|
displayName: Publish Blobs to AzDO Feed
|
||||||
inputs:
|
inputs:
|
||||||
filePath: $(Build.SourcesDirectory)/eng/common/post-build/publish-blobs-to-azdo.ps1
|
filePath: $(Build.SourcesDirectory)/eng/common/post-build/publish-blobs-to-azdo.ps1
|
||||||
arguments: -FeedName $(AzDoFeedName)
|
arguments: -FeedName $(AzDoFeedName)
|
||||||
-SourceFolderCollection $(Build.ArtifactStagingDirectory)/BlobArtifacts/
|
-SourceFolderCollection $(Build.ArtifactStagingDirectory)/BlobArtifacts/
|
||||||
-PersonalAccessToken $(dn-bot-dnceng-unviersal-packages-rw)
|
-PersonalAccessToken $(dn-bot-dnceng-unviersal-packages-rw)
|
||||||
enabled: false
|
enabled: false
|
||||||
|
|
||||||
|
|
||||||
- stage: PublishValidation
|
- stage: NetCore_Dev30_Publish_Validation
|
||||||
displayName: Publish Validation
|
displayName: .NET Core 3.0 Dev Publish Validation
|
||||||
variables:
|
variables:
|
||||||
- template: ../common-variables.yml
|
- template: ../common-variables.yml
|
||||||
jobs:
|
jobs:
|
||||||
- template: ../setup-maestro-vars.yml
|
- template: ../setup-maestro-vars.yml
|
||||||
|
|
||||||
|
@ -123,7 +140,7 @@ stages:
|
||||||
- job:
|
- job:
|
||||||
displayName: Symbol Availability
|
displayName: Symbol Availability
|
||||||
dependsOn: setupMaestroVars
|
dependsOn: setupMaestroVars
|
||||||
condition: contains(dependencies.setupMaestroVars.outputs['setReleaseVars.InitialChannels'], variables.PublicDevRelease_30_Channel_Id)
|
condition: contains(dependencies.setupMaestroVars.outputs['setReleaseVars.InitialChannels'], format('[{0}]', variables.PublicDevRelease_30_Channel_Id))
|
||||||
pool:
|
pool:
|
||||||
vmImage: 'windows-2019'
|
vmImage: 'windows-2019'
|
||||||
steps:
|
steps:
|
||||||
|
@ -143,6 +160,6 @@ stages:
|
||||||
parameters:
|
parameters:
|
||||||
ChannelId: ${{ variables.PublicDevRelease_30_Channel_Id }}
|
ChannelId: ${{ variables.PublicDevRelease_30_Channel_Id }}
|
||||||
|
|
||||||
- template: ../promote-build.yml
|
- template: ../promote-build.yml
|
||||||
parameters:
|
parameters:
|
||||||
ChannelId: ${{ variables.PublicDevRelease_30_Channel_Id }}
|
ChannelId: ${{ variables.PublicDevRelease_30_Channel_Id }}
|
165
eng/common/templates/post-build/channels/netcore-dev-31.yml
Normal file
165
eng/common/templates/post-build/channels/netcore-dev-31.yml
Normal file
|
@ -0,0 +1,165 @@
|
||||||
|
parameters:
|
||||||
|
enableSymbolValidation: true
|
||||||
|
symbolPublishingAdditionalParameters: ''
|
||||||
|
artifactsPublishingAdditionalParameters: ''
|
||||||
|
publishInstallersAndChecksums: false
|
||||||
|
|
||||||
|
stages:
|
||||||
|
- stage: NetCore_Dev31_Publish
|
||||||
|
dependsOn: validate
|
||||||
|
variables:
|
||||||
|
- template: ../common-variables.yml
|
||||||
|
displayName: .NET Core 3.1 Dev Publishing
|
||||||
|
jobs:
|
||||||
|
- template: ../setup-maestro-vars.yml
|
||||||
|
|
||||||
|
- job:
|
||||||
|
displayName: Symbol Publishing
|
||||||
|
dependsOn: setupMaestroVars
|
||||||
|
condition: contains(dependencies.setupMaestroVars.outputs['setReleaseVars.InitialChannels'], format('[{0}]', variables.PublicDevRelease_31_Channel_Id))
|
||||||
|
variables:
|
||||||
|
- group: DotNet-Symbol-Server-Pats
|
||||||
|
pool:
|
||||||
|
vmImage: 'windows-2019'
|
||||||
|
steps:
|
||||||
|
- task: DownloadBuildArtifacts@0
|
||||||
|
displayName: Download Blob Artifacts
|
||||||
|
inputs:
|
||||||
|
artifactName: 'BlobArtifacts'
|
||||||
|
continueOnError: true
|
||||||
|
|
||||||
|
- task: DownloadBuildArtifacts@0
|
||||||
|
displayName: Download PDB Artifacts
|
||||||
|
inputs:
|
||||||
|
artifactName: 'PDBArtifacts'
|
||||||
|
continueOnError: true
|
||||||
|
|
||||||
|
- task: PowerShell@2
|
||||||
|
displayName: Publish
|
||||||
|
inputs:
|
||||||
|
filePath: eng\common\sdk-task.ps1
|
||||||
|
arguments: -task PublishToSymbolServers -restore -msbuildEngine dotnet
|
||||||
|
/p:DotNetSymbolServerTokenMsdl=$(microsoft-symbol-server-pat)
|
||||||
|
/p:DotNetSymbolServerTokenSymWeb=$(symweb-symbol-server-pat)
|
||||||
|
/p:PDBArtifactsDirectory='$(Build.ArtifactStagingDirectory)/PDBArtifacts/'
|
||||||
|
/p:BlobBasePath='$(Build.ArtifactStagingDirectory)/BlobArtifacts/'
|
||||||
|
/p:SymbolPublishingExclusionsFile='$(Build.SourcesDirectory)/eng/SymbolPublishingExclusionsFile.txt'
|
||||||
|
/p:Configuration=Release
|
||||||
|
${{ parameters.symbolPublishingAdditionalParameters }}
|
||||||
|
|
||||||
|
- job:
|
||||||
|
displayName: Publish Assets
|
||||||
|
dependsOn: setupMaestroVars
|
||||||
|
variables:
|
||||||
|
- group: DotNet-Blob-Feed
|
||||||
|
- group: AzureDevOps-Artifact-Feeds-Pats
|
||||||
|
- name: BARBuildId
|
||||||
|
value: $[ dependencies.setupMaestroVars.outputs['setReleaseVars.BARBuildId'] ]
|
||||||
|
- name: IsStableBuild
|
||||||
|
value: $[ dependencies.setupMaestroVars.outputs['setReleaseVars.IsStableBuild'] ]
|
||||||
|
condition: contains(dependencies.setupMaestroVars.outputs['setReleaseVars.InitialChannels'], format('[{0}]', variables.PublicDevRelease_31_Channel_Id))
|
||||||
|
pool:
|
||||||
|
vmImage: 'windows-2019'
|
||||||
|
steps:
|
||||||
|
- task: DownloadBuildArtifacts@0
|
||||||
|
displayName: Download Package Artifacts
|
||||||
|
inputs:
|
||||||
|
buildType: current
|
||||||
|
artifactName: PackageArtifacts
|
||||||
|
|
||||||
|
- task: DownloadBuildArtifacts@0
|
||||||
|
displayName: Download Blob Artifacts
|
||||||
|
inputs:
|
||||||
|
buildType: current
|
||||||
|
artifactName: BlobArtifacts
|
||||||
|
|
||||||
|
- task: DownloadBuildArtifacts@0
|
||||||
|
displayName: Download Asset Manifests
|
||||||
|
inputs:
|
||||||
|
buildType: current
|
||||||
|
artifactName: AssetManifests
|
||||||
|
|
||||||
|
- task: PowerShell@2
|
||||||
|
displayName: Add Assets Location
|
||||||
|
env:
|
||||||
|
AZURE_DEVOPS_EXT_PAT: $(dn-bot-dnceng-unviersal-packages-rw)
|
||||||
|
inputs:
|
||||||
|
filePath: eng\common\sdk-task.ps1
|
||||||
|
arguments: -task PublishArtifactsInManifest -restore -msbuildEngine dotnet
|
||||||
|
/p:ChannelId=$(PublicDevRelease_31_Channel_Id)
|
||||||
|
/p:ArtifactsCategory=$(_DotNetArtifactsCategory)
|
||||||
|
/p:IsStableBuild=$(IsStableBuild)
|
||||||
|
/p:IsInternalBuild=$(IsInternalBuild)
|
||||||
|
/p:RepositoryName=$(Build.Repository.Name)
|
||||||
|
/p:CommitSha=$(Build.SourceVersion)
|
||||||
|
/p:NugetPath=$(Agent.BuildDirectory)\Nuget\NuGet.exe
|
||||||
|
/p:AzdoTargetFeedPAT='$(dn-bot-dnceng-unviersal-packages-rw)'
|
||||||
|
/p:TargetFeedPAT='$(dn-bot-dnceng-unviersal-packages-rw)'
|
||||||
|
/p:AzureStorageTargetFeedPAT='$(dotnetfeed-storage-access-key-1)'
|
||||||
|
/p:BARBuildId=$(BARBuildId)
|
||||||
|
/p:MaestroApiEndpoint='$(MaestroApiEndPoint)'
|
||||||
|
/p:BuildAssetRegistryToken='$(MaestroApiAccessToken)'
|
||||||
|
/p:ManifestsBasePath='$(Build.ArtifactStagingDirectory)/AssetManifests/'
|
||||||
|
/p:BlobBasePath='$(Build.ArtifactStagingDirectory)/BlobArtifacts/'
|
||||||
|
/p:PackageBasePath='$(Build.ArtifactStagingDirectory)/PackageArtifacts/'
|
||||||
|
/p:Configuration=Release
|
||||||
|
/p:PublishInstallersAndChecksums=${{ parameters.publishInstallersAndChecksums }}
|
||||||
|
/p:InstallersTargetStaticFeed=$(InstallersBlobFeedUrl)
|
||||||
|
/p:InstallersAzureAccountKey=$(dotnetcli-storage-key)
|
||||||
|
/p:ChecksumsTargetStaticFeed=$(ChecksumsBlobFeedUrl)
|
||||||
|
/p:ChecksumsAzureAccountKey=$(dotnetclichecksums-storage-key)
|
||||||
|
${{ parameters.artifactsPublishingAdditionalParameters }}
|
||||||
|
|
||||||
|
- task: NuGetCommand@2
|
||||||
|
displayName: Publish Packages to AzDO Feed
|
||||||
|
condition: contains(variables['TargetAzDOFeed'], 'pkgs.visualstudio.com')
|
||||||
|
inputs:
|
||||||
|
command: push
|
||||||
|
vstsFeed: $(AzDoFeedName)
|
||||||
|
packagesToPush: $(Build.ArtifactStagingDirectory)\PackageArtifacts\*.nupkg
|
||||||
|
publishVstsFeed: $(AzDoFeedName)
|
||||||
|
|
||||||
|
- task: PowerShell@2
|
||||||
|
displayName: Publish Blobs to AzDO Feed
|
||||||
|
inputs:
|
||||||
|
filePath: $(Build.SourcesDirectory)/eng/common/post-build/publish-blobs-to-azdo.ps1
|
||||||
|
arguments: -FeedName $(AzDoFeedName)
|
||||||
|
-SourceFolderCollection $(Build.ArtifactStagingDirectory)/BlobArtifacts/
|
||||||
|
-PersonalAccessToken $(dn-bot-dnceng-unviersal-packages-rw)
|
||||||
|
enabled: false
|
||||||
|
|
||||||
|
|
||||||
|
- stage: NetCore_Dev31_Publish_Validation
|
||||||
|
displayName: .NET Core 3.1 Dev Publish Validation
|
||||||
|
variables:
|
||||||
|
- template: ../common-variables.yml
|
||||||
|
jobs:
|
||||||
|
- template: ../setup-maestro-vars.yml
|
||||||
|
|
||||||
|
- ${{ if eq(parameters.enableSymbolValidation, 'true') }}:
|
||||||
|
- job:
|
||||||
|
displayName: Symbol Availability
|
||||||
|
dependsOn: setupMaestroVars
|
||||||
|
condition: contains(dependencies.setupMaestroVars.outputs['setReleaseVars.InitialChannels'], format('[{0}]', variables.PublicDevRelease_31_Channel_Id))
|
||||||
|
pool:
|
||||||
|
vmImage: 'windows-2019'
|
||||||
|
steps:
|
||||||
|
- task: DownloadBuildArtifacts@0
|
||||||
|
displayName: Download Package Artifacts
|
||||||
|
inputs:
|
||||||
|
buildType: current
|
||||||
|
artifactName: PackageArtifacts
|
||||||
|
|
||||||
|
- task: PowerShell@2
|
||||||
|
displayName: Check Symbol Availability
|
||||||
|
inputs:
|
||||||
|
filePath: $(Build.SourcesDirectory)/eng/common/post-build/symbols-validation.ps1
|
||||||
|
arguments: -InputPath $(Build.ArtifactStagingDirectory)/PackageArtifacts/ -ExtractPath $(Agent.BuildDirectory)/Temp/ -DotnetSymbolVersion $(SymbolToolVersion)
|
||||||
|
|
||||||
|
- template: ../darc-gather-drop.yml
|
||||||
|
parameters:
|
||||||
|
ChannelId: ${{ variables.PublicDevRelease_31_Channel_Id }}
|
||||||
|
|
||||||
|
- template: ../promote-build.yml
|
||||||
|
parameters:
|
||||||
|
ChannelId: ${{ variables.PublicDevRelease_31_Channel_Id }}
|
165
eng/common/templates/post-build/channels/netcore-dev-5.yml
Normal file
165
eng/common/templates/post-build/channels/netcore-dev-5.yml
Normal file
|
@ -0,0 +1,165 @@
|
||||||
|
parameters:
|
||||||
|
enableSymbolValidation: true
|
||||||
|
symbolPublishingAdditionalParameters: ''
|
||||||
|
artifactsPublishingAdditionalParameters: ''
|
||||||
|
publishInstallersAndChecksums: false
|
||||||
|
|
||||||
|
stages:
|
||||||
|
- stage: NetCore_Dev5_Publish
|
||||||
|
dependsOn: validate
|
||||||
|
variables:
|
||||||
|
- template: ../common-variables.yml
|
||||||
|
displayName: .NET Core 5 Dev Publishing
|
||||||
|
jobs:
|
||||||
|
- template: ../setup-maestro-vars.yml
|
||||||
|
|
||||||
|
- job:
|
||||||
|
displayName: Symbol Publishing
|
||||||
|
dependsOn: setupMaestroVars
|
||||||
|
condition: contains(dependencies.setupMaestroVars.outputs['setReleaseVars.InitialChannels'], format('[{0}]', variables.NetCore_5_Dev_Channel_Id))
|
||||||
|
variables:
|
||||||
|
- group: DotNet-Symbol-Server-Pats
|
||||||
|
pool:
|
||||||
|
vmImage: 'windows-2019'
|
||||||
|
steps:
|
||||||
|
- task: DownloadBuildArtifacts@0
|
||||||
|
displayName: Download Blob Artifacts
|
||||||
|
inputs:
|
||||||
|
artifactName: 'BlobArtifacts'
|
||||||
|
continueOnError: true
|
||||||
|
|
||||||
|
- task: DownloadBuildArtifacts@0
|
||||||
|
displayName: Download PDB Artifacts
|
||||||
|
inputs:
|
||||||
|
artifactName: 'PDBArtifacts'
|
||||||
|
continueOnError: true
|
||||||
|
|
||||||
|
- task: PowerShell@2
|
||||||
|
displayName: Publish
|
||||||
|
inputs:
|
||||||
|
filePath: eng\common\sdk-task.ps1
|
||||||
|
arguments: -task PublishToSymbolServers -restore -msbuildEngine dotnet
|
||||||
|
/p:DotNetSymbolServerTokenMsdl=$(microsoft-symbol-server-pat)
|
||||||
|
/p:DotNetSymbolServerTokenSymWeb=$(symweb-symbol-server-pat)
|
||||||
|
/p:PDBArtifactsDirectory='$(Build.ArtifactStagingDirectory)/PDBArtifacts/'
|
||||||
|
/p:BlobBasePath='$(Build.ArtifactStagingDirectory)/BlobArtifacts/'
|
||||||
|
/p:SymbolPublishingExclusionsFile='$(Build.SourcesDirectory)/eng/SymbolPublishingExclusionsFile.txt'
|
||||||
|
/p:Configuration=Release
|
||||||
|
${{ parameters.symbolPublishingAdditionalParameters }}
|
||||||
|
|
||||||
|
- job:
|
||||||
|
displayName: Publish Assets
|
||||||
|
dependsOn: setupMaestroVars
|
||||||
|
variables:
|
||||||
|
- group: DotNet-Blob-Feed
|
||||||
|
- group: AzureDevOps-Artifact-Feeds-Pats
|
||||||
|
- name: BARBuildId
|
||||||
|
value: $[ dependencies.setupMaestroVars.outputs['setReleaseVars.BARBuildId'] ]
|
||||||
|
- name: IsStableBuild
|
||||||
|
value: $[ dependencies.setupMaestroVars.outputs['setReleaseVars.IsStableBuild'] ]
|
||||||
|
condition: contains(dependencies.setupMaestroVars.outputs['setReleaseVars.InitialChannels'], format('[{0}]', variables.NetCore_5_Dev_Channel_Id))
|
||||||
|
pool:
|
||||||
|
vmImage: 'windows-2019'
|
||||||
|
steps:
|
||||||
|
- task: DownloadBuildArtifacts@0
|
||||||
|
displayName: Download Package Artifacts
|
||||||
|
inputs:
|
||||||
|
buildType: current
|
||||||
|
artifactName: PackageArtifacts
|
||||||
|
|
||||||
|
- task: DownloadBuildArtifacts@0
|
||||||
|
displayName: Download Blob Artifacts
|
||||||
|
inputs:
|
||||||
|
buildType: current
|
||||||
|
artifactName: BlobArtifacts
|
||||||
|
|
||||||
|
- task: DownloadBuildArtifacts@0
|
||||||
|
displayName: Download Asset Manifests
|
||||||
|
inputs:
|
||||||
|
buildType: current
|
||||||
|
artifactName: AssetManifests
|
||||||
|
|
||||||
|
- task: PowerShell@2
|
||||||
|
displayName: Add Assets Location
|
||||||
|
env:
|
||||||
|
AZURE_DEVOPS_EXT_PAT: $(dn-bot-dnceng-unviersal-packages-rw)
|
||||||
|
inputs:
|
||||||
|
filePath: eng\common\sdk-task.ps1
|
||||||
|
arguments: -task PublishArtifactsInManifest -restore -msbuildEngine dotnet
|
||||||
|
/p:ChannelId=$(NetCore_5_Dev_Channel_Id)
|
||||||
|
/p:ArtifactsCategory=$(_DotNetArtifactsCategory)
|
||||||
|
/p:IsStableBuild=$(IsStableBuild)
|
||||||
|
/p:IsInternalBuild=$(IsInternalBuild)
|
||||||
|
/p:RepositoryName=$(Build.Repository.Name)
|
||||||
|
/p:CommitSha=$(Build.SourceVersion)
|
||||||
|
/p:NugetPath=$(Agent.BuildDirectory)\Nuget\NuGet.exe
|
||||||
|
/p:AzdoTargetFeedPAT='$(dn-bot-dnceng-unviersal-packages-rw)'
|
||||||
|
/p:TargetFeedPAT='$(dn-bot-dnceng-unviersal-packages-rw)'
|
||||||
|
/p:AzureStorageTargetFeedPAT='$(dotnetfeed-storage-access-key-1)'
|
||||||
|
/p:BARBuildId=$(BARBuildId)
|
||||||
|
/p:MaestroApiEndpoint='$(MaestroApiEndPoint)'
|
||||||
|
/p:BuildAssetRegistryToken='$(MaestroApiAccessToken)'
|
||||||
|
/p:ManifestsBasePath='$(Build.ArtifactStagingDirectory)/AssetManifests/'
|
||||||
|
/p:BlobBasePath='$(Build.ArtifactStagingDirectory)/BlobArtifacts/'
|
||||||
|
/p:PackageBasePath='$(Build.ArtifactStagingDirectory)/PackageArtifacts/'
|
||||||
|
/p:Configuration=Release
|
||||||
|
/p:InstallersTargetStaticFeed=$(InstallersBlobFeedUrl)
|
||||||
|
/p:InstallersAzureAccountKey=$(dotnetcli-storage-key)
|
||||||
|
/p:PublishInstallersAndChecksums=${{ parameters.publishInstallersAndChecksums }}
|
||||||
|
/p:ChecksumsTargetStaticFeed=$(ChecksumsBlobFeedUrl)
|
||||||
|
/p:ChecksumsAzureAccountKey=$(dotnetclichecksums-storage-key)
|
||||||
|
${{ parameters.artifactsPublishingAdditionalParameters }}
|
||||||
|
|
||||||
|
- task: NuGetCommand@2
|
||||||
|
displayName: Publish Packages to AzDO Feed
|
||||||
|
condition: contains(variables['TargetAzDOFeed'], 'pkgs.visualstudio.com')
|
||||||
|
inputs:
|
||||||
|
command: push
|
||||||
|
vstsFeed: $(AzDoFeedName)
|
||||||
|
packagesToPush: $(Build.ArtifactStagingDirectory)\PackageArtifacts\*.nupkg
|
||||||
|
publishVstsFeed: $(AzDoFeedName)
|
||||||
|
|
||||||
|
- task: PowerShell@2
|
||||||
|
displayName: Publish Blobs to AzDO Feed
|
||||||
|
inputs:
|
||||||
|
filePath: $(Build.SourcesDirectory)/eng/common/post-build/publish-blobs-to-azdo.ps1
|
||||||
|
arguments: -FeedName $(AzDoFeedName)
|
||||||
|
-SourceFolderCollection $(Build.ArtifactStagingDirectory)/BlobArtifacts/
|
||||||
|
-PersonalAccessToken $(dn-bot-dnceng-unviersal-packages-rw)
|
||||||
|
enabled: false
|
||||||
|
|
||||||
|
|
||||||
|
- stage: NetCore_Dev5_Publish_Validation
|
||||||
|
displayName: .NET Core 5 Dev Publish Validation
|
||||||
|
variables:
|
||||||
|
- template: ../common-variables.yml
|
||||||
|
jobs:
|
||||||
|
- template: ../setup-maestro-vars.yml
|
||||||
|
|
||||||
|
- ${{ if eq(parameters.enableSymbolValidation, 'true') }}:
|
||||||
|
- job:
|
||||||
|
displayName: Symbol Availability
|
||||||
|
dependsOn: setupMaestroVars
|
||||||
|
condition: contains(dependencies.setupMaestroVars.outputs['setReleaseVars.InitialChannels'], format('[{0}]', variables.NetCore_5_Dev_Channel_Id))
|
||||||
|
pool:
|
||||||
|
vmImage: 'windows-2019'
|
||||||
|
steps:
|
||||||
|
- task: DownloadBuildArtifacts@0
|
||||||
|
displayName: Download Package Artifacts
|
||||||
|
inputs:
|
||||||
|
buildType: current
|
||||||
|
artifactName: PackageArtifacts
|
||||||
|
|
||||||
|
- task: PowerShell@2
|
||||||
|
displayName: Check Symbol Availability
|
||||||
|
inputs:
|
||||||
|
filePath: $(Build.SourcesDirectory)/eng/common/post-build/symbols-validation.ps1
|
||||||
|
arguments: -InputPath $(Build.ArtifactStagingDirectory)/PackageArtifacts/ -ExtractPath $(Agent.BuildDirectory)/Temp/ -DotnetSymbolVersion $(SymbolToolVersion)
|
||||||
|
|
||||||
|
- template: ../darc-gather-drop.yml
|
||||||
|
parameters:
|
||||||
|
ChannelId: ${{ variables.NetCore_5_Dev_Channel_Id }}
|
||||||
|
|
||||||
|
- template: ../promote-build.yml
|
||||||
|
parameters:
|
||||||
|
ChannelId: ${{ variables.NetCore_5_Dev_Channel_Id }}
|
|
@ -1,40 +1,50 @@
|
||||||
parameters:
|
parameters:
|
||||||
enableSymbolValidation: true
|
enableSymbolValidation: true
|
||||||
|
symbolPublishingAdditionalParameters: ''
|
||||||
|
artifactsPublishingAdditionalParameters: ''
|
||||||
|
|
||||||
stages:
|
stages:
|
||||||
- stage: IS_Publish
|
- stage: NetCore_30_Internal_Servicing_Publishing
|
||||||
dependsOn: validate
|
dependsOn: validate
|
||||||
variables:
|
variables:
|
||||||
- template: ../common-variables.yml
|
- template: ../common-variables.yml
|
||||||
displayName: Internal Servicing
|
displayName: .NET Core 3.0 Internal Servicing Publishing
|
||||||
jobs:
|
jobs:
|
||||||
- template: ../setup-maestro-vars.yml
|
- template: ../setup-maestro-vars.yml
|
||||||
|
|
||||||
- job:
|
- job:
|
||||||
displayName: Symbol Publishing
|
displayName: Symbol Publishing
|
||||||
dependsOn: setupMaestroVars
|
dependsOn: setupMaestroVars
|
||||||
condition: contains(dependencies.setupMaestroVars.outputs['setReleaseVars.InitialChannels'], variables.InternalServicing_30_Channel_Id)
|
condition: contains(dependencies.setupMaestroVars.outputs['setReleaseVars.InitialChannels'], format('[{0}]', variables.InternalServicing_30_Channel_Id))
|
||||||
variables:
|
variables:
|
||||||
- group: DotNet-Symbol-Server-Pats
|
- group: DotNet-Symbol-Server-Pats
|
||||||
pool:
|
pool:
|
||||||
vmImage: 'windows-2019'
|
vmImage: 'windows-2019'
|
||||||
steps:
|
steps:
|
||||||
- task: DownloadBuildArtifacts@0
|
- task: DownloadBuildArtifacts@0
|
||||||
displayName: Download Artifacts
|
displayName: Download Blob Artifacts
|
||||||
inputs:
|
inputs:
|
||||||
downloadType: specific files
|
artifactName: 'BlobArtifacts'
|
||||||
matchingPattern: "*Artifacts*"
|
continueOnError: true
|
||||||
|
|
||||||
|
- task: DownloadBuildArtifacts@0
|
||||||
|
displayName: Download PDB Artifacts
|
||||||
|
inputs:
|
||||||
|
artifactName: 'PDBArtifacts'
|
||||||
|
continueOnError: true
|
||||||
|
|
||||||
- task: PowerShell@2
|
- task: PowerShell@2
|
||||||
displayName: Publish
|
displayName: Publish
|
||||||
inputs:
|
inputs:
|
||||||
filePath: eng\common\sdk-task.ps1
|
filePath: eng\common\sdk-task.ps1
|
||||||
arguments: -task PublishToSymbolServers -restore -msbuildEngine dotnet
|
arguments: -task PublishToSymbolServers -restore -msbuildEngine dotnet
|
||||||
/p:DotNetSymbolServerTokenMsdl=$(microsoft-symbol-server-pat)
|
/p:DotNetSymbolServerTokenMsdl=$(microsoft-symbol-server-pat)
|
||||||
/p:DotNetSymbolServerTokenSymWeb=$(symweb-symbol-server-pat)
|
/p:DotNetSymbolServerTokenSymWeb=$(symweb-symbol-server-pat)
|
||||||
/p:PDBArtifactsDirectory='$(Build.ArtifactStagingDirectory)/PDBArtifacts/'
|
/p:PDBArtifactsDirectory='$(Build.ArtifactStagingDirectory)/PDBArtifacts/'
|
||||||
/p:BlobBasePath='$(Build.ArtifactStagingDirectory)/BlobArtifacts/'
|
/p:BlobBasePath='$(Build.ArtifactStagingDirectory)/BlobArtifacts/'
|
||||||
|
/p:SymbolPublishingExclusionsFile='$(Build.SourcesDirectory)/eng/SymbolPublishingExclusionsFile.txt'
|
||||||
/p:Configuration=Release
|
/p:Configuration=Release
|
||||||
|
${{ parameters.symbolPublishingAdditionalParameters }}
|
||||||
|
|
||||||
- job: publish_assets
|
- job: publish_assets
|
||||||
displayName: Publish Assets
|
displayName: Publish Assets
|
||||||
|
@ -46,7 +56,7 @@ stages:
|
||||||
value: $[ dependencies.setupMaestroVars.outputs['setReleaseVars.BARBuildId'] ]
|
value: $[ dependencies.setupMaestroVars.outputs['setReleaseVars.BARBuildId'] ]
|
||||||
- name: IsStableBuild
|
- name: IsStableBuild
|
||||||
value: $[ dependencies.setupMaestroVars.outputs['setReleaseVars.IsStableBuild'] ]
|
value: $[ dependencies.setupMaestroVars.outputs['setReleaseVars.IsStableBuild'] ]
|
||||||
condition: contains(dependencies.setupMaestroVars.outputs['setReleaseVars.InitialChannels'], variables.InternalServicing_30_Channel_Id)
|
condition: contains(dependencies.setupMaestroVars.outputs['setReleaseVars.InitialChannels'], format('[{0}]', variables.InternalServicing_30_Channel_Id))
|
||||||
pool:
|
pool:
|
||||||
vmImage: 'windows-2019'
|
vmImage: 'windows-2019'
|
||||||
steps:
|
steps:
|
||||||
|
@ -74,7 +84,7 @@ stages:
|
||||||
AZURE_DEVOPS_EXT_PAT: $(dn-bot-dnceng-unviersal-packages-rw)
|
AZURE_DEVOPS_EXT_PAT: $(dn-bot-dnceng-unviersal-packages-rw)
|
||||||
inputs:
|
inputs:
|
||||||
filePath: eng\common\sdk-task.ps1
|
filePath: eng\common\sdk-task.ps1
|
||||||
arguments: -task PublishArtifactsInManifest -restore -msbuildEngine dotnet
|
arguments: -task PublishArtifactsInManifest -restore -msbuildEngine dotnet
|
||||||
/p:ChannelId=$(InternalServicing_30_Channel_Id)
|
/p:ChannelId=$(InternalServicing_30_Channel_Id)
|
||||||
/p:IsStableBuild=$(IsStableBuild)
|
/p:IsStableBuild=$(IsStableBuild)
|
||||||
/p:IsInternalBuild=$(IsInternalBuild)
|
/p:IsInternalBuild=$(IsInternalBuild)
|
||||||
|
@ -85,14 +95,15 @@ stages:
|
||||||
/p:AzureDevOpsFeedsBaseUrl=$(dotnetfeed-internal-private-feed-url)
|
/p:AzureDevOpsFeedsBaseUrl=$(dotnetfeed-internal-private-feed-url)
|
||||||
/p:StaticInternalFeed=$(dotnetfeed-internal-nonstable-feed-url)
|
/p:StaticInternalFeed=$(dotnetfeed-internal-nonstable-feed-url)
|
||||||
/p:NugetPath=$(Agent.BuildDirectory)\Nuget\NuGet.exe
|
/p:NugetPath=$(Agent.BuildDirectory)\Nuget\NuGet.exe
|
||||||
/p:BARBuildId=$(BARBuildId)
|
/p:BARBuildId=$(BARBuildId)
|
||||||
/p:MaestroApiEndpoint='$(MaestroApiEndPoint)'
|
/p:MaestroApiEndpoint='$(MaestroApiEndPoint)'
|
||||||
/p:BuildAssetRegistryToken='$(MaestroApiAccessToken)'
|
/p:BuildAssetRegistryToken='$(MaestroApiAccessToken)'
|
||||||
/p:ManifestsBasePath='$(Build.ArtifactStagingDirectory)/AssetManifests/'
|
/p:ManifestsBasePath='$(Build.ArtifactStagingDirectory)/AssetManifests/'
|
||||||
/p:BlobBasePath='$(Build.ArtifactStagingDirectory)\BlobArtifacts'
|
/p:BlobBasePath='$(Build.ArtifactStagingDirectory)\BlobArtifacts'
|
||||||
/p:PackageBasePath='$(Build.ArtifactStagingDirectory)\PackageArtifacts'
|
/p:PackageBasePath='$(Build.ArtifactStagingDirectory)\PackageArtifacts'
|
||||||
/p:Configuration=Release
|
/p:Configuration=Release
|
||||||
|
${{ parameters.artifactsPublishingAdditionalParameters }}
|
||||||
|
|
||||||
- task: NuGetCommand@2
|
- task: NuGetCommand@2
|
||||||
displayName: Publish Packages to AzDO Feed
|
displayName: Publish Packages to AzDO Feed
|
||||||
condition: contains(variables['TargetAzDOFeed'], 'pkgs.visualstudio.com')
|
condition: contains(variables['TargetAzDOFeed'], 'pkgs.visualstudio.com')
|
||||||
|
@ -106,7 +117,7 @@ stages:
|
||||||
displayName: Publish Blobs to AzDO Feed
|
displayName: Publish Blobs to AzDO Feed
|
||||||
inputs:
|
inputs:
|
||||||
filePath: $(Build.SourcesDirectory)/eng/common/post-build/publish-blobs-to-azdo.ps1
|
filePath: $(Build.SourcesDirectory)/eng/common/post-build/publish-blobs-to-azdo.ps1
|
||||||
arguments: -FeedName $(AzDoFeedName)
|
arguments: -FeedName $(AzDoFeedName)
|
||||||
-SourceFolderCollection $(Build.ArtifactStagingDirectory)/BlobArtifacts/
|
-SourceFolderCollection $(Build.ArtifactStagingDirectory)/BlobArtifacts/
|
||||||
-PersonalAccessToken $(dn-bot-dnceng-unviersal-packages-rw)
|
-PersonalAccessToken $(dn-bot-dnceng-unviersal-packages-rw)
|
||||||
enabled: false
|
enabled: false
|
||||||
|
@ -114,11 +125,11 @@ stages:
|
||||||
- template: ../trigger-subscription.yml
|
- template: ../trigger-subscription.yml
|
||||||
parameters:
|
parameters:
|
||||||
ChannelId: ${{ variables.InternalServicing_30_Channel_Id }}
|
ChannelId: ${{ variables.InternalServicing_30_Channel_Id }}
|
||||||
|
|
||||||
- stage: IS_PublishValidation
|
- stage: NetCore_30_Internal_Servicing_Publish_Validation
|
||||||
displayName: Publish Validation
|
displayName: .NET Core 3.0 Internal Servicing Publish Validation
|
||||||
variables:
|
variables:
|
||||||
- template: ../common-variables.yml
|
- template: ../common-variables.yml
|
||||||
jobs:
|
jobs:
|
||||||
- template: ../setup-maestro-vars.yml
|
- template: ../setup-maestro-vars.yml
|
||||||
|
|
||||||
|
@ -126,7 +137,7 @@ stages:
|
||||||
- job:
|
- job:
|
||||||
displayName: Symbol Availability
|
displayName: Symbol Availability
|
||||||
dependsOn: setupMaestroVars
|
dependsOn: setupMaestroVars
|
||||||
condition: contains(dependencies.setupMaestroVars.outputs['setReleaseVars.InitialChannels'], variables.InternalServicing_30_Channel_Id)
|
condition: contains(dependencies.setupMaestroVars.outputs['setReleaseVars.InitialChannels'], format('[{0}]', variables.InternalServicing_30_Channel_Id))
|
||||||
pool:
|
pool:
|
||||||
vmImage: 'windows-2019'
|
vmImage: 'windows-2019'
|
||||||
steps:
|
steps:
|
|
@ -1,40 +1,50 @@
|
||||||
parameters:
|
parameters:
|
||||||
enableSymbolValidation: true
|
enableSymbolValidation: true
|
||||||
|
symbolPublishingAdditionalParameters: ''
|
||||||
|
artifactsPublishingAdditionalParameters: ''
|
||||||
|
|
||||||
stages:
|
stages:
|
||||||
- stage: PubRel_Publish
|
- stage: NetCore_Release30_Publish
|
||||||
dependsOn: validate
|
dependsOn: validate
|
||||||
variables:
|
variables:
|
||||||
- template: ../common-variables.yml
|
- template: ../common-variables.yml
|
||||||
displayName: Public Release
|
displayName: .NET Core 3.0 Release Publishing
|
||||||
jobs:
|
jobs:
|
||||||
- template: ../setup-maestro-vars.yml
|
- template: ../setup-maestro-vars.yml
|
||||||
|
|
||||||
- job:
|
- job:
|
||||||
displayName: Symbol Publishing
|
displayName: Symbol Publishing
|
||||||
dependsOn: setupMaestroVars
|
dependsOn: setupMaestroVars
|
||||||
condition: contains(dependencies.setupMaestroVars.outputs['setReleaseVars.InitialChannels'], variables.PublicRelease_30_Channel_Id)
|
condition: contains(dependencies.setupMaestroVars.outputs['setReleaseVars.InitialChannels'], format('[{0}]', variables.PublicRelease_30_Channel_Id))
|
||||||
variables:
|
variables:
|
||||||
- group: DotNet-Symbol-Server-Pats
|
- group: DotNet-Symbol-Server-Pats
|
||||||
pool:
|
pool:
|
||||||
vmImage: 'windows-2019'
|
vmImage: 'windows-2019'
|
||||||
steps:
|
steps:
|
||||||
- task: DownloadBuildArtifacts@0
|
- task: DownloadBuildArtifacts@0
|
||||||
displayName: Download Artifacts
|
displayName: Download Blob Artifacts
|
||||||
inputs:
|
inputs:
|
||||||
downloadType: specific files
|
artifactName: 'BlobArtifacts'
|
||||||
matchingPattern: "*Artifacts*"
|
continueOnError: true
|
||||||
|
|
||||||
|
- task: DownloadBuildArtifacts@0
|
||||||
|
displayName: Download PDB Artifacts
|
||||||
|
inputs:
|
||||||
|
artifactName: 'PDBArtifacts'
|
||||||
|
continueOnError: true
|
||||||
|
|
||||||
- task: PowerShell@2
|
- task: PowerShell@2
|
||||||
displayName: Publish
|
displayName: Publish
|
||||||
inputs:
|
inputs:
|
||||||
filePath: eng\common\sdk-task.ps1
|
filePath: eng\common\sdk-task.ps1
|
||||||
arguments: -task PublishToSymbolServers -restore -msbuildEngine dotnet
|
arguments: -task PublishToSymbolServers -restore -msbuildEngine dotnet
|
||||||
/p:DotNetSymbolServerTokenMsdl=$(microsoft-symbol-server-pat)
|
/p:DotNetSymbolServerTokenMsdl=$(microsoft-symbol-server-pat)
|
||||||
/p:DotNetSymbolServerTokenSymWeb=$(symweb-symbol-server-pat)
|
/p:DotNetSymbolServerTokenSymWeb=$(symweb-symbol-server-pat)
|
||||||
/p:PDBArtifactsDirectory='$(Build.ArtifactStagingDirectory)/PDBArtifacts/'
|
/p:PDBArtifactsDirectory='$(Build.ArtifactStagingDirectory)/PDBArtifacts/'
|
||||||
/p:BlobBasePath='$(Build.ArtifactStagingDirectory)/BlobArtifacts/'
|
/p:BlobBasePath='$(Build.ArtifactStagingDirectory)/BlobArtifacts/'
|
||||||
|
/p:SymbolPublishingExclusionsFile='$(Build.SourcesDirectory)/eng/SymbolPublishingExclusionsFile.txt'
|
||||||
/p:Configuration=Release
|
/p:Configuration=Release
|
||||||
|
${{ parameters.symbolPublishingAdditionalParameters }}
|
||||||
|
|
||||||
- job: publish_assets
|
- job: publish_assets
|
||||||
displayName: Publish Assets
|
displayName: Publish Assets
|
||||||
|
@ -46,7 +56,7 @@ stages:
|
||||||
value: $[ dependencies.setupMaestroVars.outputs['setReleaseVars.BARBuildId'] ]
|
value: $[ dependencies.setupMaestroVars.outputs['setReleaseVars.BARBuildId'] ]
|
||||||
- name: IsStableBuild
|
- name: IsStableBuild
|
||||||
value: $[ dependencies.setupMaestroVars.outputs['setReleaseVars.IsStableBuild'] ]
|
value: $[ dependencies.setupMaestroVars.outputs['setReleaseVars.IsStableBuild'] ]
|
||||||
condition: contains(dependencies.setupMaestroVars.outputs['setReleaseVars.InitialChannels'], variables.PublicRelease_30_Channel_Id)
|
condition: contains(dependencies.setupMaestroVars.outputs['setReleaseVars.InitialChannels'], format('[{0}]', variables.PublicRelease_30_Channel_Id))
|
||||||
pool:
|
pool:
|
||||||
vmImage: 'windows-2019'
|
vmImage: 'windows-2019'
|
||||||
steps:
|
steps:
|
||||||
|
@ -74,25 +84,27 @@ stages:
|
||||||
AZURE_DEVOPS_EXT_PAT: $(dn-bot-dnceng-unviersal-packages-rw)
|
AZURE_DEVOPS_EXT_PAT: $(dn-bot-dnceng-unviersal-packages-rw)
|
||||||
inputs:
|
inputs:
|
||||||
filePath: eng\common\sdk-task.ps1
|
filePath: eng\common\sdk-task.ps1
|
||||||
arguments: -task PublishArtifactsInManifest -restore -msbuildEngine dotnet
|
arguments: -task PublishArtifactsInManifest -restore -msbuildEngine dotnet
|
||||||
/p:ChannelId=$(PublicRelease_30_Channel_Id)
|
/p:ChannelId=$(PublicRelease_30_Channel_Id)
|
||||||
/p:IsStableBuild=$(IsStableBuild)
|
/p:IsStableBuild=$(IsStableBuild)
|
||||||
/p:IsInternalBuild=$(IsInternalBuild)
|
/p:IsInternalBuild=$(IsInternalBuild)
|
||||||
/p:RepositoryName=$(Build.Repository.Name)
|
/p:RepositoryName=$(Build.Repository.Name)
|
||||||
/p:CommitSha=$(Build.SourceVersion)
|
/p:CommitSha=$(Build.SourceVersion)
|
||||||
|
/p:AzureStorageTargetFeedPAT='$(dotnetfeed-storage-access-key-1)'
|
||||||
/p:AzureStorageAccountName=$(ProxyBackedFeedsAccountName)
|
/p:AzureStorageAccountName=$(ProxyBackedFeedsAccountName)
|
||||||
/p:AzureStorageAccountKey=$(dotnetfeed-storage-access-key-1)
|
/p:AzureStorageAccountKey=$(dotnetfeed-storage-access-key-1)
|
||||||
/p:AzureDevOpsFeedsBaseUrl=$(dotnetfeed-internal-private-feed-url)
|
/p:AzureDevOpsFeedsBaseUrl=$(dotnetfeed-internal-private-feed-url)
|
||||||
/p:StaticInternalFeed=$(dotnetfeed-internal-nonstable-feed-url)
|
/p:StaticInternalFeed=$(dotnetfeed-internal-nonstable-feed-url)
|
||||||
/p:NugetPath=$(Agent.BuildDirectory)\Nuget\NuGet.exe
|
/p:NugetPath=$(Agent.BuildDirectory)\Nuget\NuGet.exe
|
||||||
/p:BARBuildId=$(BARBuildId)
|
/p:BARBuildId=$(BARBuildId)
|
||||||
/p:MaestroApiEndpoint='$(MaestroApiEndPoint)'
|
/p:MaestroApiEndpoint='$(MaestroApiEndPoint)'
|
||||||
/p:BuildAssetRegistryToken='$(MaestroApiAccessToken)'
|
/p:BuildAssetRegistryToken='$(MaestroApiAccessToken)'
|
||||||
/p:ManifestsBasePath='$(Build.ArtifactStagingDirectory)/AssetManifests/'
|
/p:ManifestsBasePath='$(Build.ArtifactStagingDirectory)/AssetManifests/'
|
||||||
/p:BlobBasePath='$(Build.ArtifactStagingDirectory)\BlobArtifacts'
|
/p:BlobBasePath='$(Build.ArtifactStagingDirectory)\BlobArtifacts'
|
||||||
/p:PackageBasePath='$(Build.ArtifactStagingDirectory)\PackageArtifacts'
|
/p:PackageBasePath='$(Build.ArtifactStagingDirectory)\PackageArtifacts'
|
||||||
/p:Configuration=Release
|
/p:Configuration=Release
|
||||||
|
${{ parameters.artifactsPublishingAdditionalParameters }}
|
||||||
|
|
||||||
- task: NuGetCommand@2
|
- task: NuGetCommand@2
|
||||||
displayName: Publish Packages to AzDO Feed
|
displayName: Publish Packages to AzDO Feed
|
||||||
condition: contains(variables['TargetAzDOFeed'], 'pkgs.visualstudio.com')
|
condition: contains(variables['TargetAzDOFeed'], 'pkgs.visualstudio.com')
|
||||||
|
@ -106,7 +118,7 @@ stages:
|
||||||
displayName: Publish Blobs to AzDO Feed
|
displayName: Publish Blobs to AzDO Feed
|
||||||
inputs:
|
inputs:
|
||||||
filePath: $(Build.SourcesDirectory)/eng/common/post-build/publish-blobs-to-azdo.ps1
|
filePath: $(Build.SourcesDirectory)/eng/common/post-build/publish-blobs-to-azdo.ps1
|
||||||
arguments: -FeedName $(AzDoFeedName)
|
arguments: -FeedName $(AzDoFeedName)
|
||||||
-SourceFolderCollection $(Build.ArtifactStagingDirectory)/BlobArtifacts/
|
-SourceFolderCollection $(Build.ArtifactStagingDirectory)/BlobArtifacts/
|
||||||
-PersonalAccessToken $(dn-bot-dnceng-unviersal-packages-rw)
|
-PersonalAccessToken $(dn-bot-dnceng-unviersal-packages-rw)
|
||||||
enabled: false
|
enabled: false
|
||||||
|
@ -115,10 +127,10 @@ stages:
|
||||||
parameters:
|
parameters:
|
||||||
ChannelId: ${{ variables.PublicRelease_30_Channel_Id }}
|
ChannelId: ${{ variables.PublicRelease_30_Channel_Id }}
|
||||||
|
|
||||||
- stage: PubRel_PublishValidation
|
- stage: NetCore_Release30_Publish_Validation
|
||||||
displayName: Publish Validation
|
displayName: .NET Core 3.0 Release Publish Validation
|
||||||
variables:
|
variables:
|
||||||
- template: ../common-variables.yml
|
- template: ../common-variables.yml
|
||||||
jobs:
|
jobs:
|
||||||
- template: ../setup-maestro-vars.yml
|
- template: ../setup-maestro-vars.yml
|
||||||
|
|
||||||
|
@ -126,7 +138,8 @@ stages:
|
||||||
- job:
|
- job:
|
||||||
displayName: Symbol Availability
|
displayName: Symbol Availability
|
||||||
dependsOn: setupMaestroVars
|
dependsOn: setupMaestroVars
|
||||||
condition: contains(dependencies.setupMaestroVars.outputs['setReleaseVars.InitialChannels'], variables.PublicRelease_30_Channel_Id)
|
condition: or(contains(dependencies.setupMaestroVars.outputs['setReleaseVars.InitialChannels'], format('[{0}]', variables.PublicRelease_30_Channel_Id)),
|
||||||
|
contains(dependencies.setupMaestroVars.outputs['setReleaseVars.InitialChannels'], format('[{0}]', variables.PublicRelease_31_Channel_Id)))
|
||||||
pool:
|
pool:
|
||||||
vmImage: 'windows-2019'
|
vmImage: 'windows-2019'
|
||||||
steps:
|
steps:
|
160
eng/common/templates/post-build/channels/netcore-release-31.yml
Normal file
160
eng/common/templates/post-build/channels/netcore-release-31.yml
Normal file
|
@ -0,0 +1,160 @@
|
||||||
|
parameters:
|
||||||
|
enableSymbolValidation: true
|
||||||
|
symbolPublishingAdditionalParameters: ''
|
||||||
|
artifactsPublishingAdditionalParameters: ''
|
||||||
|
|
||||||
|
stages:
|
||||||
|
- stage: NetCore_Release31_Publish
|
||||||
|
dependsOn: validate
|
||||||
|
variables:
|
||||||
|
- template: ../common-variables.yml
|
||||||
|
displayName: .NET Core 3.1 Release Publishing
|
||||||
|
jobs:
|
||||||
|
- template: ../setup-maestro-vars.yml
|
||||||
|
|
||||||
|
- job:
|
||||||
|
displayName: Symbol Publishing
|
||||||
|
dependsOn: setupMaestroVars
|
||||||
|
condition: contains(dependencies.setupMaestroVars.outputs['setReleaseVars.InitialChannels'], format('[{0}]', variables.PublicRelease_31_Channel_Id))
|
||||||
|
variables:
|
||||||
|
- group: DotNet-Symbol-Server-Pats
|
||||||
|
pool:
|
||||||
|
vmImage: 'windows-2019'
|
||||||
|
steps:
|
||||||
|
- task: DownloadBuildArtifacts@0
|
||||||
|
displayName: Download Blob Artifacts
|
||||||
|
inputs:
|
||||||
|
artifactName: 'BlobArtifacts'
|
||||||
|
continueOnError: true
|
||||||
|
|
||||||
|
- task: DownloadBuildArtifacts@0
|
||||||
|
displayName: Download PDB Artifacts
|
||||||
|
inputs:
|
||||||
|
artifactName: 'PDBArtifacts'
|
||||||
|
continueOnError: true
|
||||||
|
|
||||||
|
- task: PowerShell@2
|
||||||
|
displayName: Publish
|
||||||
|
inputs:
|
||||||
|
filePath: eng\common\sdk-task.ps1
|
||||||
|
arguments: -task PublishToSymbolServers -restore -msbuildEngine dotnet
|
||||||
|
/p:DotNetSymbolServerTokenMsdl=$(microsoft-symbol-server-pat)
|
||||||
|
/p:DotNetSymbolServerTokenSymWeb=$(symweb-symbol-server-pat)
|
||||||
|
/p:PDBArtifactsDirectory='$(Build.ArtifactStagingDirectory)/PDBArtifacts/'
|
||||||
|
/p:BlobBasePath='$(Build.ArtifactStagingDirectory)/BlobArtifacts/'
|
||||||
|
/p:SymbolPublishingExclusionsFile='$(Build.SourcesDirectory)/eng/SymbolPublishingExclusionsFile.txt'
|
||||||
|
/p:Configuration=Release
|
||||||
|
${{ parameters.symbolPublishingAdditionalParameters }}
|
||||||
|
|
||||||
|
- job: publish_assets
|
||||||
|
displayName: Publish Assets
|
||||||
|
dependsOn: setupMaestroVars
|
||||||
|
variables:
|
||||||
|
- group: DotNet-Blob-Feed
|
||||||
|
- group: AzureDevOps-Artifact-Feeds-Pats
|
||||||
|
- name: BARBuildId
|
||||||
|
value: $[ dependencies.setupMaestroVars.outputs['setReleaseVars.BARBuildId'] ]
|
||||||
|
- name: IsStableBuild
|
||||||
|
value: $[ dependencies.setupMaestroVars.outputs['setReleaseVars.IsStableBuild'] ]
|
||||||
|
condition: contains(dependencies.setupMaestroVars.outputs['setReleaseVars.InitialChannels'], format('[{0}]', variables.PublicRelease_31_Channel_Id))
|
||||||
|
pool:
|
||||||
|
vmImage: 'windows-2019'
|
||||||
|
steps:
|
||||||
|
- task: DownloadBuildArtifacts@0
|
||||||
|
displayName: Download Package Artifacts
|
||||||
|
inputs:
|
||||||
|
buildType: current
|
||||||
|
artifactName: PackageArtifacts
|
||||||
|
|
||||||
|
- task: DownloadBuildArtifacts@0
|
||||||
|
displayName: Download Blob Artifacts
|
||||||
|
inputs:
|
||||||
|
buildType: current
|
||||||
|
artifactName: BlobArtifacts
|
||||||
|
|
||||||
|
- task: DownloadBuildArtifacts@0
|
||||||
|
displayName: Download Asset Manifests
|
||||||
|
inputs:
|
||||||
|
buildType: current
|
||||||
|
artifactName: AssetManifests
|
||||||
|
|
||||||
|
- task: PowerShell@2
|
||||||
|
displayName: Publish
|
||||||
|
env:
|
||||||
|
AZURE_DEVOPS_EXT_PAT: $(dn-bot-dnceng-unviersal-packages-rw)
|
||||||
|
inputs:
|
||||||
|
filePath: eng\common\sdk-task.ps1
|
||||||
|
arguments: -task PublishArtifactsInManifest -restore -msbuildEngine dotnet
|
||||||
|
/p:ChannelId=$(PublicRelease_31_Channel_Id)
|
||||||
|
/p:IsStableBuild=$(IsStableBuild)
|
||||||
|
/p:IsInternalBuild=$(IsInternalBuild)
|
||||||
|
/p:RepositoryName=$(Build.Repository.Name)
|
||||||
|
/p:CommitSha=$(Build.SourceVersion)
|
||||||
|
/p:AzureStorageTargetFeedPAT='$(dotnetfeed-storage-access-key-1)'
|
||||||
|
/p:AzureStorageAccountName=$(ProxyBackedFeedsAccountName)
|
||||||
|
/p:AzureStorageAccountKey=$(dotnetfeed-storage-access-key-1)
|
||||||
|
/p:AzureDevOpsFeedsBaseUrl=$(dotnetfeed-internal-private-feed-url)
|
||||||
|
/p:StaticInternalFeed=$(dotnetfeed-internal-nonstable-feed-url)
|
||||||
|
/p:NugetPath=$(Agent.BuildDirectory)\Nuget\NuGet.exe
|
||||||
|
/p:BARBuildId=$(BARBuildId)
|
||||||
|
/p:MaestroApiEndpoint='$(MaestroApiEndPoint)'
|
||||||
|
/p:BuildAssetRegistryToken='$(MaestroApiAccessToken)'
|
||||||
|
/p:ManifestsBasePath='$(Build.ArtifactStagingDirectory)/AssetManifests/'
|
||||||
|
/p:BlobBasePath='$(Build.ArtifactStagingDirectory)\BlobArtifacts'
|
||||||
|
/p:PackageBasePath='$(Build.ArtifactStagingDirectory)\PackageArtifacts'
|
||||||
|
/p:Configuration=Release
|
||||||
|
${{ parameters.artifactsPublishingAdditionalParameters }}
|
||||||
|
|
||||||
|
- task: NuGetCommand@2
|
||||||
|
displayName: Publish Packages to AzDO Feed
|
||||||
|
condition: contains(variables['TargetAzDOFeed'], 'pkgs.visualstudio.com')
|
||||||
|
inputs:
|
||||||
|
command: push
|
||||||
|
vstsFeed: $(AzDoFeedName)
|
||||||
|
packagesToPush: $(Build.ArtifactStagingDirectory)\PackageArtifacts\*.nupkg
|
||||||
|
publishVstsFeed: $(AzDoFeedName)
|
||||||
|
|
||||||
|
- task: PowerShell@2
|
||||||
|
displayName: Publish Blobs to AzDO Feed
|
||||||
|
inputs:
|
||||||
|
filePath: $(Build.SourcesDirectory)/eng/common/post-build/publish-blobs-to-azdo.ps1
|
||||||
|
arguments: -FeedName $(AzDoFeedName)
|
||||||
|
-SourceFolderCollection $(Build.ArtifactStagingDirectory)/BlobArtifacts/
|
||||||
|
-PersonalAccessToken $(dn-bot-dnceng-unviersal-packages-rw)
|
||||||
|
enabled: false
|
||||||
|
|
||||||
|
- template: ../trigger-subscription.yml
|
||||||
|
parameters:
|
||||||
|
ChannelId: ${{ variables.PublicRelease_31_Channel_Id }}
|
||||||
|
|
||||||
|
- stage: NetCore_Release31_Publish_Validation
|
||||||
|
displayName: .NET Core 3.1 Release Publish Validation
|
||||||
|
variables:
|
||||||
|
- template: ../common-variables.yml
|
||||||
|
jobs:
|
||||||
|
- template: ../setup-maestro-vars.yml
|
||||||
|
|
||||||
|
- ${{ if eq(parameters.enableSymbolValidation, 'true') }}:
|
||||||
|
- job:
|
||||||
|
displayName: Symbol Availability
|
||||||
|
dependsOn: setupMaestroVars
|
||||||
|
condition: or(contains(dependencies.setupMaestroVars.outputs['setReleaseVars.InitialChannels'], format('[{0}]', variables.PublicRelease_31_Channel_Id)),
|
||||||
|
contains(dependencies.setupMaestroVars.outputs['setReleaseVars.InitialChannels'], format('[{0}]', variables.PublicRelease_31_Channel_Id)))
|
||||||
|
pool:
|
||||||
|
vmImage: 'windows-2019'
|
||||||
|
steps:
|
||||||
|
- task: DownloadBuildArtifacts@0
|
||||||
|
displayName: Download Package Artifacts
|
||||||
|
inputs:
|
||||||
|
buildType: current
|
||||||
|
artifactName: PackageArtifacts
|
||||||
|
|
||||||
|
- task: PowerShell@2
|
||||||
|
displayName: Check Symbol Availability
|
||||||
|
inputs:
|
||||||
|
filePath: $(Build.SourcesDirectory)/eng/common/post-build/symbols-validation.ps1
|
||||||
|
arguments: -InputPath $(Build.ArtifactStagingDirectory)/PackageArtifacts/ -ExtractPath $(Agent.BuildDirectory)/Temp/ -DotnetSymbolVersion $(SymbolToolVersion)
|
||||||
|
|
||||||
|
- template: ../promote-build.yml
|
||||||
|
parameters:
|
||||||
|
ChannelId: ${{ variables.PublicRelease_31_Channel_Id }}
|
|
@ -0,0 +1,172 @@
|
||||||
|
parameters:
|
||||||
|
enableSymbolValidation: true
|
||||||
|
symbolPublishingAdditionalParameters: ''
|
||||||
|
artifactsPublishingAdditionalParameters: ''
|
||||||
|
publishInstallersAndChecksums: false
|
||||||
|
publishToAzureDevOpsFeeds: false
|
||||||
|
azureDevOpsToolsFeed: 'https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-tools/nuget/v3/index.json'
|
||||||
|
|
||||||
|
stages:
|
||||||
|
- stage: NetCore_Tools_Latest_Publish
|
||||||
|
dependsOn: validate
|
||||||
|
variables:
|
||||||
|
- template: ../common-variables.yml
|
||||||
|
displayName: .NET Tools - Latest Publishing
|
||||||
|
jobs:
|
||||||
|
- template: ../setup-maestro-vars.yml
|
||||||
|
|
||||||
|
- job:
|
||||||
|
displayName: Symbol Publishing
|
||||||
|
dependsOn: setupMaestroVars
|
||||||
|
condition: contains(dependencies.setupMaestroVars.outputs['setReleaseVars.InitialChannels'], format('[{0}]', variables.NetCore_Tools_Latest_Channel_Id))
|
||||||
|
variables:
|
||||||
|
- group: DotNet-Symbol-Server-Pats
|
||||||
|
pool:
|
||||||
|
vmImage: 'windows-2019'
|
||||||
|
steps:
|
||||||
|
- task: DownloadBuildArtifacts@0
|
||||||
|
displayName: Download Blob Artifacts
|
||||||
|
inputs:
|
||||||
|
artifactName: 'BlobArtifacts'
|
||||||
|
continueOnError: true
|
||||||
|
|
||||||
|
- task: DownloadBuildArtifacts@0
|
||||||
|
displayName: Download PDB Artifacts
|
||||||
|
inputs:
|
||||||
|
artifactName: 'PDBArtifacts'
|
||||||
|
continueOnError: true
|
||||||
|
|
||||||
|
- task: PowerShell@2
|
||||||
|
displayName: Publish
|
||||||
|
inputs:
|
||||||
|
filePath: eng\common\sdk-task.ps1
|
||||||
|
arguments: -task PublishToSymbolServers -restore -msbuildEngine dotnet
|
||||||
|
/p:DotNetSymbolServerTokenMsdl=$(microsoft-symbol-server-pat)
|
||||||
|
/p:DotNetSymbolServerTokenSymWeb=$(symweb-symbol-server-pat)
|
||||||
|
/p:PDBArtifactsDirectory='$(Build.ArtifactStagingDirectory)/PDBArtifacts/'
|
||||||
|
/p:BlobBasePath='$(Build.ArtifactStagingDirectory)/BlobArtifacts/'
|
||||||
|
/p:SymbolPublishingExclusionsFile='$(Build.SourcesDirectory)/eng/SymbolPublishingExclusionsFile.txt'
|
||||||
|
/p:Configuration=Release
|
||||||
|
${{ parameters.symbolPublishingAdditionalParameters }}
|
||||||
|
|
||||||
|
- job:
|
||||||
|
displayName: Publish Assets
|
||||||
|
dependsOn: setupMaestroVars
|
||||||
|
variables:
|
||||||
|
- group: DotNet-Blob-Feed
|
||||||
|
- group: AzureDevOps-Artifact-Feeds-Pats
|
||||||
|
- name: BARBuildId
|
||||||
|
value: $[ dependencies.setupMaestroVars.outputs['setReleaseVars.BARBuildId'] ]
|
||||||
|
- name: IsStableBuild
|
||||||
|
value: $[ dependencies.setupMaestroVars.outputs['setReleaseVars.IsStableBuild'] ]
|
||||||
|
condition: contains(dependencies.setupMaestroVars.outputs['setReleaseVars.InitialChannels'], format('[{0}]', variables.NetCore_Tools_Latest_Channel_Id))
|
||||||
|
pool:
|
||||||
|
vmImage: 'windows-2019'
|
||||||
|
steps:
|
||||||
|
- task: DownloadBuildArtifacts@0
|
||||||
|
displayName: Download Package Artifacts
|
||||||
|
inputs:
|
||||||
|
buildType: current
|
||||||
|
artifactName: PackageArtifacts
|
||||||
|
|
||||||
|
- task: DownloadBuildArtifacts@0
|
||||||
|
displayName: Download Blob Artifacts
|
||||||
|
inputs:
|
||||||
|
buildType: current
|
||||||
|
artifactName: BlobArtifacts
|
||||||
|
|
||||||
|
- task: DownloadBuildArtifacts@0
|
||||||
|
displayName: Download Asset Manifests
|
||||||
|
inputs:
|
||||||
|
buildType: current
|
||||||
|
artifactName: AssetManifests
|
||||||
|
|
||||||
|
- task: PowerShell@2
|
||||||
|
displayName: Add Assets Location
|
||||||
|
env:
|
||||||
|
AZURE_DEVOPS_EXT_PAT: $(dn-bot-dnceng-unviersal-packages-rw)
|
||||||
|
inputs:
|
||||||
|
filePath: eng\common\sdk-task.ps1
|
||||||
|
arguments: -task PublishArtifactsInManifest -restore -msbuildEngine dotnet
|
||||||
|
/p:ChannelId=$(NetCore_Tools_Latest_Channel_Id)
|
||||||
|
/p:ArtifactsCategory=$(_DotNetArtifactsCategory)
|
||||||
|
/p:IsStableBuild=$(IsStableBuild)
|
||||||
|
/p:IsInternalBuild=$(IsInternalBuild)
|
||||||
|
/p:RepositoryName=$(Build.Repository.Name)
|
||||||
|
/p:CommitSha=$(Build.SourceVersion)
|
||||||
|
/p:NugetPath=$(Agent.BuildDirectory)\Nuget\NuGet.exe
|
||||||
|
/p:AzdoTargetFeedPAT='$(dn-bot-dnceng-unviersal-packages-rw)'
|
||||||
|
/p:TargetFeedPAT='$(dn-bot-dnceng-unviersal-packages-rw)'
|
||||||
|
/p:AzureStorageTargetFeedPAT='$(dotnetfeed-storage-access-key-1)'
|
||||||
|
/p:BARBuildId=$(BARBuildId)
|
||||||
|
/p:MaestroApiEndpoint='$(MaestroApiEndPoint)'
|
||||||
|
/p:BuildAssetRegistryToken='$(MaestroApiAccessToken)'
|
||||||
|
/p:ManifestsBasePath='$(Build.ArtifactStagingDirectory)/AssetManifests/'
|
||||||
|
/p:BlobBasePath='$(Build.ArtifactStagingDirectory)/BlobArtifacts/'
|
||||||
|
/p:PackageBasePath='$(Build.ArtifactStagingDirectory)/PackageArtifacts/'
|
||||||
|
/p:Configuration=Release
|
||||||
|
/p:InstallersTargetStaticFeed=$(InstallersBlobFeedUrl)
|
||||||
|
/p:PublishInstallersAndChecksums=${{ parameters.publishInstallersAndChecksums }}
|
||||||
|
/p:InstallersAzureAccountKey=$(dotnetcli-storage-key)
|
||||||
|
/p:ChecksumsTargetStaticFeed=$(ChecksumsBlobFeedUrl)
|
||||||
|
/p:ChecksumsAzureAccountKey=$(dotnetclichecksums-storage-key)
|
||||||
|
/p:PublishToAzureDevOpsNuGetFeeds=${{ parameters.publishToAzureDevOpsFeeds }}
|
||||||
|
/p:AzureDevOpsStaticShippingFeed=${{ parameters.azureDevOpsToolsFeed }}
|
||||||
|
/p:AzureDevOpsStaticShippingFeedKey='$(dn-bot-dnceng-artifact-feeds-rw)'
|
||||||
|
/p:AzureDevOpsStaticTransportFeed=${{ parameters.azureDevOpsToolsFeed }}
|
||||||
|
/p:AzureDevOpsStaticTransportFeedKey='$(dn-bot-dnceng-artifact-feeds-rw)
|
||||||
|
${{ parameters.artifactsPublishingAdditionalParameters }}
|
||||||
|
|
||||||
|
- task: NuGetCommand@2
|
||||||
|
displayName: Publish Packages to AzDO Feed
|
||||||
|
condition: contains(variables['TargetAzDOFeed'], 'pkgs.visualstudio.com')
|
||||||
|
inputs:
|
||||||
|
command: push
|
||||||
|
vstsFeed: $(AzDoFeedName)
|
||||||
|
packagesToPush: $(Build.ArtifactStagingDirectory)\PackageArtifacts\*.nupkg
|
||||||
|
publishVstsFeed: $(AzDoFeedName)
|
||||||
|
|
||||||
|
- task: PowerShell@2
|
||||||
|
displayName: Publish Blobs to AzDO Feed
|
||||||
|
inputs:
|
||||||
|
filePath: $(Build.SourcesDirectory)/eng/common/post-build/publish-blobs-to-azdo.ps1
|
||||||
|
arguments: -FeedName $(AzDoFeedName)
|
||||||
|
-SourceFolderCollection $(Build.ArtifactStagingDirectory)/BlobArtifacts/
|
||||||
|
-PersonalAccessToken $(dn-bot-dnceng-unviersal-packages-rw)
|
||||||
|
enabled: false
|
||||||
|
|
||||||
|
|
||||||
|
- stage: NetCore_Tools_Latest_PublishValidation
|
||||||
|
displayName: .NET Tools - Latest Publish Validation
|
||||||
|
variables:
|
||||||
|
- template: ../common-variables.yml
|
||||||
|
jobs:
|
||||||
|
- template: ../setup-maestro-vars.yml
|
||||||
|
|
||||||
|
- ${{ if eq(parameters.enableSymbolValidation, 'true') }}:
|
||||||
|
- job:
|
||||||
|
displayName: Symbol Availability
|
||||||
|
dependsOn: setupMaestroVars
|
||||||
|
condition: contains(dependencies.setupMaestroVars.outputs['setReleaseVars.InitialChannels'], format('[{0}]', variables.NetCore_Tools_Latest_Channel_Id))
|
||||||
|
pool:
|
||||||
|
vmImage: 'windows-2019'
|
||||||
|
steps:
|
||||||
|
- task: DownloadBuildArtifacts@0
|
||||||
|
displayName: Download Package Artifacts
|
||||||
|
inputs:
|
||||||
|
buildType: current
|
||||||
|
artifactName: PackageArtifacts
|
||||||
|
|
||||||
|
- task: PowerShell@2
|
||||||
|
displayName: Check Symbol Availability
|
||||||
|
inputs:
|
||||||
|
filePath: $(Build.SourcesDirectory)/eng/common/post-build/symbols-validation.ps1
|
||||||
|
arguments: -InputPath $(Build.ArtifactStagingDirectory)/PackageArtifacts/ -ExtractPath $(Agent.BuildDirectory)/Temp/ -DotnetSymbolVersion $(SymbolToolVersion)
|
||||||
|
|
||||||
|
- template: ../darc-gather-drop.yml
|
||||||
|
parameters:
|
||||||
|
ChannelId: ${{ variables.NetCore_Tools_Latest_Channel_Id }}
|
||||||
|
|
||||||
|
- template: ../promote-build.yml
|
||||||
|
parameters:
|
||||||
|
ChannelId: ${{ variables.NetCore_Tools_Latest_Channel_Id }}
|
|
@ -1,9 +1,15 @@
|
||||||
|
parameters:
|
||||||
|
artifactsPublishingAdditionalParameters: ''
|
||||||
|
publishInstallersAndChecksums: false
|
||||||
|
publishToAzureDevOpsFeeds: false
|
||||||
|
azureDevOpsToolsFeed: 'https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-tools/nuget/v3/index.json'
|
||||||
|
|
||||||
stages:
|
stages:
|
||||||
- stage: PVR_Publish
|
- stage: PVR_Publish
|
||||||
dependsOn: validate
|
dependsOn: validate
|
||||||
variables:
|
variables:
|
||||||
- template: ../common-variables.yml
|
- template: ../common-variables.yml
|
||||||
displayName: Validation Channel
|
displayName: .NET Tools - Validation Publishing
|
||||||
jobs:
|
jobs:
|
||||||
- template: ../setup-maestro-vars.yml
|
- template: ../setup-maestro-vars.yml
|
||||||
|
|
||||||
|
@ -17,7 +23,7 @@ stages:
|
||||||
value: $[ dependencies.setupMaestroVars.outputs['setReleaseVars.BARBuildId'] ]
|
value: $[ dependencies.setupMaestroVars.outputs['setReleaseVars.BARBuildId'] ]
|
||||||
- name: IsStableBuild
|
- name: IsStableBuild
|
||||||
value: $[ dependencies.setupMaestroVars.outputs['setReleaseVars.IsStableBuild'] ]
|
value: $[ dependencies.setupMaestroVars.outputs['setReleaseVars.IsStableBuild'] ]
|
||||||
condition: contains(dependencies.setupMaestroVars.outputs['setReleaseVars.InitialChannels'], variables.PublicValidationRelease_30_Channel_Id)
|
condition: contains(dependencies.setupMaestroVars.outputs['setReleaseVars.InitialChannels'], format('[{0}]', variables.PublicValidationRelease_30_Channel_Id))
|
||||||
pool:
|
pool:
|
||||||
vmImage: 'windows-2019'
|
vmImage: 'windows-2019'
|
||||||
steps:
|
steps:
|
||||||
|
@ -45,7 +51,7 @@ stages:
|
||||||
AZURE_DEVOPS_EXT_PAT: $(dn-bot-dnceng-unviersal-packages-rw)
|
AZURE_DEVOPS_EXT_PAT: $(dn-bot-dnceng-unviersal-packages-rw)
|
||||||
inputs:
|
inputs:
|
||||||
filePath: eng\common\sdk-task.ps1
|
filePath: eng\common\sdk-task.ps1
|
||||||
arguments: -task PublishArtifactsInManifest -restore -msbuildEngine dotnet
|
arguments: -task PublishArtifactsInManifest -restore -msbuildEngine dotnet
|
||||||
/p:ChannelId=$(PublicValidationRelease_30_Channel_Id)
|
/p:ChannelId=$(PublicValidationRelease_30_Channel_Id)
|
||||||
/p:ArtifactsCategory=$(_DotNetValidationArtifactsCategory)
|
/p:ArtifactsCategory=$(_DotNetValidationArtifactsCategory)
|
||||||
/p:IsStableBuild=$(IsStableBuild)
|
/p:IsStableBuild=$(IsStableBuild)
|
||||||
|
@ -53,16 +59,27 @@ stages:
|
||||||
/p:RepositoryName=$(Build.Repository.Name)
|
/p:RepositoryName=$(Build.Repository.Name)
|
||||||
/p:CommitSha=$(Build.SourceVersion)
|
/p:CommitSha=$(Build.SourceVersion)
|
||||||
/p:NugetPath=$(Agent.BuildDirectory)\Nuget\NuGet.exe
|
/p:NugetPath=$(Agent.BuildDirectory)\Nuget\NuGet.exe
|
||||||
/p:AzdoTargetFeedPAT='$(dn-bot-dnceng-unviersal-packages-rw)'
|
/p:AzdoTargetFeedPAT='$(dn-bot-dnceng-unviersal-packages-rw)'
|
||||||
/p:TargetFeedPAT='$(dn-bot-dnceng-unviersal-packages-rw)'
|
/p:TargetFeedPAT='$(dn-bot-dnceng-unviersal-packages-rw)'
|
||||||
/p:AzureStorageTargetFeedPAT='$(dotnetfeed-storage-access-key-1)'
|
/p:AzureStorageTargetFeedPAT='$(dotnetfeed-storage-access-key-1)'
|
||||||
/p:BARBuildId=$(BARBuildId)
|
/p:BARBuildId=$(BARBuildId)
|
||||||
/p:MaestroApiEndpoint='$(MaestroApiEndPoint)'
|
/p:MaestroApiEndpoint='$(MaestroApiEndPoint)'
|
||||||
/p:BuildAssetRegistryToken='$(MaestroApiAccessToken)'
|
/p:BuildAssetRegistryToken='$(MaestroApiAccessToken)'
|
||||||
/p:ManifestsBasePath='$(Build.ArtifactStagingDirectory)/AssetManifests/'
|
/p:ManifestsBasePath='$(Build.ArtifactStagingDirectory)/AssetManifests/'
|
||||||
/p:BlobBasePath='$(Build.ArtifactStagingDirectory)\BlobArtifacts'
|
/p:BlobBasePath='$(Build.ArtifactStagingDirectory)\BlobArtifacts'
|
||||||
/p:PackageBasePath='$(Build.ArtifactStagingDirectory)\PackageArtifacts'
|
/p:PackageBasePath='$(Build.ArtifactStagingDirectory)\PackageArtifacts'
|
||||||
/p:Configuration=Release
|
/p:Configuration=Release
|
||||||
|
/p:InstallersTargetStaticFeed=$(InstallersBlobFeedUrl)
|
||||||
|
/p:InstallersAzureAccountKey=$(dotnetcli-storage-key)
|
||||||
|
/p:PublishInstallersAndChecksums=${{ parameters.publishInstallersAndChecksums }}
|
||||||
|
/p:ChecksumsTargetStaticFeed=$(ChecksumsBlobFeedUrl)
|
||||||
|
/p:ChecksumsAzureAccountKey=$(dotnetclichecksums-storage-key)
|
||||||
|
/p:PublishToAzureDevOpsNuGetFeeds=${{ parameters.publishToAzureDevOpsFeeds }}
|
||||||
|
/p:AzureDevOpsStaticShippingFeed=${{ parameters.azureDevOpsToolsFeed }}
|
||||||
|
/p:AzureDevOpsStaticShippingFeedKey='$(dn-bot-dnceng-artifact-feeds-rw)'
|
||||||
|
/p:AzureDevOpsStaticTransportFeed=${{ parameters.azureDevOpsToolsFeed }}
|
||||||
|
/p:AzureDevOpsStaticTransportFeedKey='$(dn-bot-dnceng-artifact-feeds-rw)'
|
||||||
|
${{ parameters.artifactsPublishingAdditionalParameters }}
|
||||||
|
|
||||||
- task: NuGetCommand@2
|
- task: NuGetCommand@2
|
||||||
displayName: Publish Packages to AzDO Feed
|
displayName: Publish Packages to AzDO Feed
|
||||||
|
@ -77,14 +94,14 @@ stages:
|
||||||
displayName: Publish Blobs to AzDO Feed
|
displayName: Publish Blobs to AzDO Feed
|
||||||
inputs:
|
inputs:
|
||||||
filePath: $(Build.SourcesDirectory)/eng/common/post-build/publish-blobs-to-azdo.ps1
|
filePath: $(Build.SourcesDirectory)/eng/common/post-build/publish-blobs-to-azdo.ps1
|
||||||
arguments: -FeedName $(AzDoFeedName)
|
arguments: -FeedName $(AzDoFeedName)
|
||||||
-SourceFolderCollection $(Build.ArtifactStagingDirectory)/BlobArtifacts/
|
-SourceFolderCollection $(Build.ArtifactStagingDirectory)/BlobArtifacts/
|
||||||
-PersonalAccessToken $(dn-bot-dnceng-unviersal-packages-rw)
|
-PersonalAccessToken $(dn-bot-dnceng-unviersal-packages-rw)
|
||||||
enabled: false
|
enabled: false
|
||||||
|
|
||||||
|
|
||||||
- stage: PVR_PublishValidation
|
- stage: PVR_PublishValidation
|
||||||
displayName: Publish Validation
|
displayName: .NET Tools - Validation Publish Validation
|
||||||
variables:
|
variables:
|
||||||
- template: ../common-variables.yml
|
- template: ../common-variables.yml
|
||||||
jobs:
|
jobs:
|
||||||
|
@ -94,6 +111,6 @@ stages:
|
||||||
parameters:
|
parameters:
|
||||||
ChannelId: ${{ variables.PublicValidationRelease_30_Channel_Id }}
|
ChannelId: ${{ variables.PublicValidationRelease_30_Channel_Id }}
|
||||||
|
|
||||||
- template: ../promote-build.yml
|
- template: ../promote-build.yml
|
||||||
parameters:
|
parameters:
|
||||||
ChannelId: ${{ variables.PublicValidationRelease_30_Channel_Id }}
|
ChannelId: ${{ variables.PublicValidationRelease_30_Channel_Id }}
|
||||||
|
|
|
@ -1,14 +1,27 @@
|
||||||
variables:
|
variables:
|
||||||
- group: Publish-Build-Assets
|
- group: Publish-Build-Assets
|
||||||
|
- group: DotNet-DotNetCli-Storage
|
||||||
|
|
||||||
# .NET Core 3 Dev
|
# .NET Core 3 Dev
|
||||||
- name: PublicDevRelease_30_Channel_Id
|
- name: PublicDevRelease_30_Channel_Id
|
||||||
value: 3
|
value: 3
|
||||||
|
|
||||||
|
# .NET Core 3.1 Dev
|
||||||
|
- name: PublicDevRelease_31_Channel_Id
|
||||||
|
value: 260
|
||||||
|
|
||||||
|
# .NET Core 5 Dev
|
||||||
|
- name: NetCore_5_Dev_Channel_Id
|
||||||
|
value: 131
|
||||||
|
|
||||||
# .NET Tools - Validation
|
# .NET Tools - Validation
|
||||||
- name: PublicValidationRelease_30_Channel_Id
|
- name: PublicValidationRelease_30_Channel_Id
|
||||||
value: 9
|
value: 9
|
||||||
|
|
||||||
|
# .NET Tools - Latest
|
||||||
|
- name: NetCore_Tools_Latest_Channel_Id
|
||||||
|
value: 2
|
||||||
|
|
||||||
# .NET Core 3.0 Internal Servicing
|
# .NET Core 3.0 Internal Servicing
|
||||||
- name: InternalServicing_30_Channel_Id
|
- name: InternalServicing_30_Channel_Id
|
||||||
value: 184
|
value: 184
|
||||||
|
@ -17,6 +30,10 @@ variables:
|
||||||
- name: PublicRelease_30_Channel_Id
|
- name: PublicRelease_30_Channel_Id
|
||||||
value: 19
|
value: 19
|
||||||
|
|
||||||
|
# .NET Core 3.1 Release
|
||||||
|
- name: PublicRelease_31_Channel_Id
|
||||||
|
value: 129
|
||||||
|
|
||||||
# Whether the build is internal or not
|
# Whether the build is internal or not
|
||||||
- name: IsInternalBuild
|
- name: IsInternalBuild
|
||||||
value: ${{ and(ne(variables['System.TeamProject'], 'public'), contains(variables['Build.SourceBranch'], 'internal')) }}
|
value: ${{ and(ne(variables['System.TeamProject'], 'public'), contains(variables['Build.SourceBranch'], 'internal')) }}
|
||||||
|
@ -37,3 +54,9 @@ variables:
|
||||||
value: 3.0.0
|
value: 3.0.0
|
||||||
- name: SymbolToolVersion
|
- name: SymbolToolVersion
|
||||||
value: 1.0.1
|
value: 1.0.1
|
||||||
|
|
||||||
|
# Default locations for Installers and checksums
|
||||||
|
- name: ChecksumsBlobFeedUrl
|
||||||
|
value: https://dotnetclichecksums.blob.core.windows.net/dotnet/index.json
|
||||||
|
- name: InstallersBlobFeedUrl
|
||||||
|
value: https://dotnetcli.blob.core.windows.net/dotnet/index.json
|
||||||
|
|
|
@ -5,7 +5,7 @@ jobs:
|
||||||
- job: gatherDrop
|
- job: gatherDrop
|
||||||
displayName: Gather Drop
|
displayName: Gather Drop
|
||||||
dependsOn: setupMaestroVars
|
dependsOn: setupMaestroVars
|
||||||
condition: contains(dependencies.setupMaestroVars.outputs['setReleaseVars.InitialChannels'], ${{ parameters.ChannelId }})
|
condition: contains(dependencies.setupMaestroVars.outputs['setReleaseVars.InitialChannels'], format('[{0}]', ${{ parameters.ChannelId }}))
|
||||||
variables:
|
variables:
|
||||||
- name: BARBuildId
|
- name: BARBuildId
|
||||||
value: $[ dependencies.setupMaestroVars.outputs['setReleaseVars.BARBuildId'] ]
|
value: $[ dependencies.setupMaestroVars.outputs['setReleaseVars.BARBuildId'] ]
|
||||||
|
|
|
@ -1,12 +1,21 @@
|
||||||
parameters:
|
parameters:
|
||||||
enableSourceLinkValidation: true
|
enableSourceLinkValidation: false
|
||||||
enableSigningValidation: true
|
enableSigningValidation: true
|
||||||
enableSymbolValidation: true
|
enableSymbolValidation: false
|
||||||
enableNugetValidation: true
|
enableNugetValidation: true
|
||||||
|
publishInstallersAndChecksums: false
|
||||||
|
enableAzDONuGetFeeds: true
|
||||||
SDLValidationParameters:
|
SDLValidationParameters:
|
||||||
enable: false
|
enable: false
|
||||||
|
continueOnError: false
|
||||||
params: ''
|
params: ''
|
||||||
|
|
||||||
|
# These parameters let the user customize the call to sdk-task.ps1 for publishing
|
||||||
|
# symbols & general artifacts as well as for signing validation
|
||||||
|
symbolPublishingAdditionalParameters: ''
|
||||||
|
artifactsPublishingAdditionalParameters: ''
|
||||||
|
signingValidationAdditionalParameters: ''
|
||||||
|
|
||||||
# Which stages should finish execution before post-build stages start
|
# Which stages should finish execution before post-build stages start
|
||||||
dependsOn: [build]
|
dependsOn: [build]
|
||||||
|
|
||||||
|
@ -52,7 +61,9 @@ stages:
|
||||||
filePath: eng\common\sdk-task.ps1
|
filePath: eng\common\sdk-task.ps1
|
||||||
arguments: -task SigningValidation -restore -msbuildEngine dotnet
|
arguments: -task SigningValidation -restore -msbuildEngine dotnet
|
||||||
/p:PackageBasePath='$(Build.ArtifactStagingDirectory)/PackageArtifacts'
|
/p:PackageBasePath='$(Build.ArtifactStagingDirectory)/PackageArtifacts'
|
||||||
/p:Configuration=Release
|
/p:SignCheckExclusionsFile='$(Build.SourcesDirectory)/eng/SignCheckExclusionsFile.txt'
|
||||||
|
/p:Configuration=Release
|
||||||
|
${{ parameters.signingValidationAdditionalParameters }}
|
||||||
|
|
||||||
- ${{ if eq(parameters.enableSourceLinkValidation, 'true') }}:
|
- ${{ if eq(parameters.enableSourceLinkValidation, 'true') }}:
|
||||||
- job:
|
- job:
|
||||||
|
@ -77,18 +88,60 @@ stages:
|
||||||
-GHRepoName $(Build.Repository.Name)
|
-GHRepoName $(Build.Repository.Name)
|
||||||
-GHCommit $(Build.SourceVersion)
|
-GHCommit $(Build.SourceVersion)
|
||||||
-SourcelinkCliVersion $(SourceLinkCLIVersion)
|
-SourcelinkCliVersion $(SourceLinkCLIVersion)
|
||||||
|
continueOnError: true
|
||||||
|
|
||||||
- ${{ if eq(parameters.SDLValidationParameters.enable, 'true') }}:
|
- ${{ if eq(parameters.SDLValidationParameters.enable, 'true') }}:
|
||||||
- template: /eng/common/templates/job/execute-sdl.yml
|
- template: /eng/common/templates/job/execute-sdl.yml
|
||||||
parameters:
|
parameters:
|
||||||
additionalParameters: ${{ parameters.SDLValidationParameters.params }}
|
additionalParameters: ${{ parameters.SDLValidationParameters.params }}
|
||||||
|
continueOnError: ${{ parameters.SDLValidationParameters.continueOnError }}
|
||||||
|
|
||||||
- template: \eng\common\templates\post-build\channels\public-dev-release.yml
|
- template: \eng\common\templates\post-build\channels\netcore-dev-5.yml
|
||||||
parameters:
|
parameters:
|
||||||
enableSymbolValidation: ${{ parameters.enableSymbolValidation }}
|
enableSymbolValidation: ${{ parameters.enableSymbolValidation }}
|
||||||
|
symbolPublishingAdditionalParameters: ${{ parameters.symbolPublishingAdditionalParameters }}
|
||||||
|
artifactsPublishingAdditionalParameters: ${{ parameters.artifactsPublishingAdditionalParameters }}
|
||||||
|
publishInstallersAndChecksums: ${{ parameters.publishInstallersAndChecksums }}
|
||||||
|
|
||||||
|
- template: \eng\common\templates\post-build\channels\netcore-dev-30.yml
|
||||||
|
parameters:
|
||||||
|
enableSymbolValidation: ${{ parameters.enableSymbolValidation }}
|
||||||
|
symbolPublishingAdditionalParameters: ${{ parameters.symbolPublishingAdditionalParameters }}
|
||||||
|
artifactsPublishingAdditionalParameters: ${{ parameters.artifactsPublishingAdditionalParameters }}
|
||||||
|
publishInstallersAndChecksums: ${{ parameters.publishInstallersAndChecksums }}
|
||||||
|
|
||||||
|
- template: \eng\common\templates\post-build\channels\netcore-dev-31.yml
|
||||||
|
parameters:
|
||||||
|
enableSymbolValidation: ${{ parameters.enableSymbolValidation }}
|
||||||
|
symbolPublishingAdditionalParameters: ${{ parameters.symbolPublishingAdditionalParameters }}
|
||||||
|
artifactsPublishingAdditionalParameters: ${{ parameters.artifactsPublishingAdditionalParameters }}
|
||||||
|
publishInstallersAndChecksums: ${{ parameters.publishInstallersAndChecksums }}
|
||||||
|
|
||||||
|
- template: \eng\common\templates\post-build\channels\netcore-tools-latest.yml
|
||||||
|
parameters:
|
||||||
|
enableSymbolValidation: ${{ parameters.enableSymbolValidation }}
|
||||||
|
symbolPublishingAdditionalParameters: ${{ parameters.symbolPublishingAdditionalParameters }}
|
||||||
|
artifactsPublishingAdditionalParameters: ${{ parameters.artifactsPublishingAdditionalParameters }}
|
||||||
|
publishInstallersAndChecksums: ${{ parameters.publishInstallersAndChecksums }}
|
||||||
|
enableAzDONuGetFeeds: ${{ parameters.enableAzDONuGetFeeds }}
|
||||||
|
|
||||||
- template: \eng\common\templates\post-build\channels\public-validation-release.yml
|
- template: \eng\common\templates\post-build\channels\public-validation-release.yml
|
||||||
|
parameters:
|
||||||
|
artifactsPublishingAdditionalParameters: ${{ parameters.artifactsPublishingAdditionalParameters }}
|
||||||
|
publishInstallersAndChecksums: ${{ parameters.publishInstallersAndChecksums }}
|
||||||
|
enableAzDONuGetFeeds: ${{ parameters.enableAzDONuGetFeeds }}
|
||||||
|
|
||||||
- template: \eng\common\templates\post-build\channels\public-release.yml
|
- template: \eng\common\templates\post-build\channels\netcore-release-30.yml
|
||||||
|
parameters:
|
||||||
|
symbolPublishingAdditionalParameters: ${{ parameters.symbolPublishingAdditionalParameters }}
|
||||||
|
artifactsPublishingAdditionalParameters: ${{ parameters.artifactsPublishingAdditionalParameters }}
|
||||||
|
|
||||||
- template: \eng\common\templates\post-build\channels\internal-servicing.yml
|
- template: \eng\common\templates\post-build\channels\netcore-release-31.yml
|
||||||
|
parameters:
|
||||||
|
symbolPublishingAdditionalParameters: ${{ parameters.symbolPublishingAdditionalParameters }}
|
||||||
|
artifactsPublishingAdditionalParameters: ${{ parameters.artifactsPublishingAdditionalParameters }}
|
||||||
|
|
||||||
|
- template: \eng\common\templates\post-build\channels\netcore-internal-30.yml
|
||||||
|
parameters:
|
||||||
|
symbolPublishingAdditionalParameters: ${{ parameters.symbolPublishingAdditionalParameters }}
|
||||||
|
artifactsPublishingAdditionalParameters: ${{ parameters.artifactsPublishingAdditionalParameters }}
|
||||||
|
|
|
@ -5,7 +5,7 @@ jobs:
|
||||||
- job:
|
- job:
|
||||||
displayName: Promote Build
|
displayName: Promote Build
|
||||||
dependsOn: setupMaestroVars
|
dependsOn: setupMaestroVars
|
||||||
condition: contains(dependencies.setupMaestroVars.outputs['setReleaseVars.InitialChannels'], ${{ parameters.ChannelId }})
|
condition: contains(dependencies.setupMaestroVars.outputs['setReleaseVars.InitialChannels'], format('[{0}]', ${{ parameters.ChannelId }}))
|
||||||
variables:
|
variables:
|
||||||
- name: BARBuildId
|
- name: BARBuildId
|
||||||
value: $[ dependencies.setupMaestroVars.outputs['setReleaseVars.BARBuildId'] ]
|
value: $[ dependencies.setupMaestroVars.outputs['setReleaseVars.BARBuildId'] ]
|
||||||
|
|
|
@ -39,6 +39,10 @@
|
||||||
# installed on the machine instead of downloading one.
|
# installed on the machine instead of downloading one.
|
||||||
[bool]$useInstalledDotNetCli = if (Test-Path variable:useInstalledDotNetCli) { $useInstalledDotNetCli } else { $true }
|
[bool]$useInstalledDotNetCli = if (Test-Path variable:useInstalledDotNetCli) { $useInstalledDotNetCli } else { $true }
|
||||||
|
|
||||||
|
# Enable repos to use a particular version of the on-line dotnet-install scripts.
|
||||||
|
# default URL: https://dot.net/v1/dotnet-install.ps1
|
||||||
|
[string]$dotnetInstallScriptVersion = if (Test-Path variable:dotnetInstallScriptVersion) { $dotnetInstallScriptVersion } else { "v1" }
|
||||||
|
|
||||||
# True to use global NuGet cache instead of restoring packages to repository-local directory.
|
# True to use global NuGet cache instead of restoring packages to repository-local directory.
|
||||||
[bool]$useGlobalNuGetCache = if (Test-Path variable:useGlobalNuGetCache) { $useGlobalNuGetCache } else { !$ci }
|
[bool]$useGlobalNuGetCache = if (Test-Path variable:useGlobalNuGetCache) { $useGlobalNuGetCache } else { !$ci }
|
||||||
|
|
||||||
|
@ -159,7 +163,8 @@ function GetDotNetInstallScript([string] $dotnetRoot) {
|
||||||
$installScript = Join-Path $dotnetRoot "dotnet-install.ps1"
|
$installScript = Join-Path $dotnetRoot "dotnet-install.ps1"
|
||||||
if (!(Test-Path $installScript)) {
|
if (!(Test-Path $installScript)) {
|
||||||
Create-Directory $dotnetRoot
|
Create-Directory $dotnetRoot
|
||||||
Invoke-WebRequest "https://dot.net/v1/dotnet-install.ps1" -OutFile $installScript
|
$ProgressPreference = 'SilentlyContinue' # Don't display the console progress UI - it's a huge perf hit
|
||||||
|
Invoke-WebRequest "https://dot.net/$dotnetInstallScriptVersion/dotnet-install.ps1" -OutFile $installScript
|
||||||
}
|
}
|
||||||
|
|
||||||
return $installScript
|
return $installScript
|
||||||
|
@ -278,6 +283,7 @@ function InitializeXCopyMSBuild([string]$packageVersion, [bool]$install) {
|
||||||
|
|
||||||
Create-Directory $packageDir
|
Create-Directory $packageDir
|
||||||
Write-Host "Downloading $packageName $packageVersion"
|
Write-Host "Downloading $packageName $packageVersion"
|
||||||
|
$ProgressPreference = 'SilentlyContinue' # Don't display the console progress UI - it's a huge perf hit
|
||||||
Invoke-WebRequest "https://dotnet.myget.org/F/roslyn-tools/api/v2/package/$packageName/$packageVersion/" -OutFile $packagePath
|
Invoke-WebRequest "https://dotnet.myget.org/F/roslyn-tools/api/v2/package/$packageName/$packageVersion/" -OutFile $packagePath
|
||||||
Unzip $packagePath $packageDir
|
Unzip $packagePath $packageDir
|
||||||
}
|
}
|
||||||
|
@ -518,6 +524,9 @@ function MSBuild-Core() {
|
||||||
if ($warnAsError) {
|
if ($warnAsError) {
|
||||||
$cmdArgs += " /warnaserror /p:TreatWarningsAsErrors=true"
|
$cmdArgs += " /warnaserror /p:TreatWarningsAsErrors=true"
|
||||||
}
|
}
|
||||||
|
else {
|
||||||
|
$cmdArgs += " /p:TreatWarningsAsErrors=false"
|
||||||
|
}
|
||||||
|
|
||||||
foreach ($arg in $args) {
|
foreach ($arg in $args) {
|
||||||
if ($arg -ne $null -and $arg.Trim() -ne "") {
|
if ($arg -ne $null -and $arg.Trim() -ne "") {
|
||||||
|
|
|
@ -45,6 +45,10 @@ warn_as_error=${warn_as_error:-true}
|
||||||
# installed on the machine instead of downloading one.
|
# installed on the machine instead of downloading one.
|
||||||
use_installed_dotnet_cli=${use_installed_dotnet_cli:-true}
|
use_installed_dotnet_cli=${use_installed_dotnet_cli:-true}
|
||||||
|
|
||||||
|
# Enable repos to use a particular version of the on-line dotnet-install scripts.
|
||||||
|
# default URL: https://dot.net/v1/dotnet-install.sh
|
||||||
|
dotnetInstallScriptVersion=${dotnetInstallScriptVersion:-'v1'}
|
||||||
|
|
||||||
# True to use global NuGet cache instead of restoring packages to repository-local directory.
|
# True to use global NuGet cache instead of restoring packages to repository-local directory.
|
||||||
if [[ "$ci" == true ]]; then
|
if [[ "$ci" == true ]]; then
|
||||||
use_global_nuget_cache=${use_global_nuget_cache:-false}
|
use_global_nuget_cache=${use_global_nuget_cache:-false}
|
||||||
|
@ -195,7 +199,7 @@ function InstallDotNet {
|
||||||
function GetDotNetInstallScript {
|
function GetDotNetInstallScript {
|
||||||
local root=$1
|
local root=$1
|
||||||
local install_script="$root/dotnet-install.sh"
|
local install_script="$root/dotnet-install.sh"
|
||||||
local install_script_url="https://dot.net/v1/dotnet-install.sh"
|
local install_script_url="https://dot.net/$dotnetInstallScriptVersion/dotnet-install.sh"
|
||||||
|
|
||||||
if [[ ! -a "$install_script" ]]; then
|
if [[ ! -a "$install_script" ]]; then
|
||||||
mkdir -p "$root"
|
mkdir -p "$root"
|
||||||
|
@ -204,12 +208,19 @@ function GetDotNetInstallScript {
|
||||||
|
|
||||||
# Use curl if available, otherwise use wget
|
# Use curl if available, otherwise use wget
|
||||||
if command -v curl > /dev/null; then
|
if command -v curl > /dev/null; then
|
||||||
curl "$install_script_url" -sSL --retry 10 --create-dirs -o "$install_script"
|
curl "$install_script_url" -sSL --retry 10 --create-dirs -o "$install_script" || {
|
||||||
else
|
local exit_code=$?
|
||||||
wget -q -O "$install_script" "$install_script_url"
|
Write-PipelineTelemetryError -category 'InitializeToolset' "Failed to acquire dotnet install script (exit code '$exit_code')."
|
||||||
|
ExitWithExitCode $exit_code
|
||||||
|
}
|
||||||
|
else
|
||||||
|
wget -q -O "$install_script" "$install_script_url" || {
|
||||||
|
local exit_code=$?
|
||||||
|
Write-PipelineTelemetryError -category 'InitializeToolset' "Failed to acquire dotnet install script (exit code '$exit_code')."
|
||||||
|
ExitWithExitCode $exit_code
|
||||||
|
}
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# return value
|
# return value
|
||||||
_GetDotNetInstallScript="$install_script"
|
_GetDotNetInstallScript="$install_script"
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,6 +3,6 @@
|
||||||
"dotnet": "3.0.100-preview6-012264"
|
"dotnet": "3.0.100-preview6-012264"
|
||||||
},
|
},
|
||||||
"msbuild-sdks": {
|
"msbuild-sdks": {
|
||||||
"Microsoft.DotNet.Arcade.Sdk": "1.0.0-beta.19377.2"
|
"Microsoft.DotNet.Arcade.Sdk": "1.0.0-beta.19454.31"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue