Roll master -> prod. Used git read-tree master to solve issues with merge conflicts.
This commit is contained in:
Родитель
321c00b8e5
Коммит
2bd15ccad3
|
@ -6,8 +6,8 @@
|
||||||
<!-- Only specify feed for Arcade SDK (see https://github.com/Microsoft/msbuild/issues/2982) -->
|
<!-- Only specify feed for Arcade SDK (see https://github.com/Microsoft/msbuild/issues/2982) -->
|
||||||
<packageSources>
|
<packageSources>
|
||||||
<clear />
|
<clear />
|
||||||
<add key="dotnet-core" value="https://dotnetfeed.blob.core.windows.net/dotnet-core/index.json" />
|
|
||||||
<add key="nuget.org" value="https://api.nuget.org/v3/index.json" />
|
<add key="nuget.org" value="https://api.nuget.org/v3/index.json" />
|
||||||
|
<add key="dotnet-eng" value="https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-eng/nuget/v3/index.json" />
|
||||||
</packageSources>
|
</packageSources>
|
||||||
<disabledPackageSources>
|
<disabledPackageSources>
|
||||||
<clear />
|
<clear />
|
||||||
|
|
|
@ -3,13 +3,13 @@
|
||||||
<ProductDependencies>
|
<ProductDependencies>
|
||||||
</ProductDependencies>
|
</ProductDependencies>
|
||||||
<ToolsetDependencies>
|
<ToolsetDependencies>
|
||||||
<Dependency Name="Microsoft.DotNet.Arcade.Sdk" Version="5.0.0-beta.19501.4">
|
<Dependency Name="Microsoft.DotNet.Arcade.Sdk" Version="5.0.0-beta.19566.1">
|
||||||
<Uri>https://github.com/dotnet/arcade</Uri>
|
<Uri>https://github.com/dotnet/arcade</Uri>
|
||||||
<Sha>c21a409f11386d22c6083198176868d3974de832</Sha>
|
<Sha>2c6db6ee8d8adeb2e8ccc1485e6780635890e419</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="Microsoft.DotNet.Helix.JobSender" Version="5.0.0-beta.19501.4">
|
<Dependency Name="Microsoft.DotNet.Helix.JobSender" Version="5.0.0-beta.19568.11">
|
||||||
<Uri>https://github.com/dotnet/arcade</Uri>
|
<Uri>https://github.com/dotnet/arcade</Uri>
|
||||||
<Sha>c21a409f11386d22c6083198176868d3974de832</Sha>
|
<Sha>b6b2816dfa2f5c2e0d147096de5b82ade1efbac5</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
</ToolsetDependencies>
|
</ToolsetDependencies>
|
||||||
</Dependencies>
|
</Dependencies>
|
||||||
|
|
|
@ -8,7 +8,7 @@
|
||||||
<MicrosoftAzureKeyVaultVersion>3.0.0</MicrosoftAzureKeyVaultVersion>
|
<MicrosoftAzureKeyVaultVersion>3.0.0</MicrosoftAzureKeyVaultVersion>
|
||||||
<MicrosoftApplicationInsightsAspNetCoreVersion>2.5.1</MicrosoftApplicationInsightsAspNetCoreVersion>
|
<MicrosoftApplicationInsightsAspNetCoreVersion>2.5.1</MicrosoftApplicationInsightsAspNetCoreVersion>
|
||||||
<MicrosoftAzureServicesAppAuthenticationVersion>1.0.3</MicrosoftAzureServicesAppAuthenticationVersion>
|
<MicrosoftAzureServicesAppAuthenticationVersion>1.0.3</MicrosoftAzureServicesAppAuthenticationVersion>
|
||||||
<MicrosoftDotNetHelixJobSenderVersion>5.0.0-beta.19501.4</MicrosoftDotNetHelixJobSenderVersion>
|
<MicrosoftDotNetHelixJobSenderVersion>5.0.0-beta.19568.11</MicrosoftDotNetHelixJobSenderVersion>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<RestoreSources>
|
<RestoreSources>
|
||||||
|
|
|
@ -37,6 +37,8 @@
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<DotNetSymbolExpirationInDays Condition="'$(DotNetSymbolExpirationInDays)' == ''">3650</DotNetSymbolExpirationInDays>
|
<DotNetSymbolExpirationInDays Condition="'$(DotNetSymbolExpirationInDays)' == ''">3650</DotNetSymbolExpirationInDays>
|
||||||
<PublishToSymbolServer>true</PublishToSymbolServer>
|
<PublishToSymbolServer>true</PublishToSymbolServer>
|
||||||
|
<PublishToSymWeb Condition="'$(PublishToSymWeb)' == ''">true</PublishToSymWeb>
|
||||||
|
<PublishToMSDL Condition="'$(PublishToMSDL)' == ''">true</PublishToMSDL>
|
||||||
<PublishToSymbolServer Condition="'@(FilesToPublishToSymbolServer)' == '' and '@(PackagesToPublishToSymbolServer)' == ''">false</PublishToSymbolServer>
|
<PublishToSymbolServer Condition="'@(FilesToPublishToSymbolServer)' == '' and '@(PackagesToPublishToSymbolServer)' == ''">false</PublishToSymbolServer>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
|
@ -56,7 +58,7 @@
|
||||||
DryRun="false"
|
DryRun="false"
|
||||||
ConvertPortablePdbsToWindowsPdbs="false"
|
ConvertPortablePdbsToWindowsPdbs="false"
|
||||||
PdbConversionTreatAsWarning=""
|
PdbConversionTreatAsWarning=""
|
||||||
Condition="$(PublishToSymbolServer)"/>
|
Condition="$(PublishToSymbolServer) and $(PublishToMSDL)"/>
|
||||||
|
|
||||||
<!--
|
<!--
|
||||||
Symbol Uploader: SymWeb
|
Symbol Uploader: SymWeb
|
||||||
|
@ -73,7 +75,7 @@
|
||||||
DryRun="false"
|
DryRun="false"
|
||||||
ConvertPortablePdbsToWindowsPdbs="false"
|
ConvertPortablePdbsToWindowsPdbs="false"
|
||||||
PdbConversionTreatAsWarning=""
|
PdbConversionTreatAsWarning=""
|
||||||
Condition="$(PublishToSymbolServer)"/>
|
Condition="$(PublishToSymbolServer) and $(PublishToSymWeb)"/>
|
||||||
</Target>
|
</Target>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
|
|
@ -18,6 +18,7 @@ Param(
|
||||||
[switch] $sign,
|
[switch] $sign,
|
||||||
[switch] $pack,
|
[switch] $pack,
|
||||||
[switch] $publish,
|
[switch] $publish,
|
||||||
|
[switch] $clean,
|
||||||
[switch][Alias('bl')]$binaryLog,
|
[switch][Alias('bl')]$binaryLog,
|
||||||
[switch] $ci,
|
[switch] $ci,
|
||||||
[switch] $prepareMachine,
|
[switch] $prepareMachine,
|
||||||
|
@ -48,6 +49,7 @@ function Print-Usage() {
|
||||||
Write-Host " -pack Package build outputs into NuGet packages and Willow components"
|
Write-Host " -pack Package build outputs into NuGet packages and Willow components"
|
||||||
Write-Host " -sign Sign build outputs"
|
Write-Host " -sign Sign build outputs"
|
||||||
Write-Host " -publish Publish artifacts (e.g. symbols)"
|
Write-Host " -publish Publish artifacts (e.g. symbols)"
|
||||||
|
Write-Host " -clean Clean the solution"
|
||||||
Write-Host ""
|
Write-Host ""
|
||||||
|
|
||||||
Write-Host "Advanced settings:"
|
Write-Host "Advanced settings:"
|
||||||
|
@ -112,6 +114,14 @@ function Build {
|
||||||
@properties
|
@properties
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ($clean) {
|
||||||
|
if(Test-Path $ArtifactsDir) {
|
||||||
|
Remove-Item -Recurse -Force $ArtifactsDir
|
||||||
|
Write-Host "Artifacts directory deleted."
|
||||||
|
}
|
||||||
|
exit 0
|
||||||
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
if ($help -or (($null -ne $properties) -and ($properties.Contains("/help") -or $properties.Contains("/?")))) {
|
if ($help -or (($null -ne $properties) -and ($properties.Contains("/help") -or $properties.Contains("/?")))) {
|
||||||
Print-Usage
|
Print-Usage
|
||||||
|
@ -123,14 +133,7 @@ try {
|
||||||
$nodeReuse = $false
|
$nodeReuse = $false
|
||||||
}
|
}
|
||||||
|
|
||||||
# Import custom tools configuration, if present in the repo.
|
if ($restore) {
|
||||||
# Note: Import in global scope so that the script set top-level variables without qualification.
|
|
||||||
$configureToolsetScript = Join-Path $EngRoot "configure-toolset.ps1"
|
|
||||||
if (Test-Path $configureToolsetScript) {
|
|
||||||
. $configureToolsetScript
|
|
||||||
}
|
|
||||||
|
|
||||||
if (($restore) -and ($null -eq $env:DisableNativeToolsetInstalls)) {
|
|
||||||
InitializeNativeTools
|
InitializeNativeTools
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -26,6 +26,7 @@ usage()
|
||||||
echo " --pack Package build outputs into NuGet packages and Willow components"
|
echo " --pack Package build outputs into NuGet packages and Willow components"
|
||||||
echo " --sign Sign build outputs"
|
echo " --sign Sign build outputs"
|
||||||
echo " --publish Publish artifacts (e.g. symbols)"
|
echo " --publish Publish artifacts (e.g. symbols)"
|
||||||
|
echo " --clean Clean the solution"
|
||||||
echo ""
|
echo ""
|
||||||
|
|
||||||
echo "Advanced settings:"
|
echo "Advanced settings:"
|
||||||
|
@ -62,6 +63,7 @@ publish=false
|
||||||
sign=false
|
sign=false
|
||||||
public=false
|
public=false
|
||||||
ci=false
|
ci=false
|
||||||
|
clean=false
|
||||||
|
|
||||||
warn_as_error=true
|
warn_as_error=true
|
||||||
node_reuse=true
|
node_reuse=true
|
||||||
|
@ -82,6 +84,9 @@ while [[ $# > 0 ]]; do
|
||||||
usage
|
usage
|
||||||
exit 0
|
exit 0
|
||||||
;;
|
;;
|
||||||
|
-clean)
|
||||||
|
clean=true
|
||||||
|
;;
|
||||||
-configuration|-c)
|
-configuration|-c)
|
||||||
configuration=$2
|
configuration=$2
|
||||||
shift
|
shift
|
||||||
|
@ -196,20 +201,15 @@ function Build {
|
||||||
ExitWithExitCode 0
|
ExitWithExitCode 0
|
||||||
}
|
}
|
||||||
|
|
||||||
# Import custom tools configuration, if present in the repo.
|
if [[ "$clean" == true ]]; then
|
||||||
configure_toolset_script="$eng_root/configure-toolset.sh"
|
if [ -d "$artifacts_dir" ]; then
|
||||||
if [[ -a "$configure_toolset_script" ]]; then
|
rm -rf $artifacts_dir
|
||||||
. "$configure_toolset_script"
|
echo "Artifacts directory deleted."
|
||||||
|
fi
|
||||||
|
exit 0
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# TODO: https://github.com/dotnet/arcade/issues/1468
|
if [[ "$restore" == true ]]; then
|
||||||
# Temporary workaround to avoid breaking change.
|
|
||||||
# Remove once repos are updated.
|
|
||||||
if [[ -n "${useInstalledDotNetCli:-}" ]]; then
|
|
||||||
use_installed_dotnet_cli="$useInstalledDotNetCli"
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [[ "$restore" == true && -z ${DisableNativeToolsetInstalls:-} ]]; then
|
|
||||||
InitializeNativeTools
|
InitializeNativeTools
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
|
@ -31,6 +31,10 @@ else()
|
||||||
message(FATAL_ERROR "Arch is ${TARGET_ARCH_NAME}. Only armel, arm, arm64 and x86 are supported!")
|
message(FATAL_ERROR "Arch is ${TARGET_ARCH_NAME}. Only armel, arm, arm64 and x86 are supported!")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
if(DEFINED ENV{TOOLCHAIN})
|
||||||
|
set(TOOLCHAIN $ENV{TOOLCHAIN})
|
||||||
|
endif()
|
||||||
|
|
||||||
# Specify include paths
|
# Specify include paths
|
||||||
if(TARGET_ARCH_NAME STREQUAL "armel")
|
if(TARGET_ARCH_NAME STREQUAL "armel")
|
||||||
if(DEFINED TIZEN_TOOLCHAIN)
|
if(DEFINED TIZEN_TOOLCHAIN)
|
||||||
|
@ -39,48 +43,25 @@ if(TARGET_ARCH_NAME STREQUAL "armel")
|
||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# add_compile_param - adds only new options without duplicates.
|
set(CMAKE_SYSROOT "${CROSS_ROOTFS}")
|
||||||
# arg0 - list with result options, arg1 - list with new options.
|
set(CMAKE_C_COMPILER_EXTERNAL_TOOLCHAIN "${CROSS_ROOTFS}/usr")
|
||||||
# arg2 - optional argument, quick summary string for optional using CACHE FORCE mode.
|
set(CMAKE_CXX_COMPILER_EXTERNAL_TOOLCHAIN "${CROSS_ROOTFS}/usr")
|
||||||
macro(add_compile_param)
|
set(CMAKE_ASM_COMPILER_EXTERNAL_TOOLCHAIN "${CROSS_ROOTFS}/usr")
|
||||||
if(NOT ${ARGC} MATCHES "^(2|3)$")
|
|
||||||
message(FATAL_ERROR "Wrong using add_compile_param! Two or three parameters must be given! See add_compile_param description.")
|
|
||||||
endif()
|
|
||||||
foreach(OPTION ${ARGV1})
|
|
||||||
if(NOT ${ARGV0} MATCHES "${OPTION}($| )")
|
|
||||||
set(${ARGV0} "${${ARGV0}} ${OPTION}")
|
|
||||||
if(${ARGC} EQUAL "3") # CACHE FORCE mode
|
|
||||||
set(${ARGV0} "${${ARGV0}}" CACHE STRING "${ARGV2}" FORCE)
|
|
||||||
endif()
|
|
||||||
endif()
|
|
||||||
endforeach()
|
|
||||||
endmacro()
|
|
||||||
|
|
||||||
# Specify link flags
|
# Specify link flags
|
||||||
add_compile_param(CROSS_LINK_FLAGS "--sysroot=${CROSS_ROOTFS}")
|
|
||||||
add_compile_param(CROSS_LINK_FLAGS "--gcc-toolchain=${CROSS_ROOTFS}/usr")
|
|
||||||
add_compile_param(CROSS_LINK_FLAGS "--target=${TOOLCHAIN}")
|
|
||||||
add_compile_param(CROSS_LINK_FLAGS "-fuse-ld=gold")
|
|
||||||
|
|
||||||
if(TARGET_ARCH_NAME STREQUAL "armel")
|
if(TARGET_ARCH_NAME STREQUAL "armel")
|
||||||
if(DEFINED TIZEN_TOOLCHAIN) # For Tizen only
|
if(DEFINED TIZEN_TOOLCHAIN) # For Tizen only
|
||||||
add_compile_param(CROSS_LINK_FLAGS "-B${CROSS_ROOTFS}/usr/lib/gcc/${TIZEN_TOOLCHAIN}")
|
add_link_options("-B${CROSS_ROOTFS}/usr/lib/gcc/${TIZEN_TOOLCHAIN}")
|
||||||
add_compile_param(CROSS_LINK_FLAGS "-L${CROSS_ROOTFS}/lib")
|
add_link_options("-L${CROSS_ROOTFS}/lib")
|
||||||
add_compile_param(CROSS_LINK_FLAGS "-L${CROSS_ROOTFS}/usr/lib")
|
add_link_options("-L${CROSS_ROOTFS}/usr/lib")
|
||||||
add_compile_param(CROSS_LINK_FLAGS "-L${CROSS_ROOTFS}/usr/lib/gcc/${TIZEN_TOOLCHAIN}")
|
add_link_options("-L${CROSS_ROOTFS}/usr/lib/gcc/${TIZEN_TOOLCHAIN}")
|
||||||
endif()
|
endif()
|
||||||
elseif(TARGET_ARCH_NAME STREQUAL "x86")
|
elseif(TARGET_ARCH_NAME STREQUAL "x86")
|
||||||
add_compile_param(CROSS_LINK_FLAGS "-m32")
|
add_link_options(-m32)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
add_compile_param(CMAKE_EXE_LINKER_FLAGS "${CROSS_LINK_FLAGS}" "TOOLCHAIN_EXE_LINKER_FLAGS")
|
|
||||||
add_compile_param(CMAKE_SHARED_LINKER_FLAGS "${CROSS_LINK_FLAGS}" "TOOLCHAIN_EXE_LINKER_FLAGS")
|
|
||||||
add_compile_param(CMAKE_MODULE_LINKER_FLAGS "${CROSS_LINK_FLAGS}" "TOOLCHAIN_EXE_LINKER_FLAGS")
|
|
||||||
|
|
||||||
# Specify compile options
|
# Specify compile options
|
||||||
add_compile_options("--sysroot=${CROSS_ROOTFS}")
|
|
||||||
add_compile_options("--target=${TOOLCHAIN}")
|
|
||||||
add_compile_options("--gcc-toolchain=${CROSS_ROOTFS}/usr")
|
|
||||||
|
|
||||||
if(TARGET_ARCH_NAME MATCHES "^(arm|armel|arm64)$")
|
if(TARGET_ARCH_NAME MATCHES "^(arm|armel|arm64)$")
|
||||||
set(CMAKE_C_COMPILER_TARGET ${TOOLCHAIN})
|
set(CMAKE_C_COMPILER_TARGET ${TOOLCHAIN})
|
||||||
|
@ -103,7 +84,7 @@ elseif(TARGET_ARCH_NAME STREQUAL "x86")
|
||||||
add_compile_options(-Wno-error=unused-command-line-argument)
|
add_compile_options(-Wno-error=unused-command-line-argument)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# Set LLDB include and library paths
|
# Set LLDB include and library paths for builds that need lldb.
|
||||||
if(TARGET_ARCH_NAME MATCHES "^(arm|armel|x86)$")
|
if(TARGET_ARCH_NAME MATCHES "^(arm|armel|x86)$")
|
||||||
if(TARGET_ARCH_NAME STREQUAL "x86")
|
if(TARGET_ARCH_NAME STREQUAL "x86")
|
||||||
set(LLVM_CROSS_DIR "$ENV{LLVM_CROSS_HOME}")
|
set(LLVM_CROSS_DIR "$ENV{LLVM_CROSS_HOME}")
|
||||||
|
@ -131,7 +112,7 @@ if(TARGET_ARCH_NAME MATCHES "^(arm|armel|x86)$")
|
||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
set(CMAKE_FIND_ROOT_PATH "${CROSS_ROOTFS}")
|
|
||||||
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
|
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
|
||||||
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
|
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
|
||||||
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
|
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
|
||||||
|
|
|
@ -1,7 +1,8 @@
|
||||||
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",
|
||||||
|
$toolpath = $null
|
||||||
)
|
)
|
||||||
|
|
||||||
. $PSScriptRoot\tools.ps1
|
. $PSScriptRoot\tools.ps1
|
||||||
|
@ -23,11 +24,15 @@ function InstallDarcCli ($darcVersion) {
|
||||||
$darcVersion = $(Invoke-WebRequest -Uri $versionEndpoint -UseBasicParsing).Content
|
$darcVersion = $(Invoke-WebRequest -Uri $versionEndpoint -UseBasicParsing).Content
|
||||||
}
|
}
|
||||||
|
|
||||||
$arcadeServicesSource = 'https://dotnetfeed.blob.core.windows.net/dotnet-core/index.json'
|
$arcadeServicesSource = 'https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-tools/nuget/v3/index.json'
|
||||||
|
|
||||||
Write-Host "Installing Darc CLI version $darcVersion..."
|
Write-Host "Installing Darc CLI version $darcVersion..."
|
||||||
Write-Host "You may need to restart your command window if this is the first dotnet tool you have installed."
|
Write-Host "You may need to restart your command window if this is the first dotnet tool you have installed."
|
||||||
& "$dotnet" tool install $darcCliPackageName --version $darcVersion --add-source "$arcadeServicesSource" -v $verbosity -g
|
if (-not $toolpath) {
|
||||||
|
& "$dotnet" tool install $darcCliPackageName --version $darcVersion --add-source "$arcadeServicesSource" -v $verbosity -g
|
||||||
|
}else {
|
||||||
|
& "$dotnet" tool install $darcCliPackageName --version $darcVersion --add-source "$arcadeServicesSource" -v $verbosity --tool-path "$toolpath"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
InstallDarcCli $darcVersion
|
InstallDarcCli $darcVersion
|
||||||
|
|
|
@ -20,6 +20,10 @@ while [[ $# > 0 ]]; do
|
||||||
verbosity=$2
|
verbosity=$2
|
||||||
shift
|
shift
|
||||||
;;
|
;;
|
||||||
|
--toolpath)
|
||||||
|
toolpath=$2
|
||||||
|
shift
|
||||||
|
;;
|
||||||
*)
|
*)
|
||||||
echo "Invalid argument: $1"
|
echo "Invalid argument: $1"
|
||||||
usage
|
usage
|
||||||
|
@ -52,17 +56,27 @@ function InstallDarcCli {
|
||||||
InitializeDotNetCli
|
InitializeDotNetCli
|
||||||
local dotnet_root=$_InitializeDotNetCli
|
local dotnet_root=$_InitializeDotNetCli
|
||||||
|
|
||||||
local uninstall_command=`$dotnet_root/dotnet tool uninstall $darc_cli_package_name -g`
|
if [ -z "$toolpath" ]; then
|
||||||
local tool_list=$($dotnet_root/dotnet tool list -g)
|
local tool_list=$($dotnet_root/dotnet tool list -g)
|
||||||
if [[ $tool_list = *$darc_cli_package_name* ]]; then
|
if [[ $tool_list = *$darc_cli_package_name* ]]; then
|
||||||
echo $($dotnet_root/dotnet tool uninstall $darc_cli_package_name -g)
|
echo $($dotnet_root/dotnet tool uninstall $darc_cli_package_name -g)
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
local tool_list=$($dotnet_root/dotnet tool list --tool-path "$toolpath")
|
||||||
|
if [[ $tool_list = *$darc_cli_package_name* ]]; then
|
||||||
|
echo $($dotnet_root/dotnet tool uninstall $darc_cli_package_name --tool-path "$toolpath")
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
local arcadeServicesSource="https://dotnetfeed.blob.core.windows.net/dotnet-core/index.json"
|
local arcadeServicesSource="https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-tools/nuget/v3/index.json"
|
||||||
|
|
||||||
echo "Installing Darc CLI version $darcVersion..."
|
echo "Installing Darc CLI version $darcVersion..."
|
||||||
echo "You may need to restart your command shell if this is the first dotnet tool you have installed."
|
echo "You may need to restart your command shell if this is the first dotnet tool you have installed."
|
||||||
echo $($dotnet_root/dotnet tool install $darc_cli_package_name --version $darcVersion --add-source "$arcadeServicesSource" -v $verbosity -g)
|
if [ -z "$toolpath" ]; then
|
||||||
|
echo $($dotnet_root/dotnet tool install $darc_cli_package_name --version $darcVersion --add-source "$arcadeServicesSource" -v $verbosity -g)
|
||||||
|
else
|
||||||
|
echo $($dotnet_root/dotnet tool install $darc_cli_package_name --version $darcVersion --add-source "$arcadeServicesSource" -v $verbosity --tool-path "$toolpath")
|
||||||
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
InstallDarcCli
|
InstallDarcCli
|
||||||
|
|
|
@ -3,7 +3,9 @@ Param(
|
||||||
[string] $verbosity = "minimal",
|
[string] $verbosity = "minimal",
|
||||||
[string] $architecture = "",
|
[string] $architecture = "",
|
||||||
[string] $version = "Latest",
|
[string] $version = "Latest",
|
||||||
[string] $runtime = "dotnet"
|
[string] $runtime = "dotnet",
|
||||||
|
[string] $RuntimeSourceFeed = "",
|
||||||
|
[string] $RuntimeSourceFeedKey = ""
|
||||||
)
|
)
|
||||||
|
|
||||||
. $PSScriptRoot\tools.ps1
|
. $PSScriptRoot\tools.ps1
|
||||||
|
@ -15,7 +17,7 @@ try {
|
||||||
if ($architecture -and $architecture.Trim() -eq "x86") {
|
if ($architecture -and $architecture.Trim() -eq "x86") {
|
||||||
$installdir = Join-Path $installdir "x86"
|
$installdir = Join-Path $installdir "x86"
|
||||||
}
|
}
|
||||||
InstallDotNet $installdir $version $architecture $runtime $true
|
InstallDotNet $installdir $version $architecture $runtime $true -RuntimeSourceFeed $RuntimeSourceFeed -RuntimeSourceFeedKey $RuntimeSourceFeedKey
|
||||||
}
|
}
|
||||||
catch {
|
catch {
|
||||||
Write-Host $_
|
Write-Host $_
|
||||||
|
|
|
@ -14,6 +14,8 @@ scriptroot="$( cd -P "$( dirname "$source" )" && pwd )"
|
||||||
version='Latest'
|
version='Latest'
|
||||||
architecture=''
|
architecture=''
|
||||||
runtime='dotnet'
|
runtime='dotnet'
|
||||||
|
runtimeSourceFeed=''
|
||||||
|
runtimeSourceFeedKey=''
|
||||||
while [[ $# > 0 ]]; do
|
while [[ $# > 0 ]]; do
|
||||||
opt="$(echo "$1" | awk '{print tolower($0)}')"
|
opt="$(echo "$1" | awk '{print tolower($0)}')"
|
||||||
case "$opt" in
|
case "$opt" in
|
||||||
|
@ -29,18 +31,55 @@ while [[ $# > 0 ]]; do
|
||||||
shift
|
shift
|
||||||
runtime="$1"
|
runtime="$1"
|
||||||
;;
|
;;
|
||||||
|
-runtimesourcefeed)
|
||||||
|
shift
|
||||||
|
runtimeSourceFeed="$1"
|
||||||
|
;;
|
||||||
|
-runtimesourcefeedkey)
|
||||||
|
shift
|
||||||
|
runtimeSourceFeedKey="$1"
|
||||||
|
;;
|
||||||
*)
|
*)
|
||||||
echo "Invalid argument: $1"
|
echo "Invalid argument: $1"
|
||||||
usage
|
|
||||||
exit 1
|
exit 1
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
shift
|
shift
|
||||||
done
|
done
|
||||||
|
|
||||||
|
# Use uname to determine what the CPU is.
|
||||||
|
cpuname=$(uname -p)
|
||||||
|
# Some Linux platforms report unknown for platform, but the arch for machine.
|
||||||
|
if [[ "$cpuname" == "unknown" ]]; then
|
||||||
|
cpuname=$(uname -m)
|
||||||
|
fi
|
||||||
|
|
||||||
|
case $cpuname in
|
||||||
|
aarch64)
|
||||||
|
buildarch=arm64
|
||||||
|
;;
|
||||||
|
amd64|x86_64)
|
||||||
|
buildarch=x64
|
||||||
|
;;
|
||||||
|
armv7l)
|
||||||
|
buildarch=arm
|
||||||
|
;;
|
||||||
|
i686)
|
||||||
|
buildarch=x86
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo "Unknown CPU $cpuname detected, treating it as x64"
|
||||||
|
buildarch=x64
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
. "$scriptroot/tools.sh"
|
. "$scriptroot/tools.sh"
|
||||||
dotnetRoot="$repo_root/.dotnet"
|
dotnetRoot="$repo_root/.dotnet"
|
||||||
InstallDotNet $dotnetRoot $version "$architecture" $runtime true || {
|
if [[ $architecture != "" ]] && [[ $architecture != $buildarch ]]; then
|
||||||
|
dotnetRoot="$dotnetRoot/$architecture"
|
||||||
|
fi
|
||||||
|
|
||||||
|
InstallDotNet $dotnetRoot $version "$architecture" $runtime true $runtimeSourceFeed $runtimeSourceFeedKey || {
|
||||||
local exit_code=$?
|
local exit_code=$?
|
||||||
echo "dotnet-install.sh failed (exit code '$exit_code')." >&2
|
echo "dotnet-install.sh failed (exit code '$exit_code')." >&2
|
||||||
ExitWithExitCode $exit_code
|
ExitWithExitCode $exit_code
|
||||||
|
|
|
@ -8,6 +8,7 @@ Set-StrictMode -Version 2.0
|
||||||
# scripts don't necessarily execute in the same agent that run the
|
# scripts don't necessarily execute in the same agent that run the
|
||||||
# build.ps1/sh script this variable isn't automatically set.
|
# build.ps1/sh script this variable isn't automatically set.
|
||||||
$ci = $true
|
$ci = $true
|
||||||
|
$disableConfigureToolsetImport = "true"
|
||||||
. $PSScriptRoot\..\tools.ps1
|
. $PSScriptRoot\..\tools.ps1
|
||||||
|
|
||||||
function Create-MaestroApiRequestHeaders([string]$ContentType = "application/json") {
|
function Create-MaestroApiRequestHeaders([string]$ContentType = "application/json") {
|
||||||
|
|
|
@ -1,26 +0,0 @@
|
||||||
param(
|
|
||||||
[Parameter(Mandatory=$true)][string] $ReleaseConfigsPath # Full path to ReleaseConfigs.txt asset
|
|
||||||
)
|
|
||||||
|
|
||||||
. $PSScriptRoot\post-build-utils.ps1
|
|
||||||
|
|
||||||
try {
|
|
||||||
$Content = Get-Content $ReleaseConfigsPath
|
|
||||||
|
|
||||||
$BarId = $Content | Select -Index 0
|
|
||||||
|
|
||||||
$Channels = ""
|
|
||||||
$Content | Select -Index 1 | ForEach-Object { $Channels += "$_ ," }
|
|
||||||
|
|
||||||
$IsStableBuild = $Content | Select -Index 2
|
|
||||||
|
|
||||||
Write-PipelineSetVariable -Name 'BARBuildId' -Value $BarId
|
|
||||||
Write-PipelineSetVariable -Name 'InitialChannels' -Value "$Channels"
|
|
||||||
Write-PipelineSetVariable -Name 'IsStableBuild' -Value $IsStableBuild
|
|
||||||
}
|
|
||||||
catch {
|
|
||||||
Write-Host $_
|
|
||||||
Write-Host $_.Exception
|
|
||||||
Write-Host $_.ScriptStackTrace
|
|
||||||
ExitWithExitCode 1
|
|
||||||
}
|
|
|
@ -10,6 +10,7 @@ Set-StrictMode -Version 2.0
|
||||||
# scripts don't necessarily execute in the same agent that run the
|
# scripts don't necessarily execute in the same agent that run the
|
||||||
# build.ps1/sh script this variable isn't automatically set.
|
# build.ps1/sh script this variable isn't automatically set.
|
||||||
$ci = $true
|
$ci = $true
|
||||||
|
$disableConfigureToolsetImport = "true"
|
||||||
. $PSScriptRoot\..\tools.ps1
|
. $PSScriptRoot\..\tools.ps1
|
||||||
|
|
||||||
$ExtractPackage = {
|
$ExtractPackage = {
|
||||||
|
|
|
@ -6,6 +6,11 @@ parameters:
|
||||||
# This can also be remedied by the caller (post-build.yml) if it does not use a nested parameter
|
# 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;
|
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
|
||||||
|
artifactNames: '' # Optional: patterns supplied to DownloadBuildArtifacts
|
||||||
|
# Usage:
|
||||||
|
# artifactNames:
|
||||||
|
# - 'BlobArtifacts'
|
||||||
|
# - 'Artifacts_Windows_NT_Release'
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
- job: Run_SDL
|
- job: Run_SDL
|
||||||
|
@ -18,13 +23,22 @@ jobs:
|
||||||
steps:
|
steps:
|
||||||
- checkout: self
|
- checkout: self
|
||||||
clean: true
|
clean: true
|
||||||
- task: DownloadBuildArtifacts@0
|
- ${{ if ne(parameters.artifactNames, '') }}:
|
||||||
displayName: Download Build Artifacts
|
- ${{ each artifactName in parameters.artifactNames }}:
|
||||||
inputs:
|
- task: DownloadBuildArtifacts@0
|
||||||
buildType: current
|
displayName: Download Build Artifacts
|
||||||
downloadType: specific files
|
inputs:
|
||||||
matchingPattern: "**"
|
buildType: current
|
||||||
downloadPath: $(Build.ArtifactStagingDirectory)\artifacts
|
artifactName: ${{ artifactName }}
|
||||||
|
downloadPath: $(Build.ArtifactStagingDirectory)\artifacts
|
||||||
|
- ${{ if eq(parameters.artifactNames, '') }}:
|
||||||
|
- task: DownloadBuildArtifacts@0
|
||||||
|
displayName: Download Build Artifacts
|
||||||
|
inputs:
|
||||||
|
buildType: current
|
||||||
|
downloadType: specific files
|
||||||
|
itemPattern: "**"
|
||||||
|
downloadPath: $(Build.ArtifactStagingDirectory)\artifacts
|
||||||
- powershell: eng/common/sdl/extract-artifact-packages.ps1
|
- powershell: eng/common/sdl/extract-artifact-packages.ps1
|
||||||
-InputPath $(Build.ArtifactStagingDirectory)\artifacts\BlobArtifacts
|
-InputPath $(Build.ArtifactStagingDirectory)\artifacts\BlobArtifacts
|
||||||
-ExtractPath $(Build.ArtifactStagingDirectory)\artifacts\BlobArtifacts
|
-ExtractPath $(Build.ArtifactStagingDirectory)\artifacts\BlobArtifacts
|
||||||
|
|
|
@ -17,7 +17,7 @@ parameters:
|
||||||
workspace: ''
|
workspace: ''
|
||||||
|
|
||||||
# Job base template specific parameters
|
# Job base template specific parameters
|
||||||
# See schema documentation in /Documentation/AzureDevOps/TemplateSchema.md
|
# See schema documentation - https://github.com/dotnet/arcade/blob/master/Documentation/AzureDevOps/TemplateSchema.md
|
||||||
artifacts: ''
|
artifacts: ''
|
||||||
enableMicrobuild: false
|
enableMicrobuild: false
|
||||||
enablePublishBuildArtifacts: false
|
enablePublishBuildArtifacts: false
|
||||||
|
|
|
@ -1,132 +0,0 @@
|
||||||
parameters:
|
|
||||||
artifactsPublishingAdditionalParameters: ''
|
|
||||||
dependsOn:
|
|
||||||
- Validate
|
|
||||||
publishInstallersAndChecksums: false
|
|
||||||
symbolPublishingAdditionalParameters: ''
|
|
||||||
|
|
||||||
stages:
|
|
||||||
- stage: NetCore_Dev31_Publish
|
|
||||||
dependsOn: ${{ parameters.dependsOn }}
|
|
||||||
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: 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.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: NuGetToolInstaller@1
|
|
||||||
displayName: 'Install NuGet.exe'
|
|
||||||
|
|
||||||
# This is necessary whenever we want to publish/restore to an AzDO private feed
|
|
||||||
- task: NuGetAuthenticate@0
|
|
||||||
displayName: 'Authenticate to AzDO Feeds'
|
|
||||||
|
|
||||||
- task: PowerShell@2
|
|
||||||
displayName: Enable cross-org publishing
|
|
||||||
inputs:
|
|
||||||
filePath: eng\common\enable-cross-org-publishing.ps1
|
|
||||||
arguments: -token $(dn-bot-dnceng-artifact-feeds-rw)
|
|
||||||
|
|
||||||
- task: PowerShell@2
|
|
||||||
displayName: Publish Assets
|
|
||||||
inputs:
|
|
||||||
filePath: eng\common\sdk-task.ps1
|
|
||||||
arguments: -task PublishArtifactsInManifest -restore -msbuildEngine dotnet
|
|
||||||
/p:ArtifactsCategory=$(_DotNetArtifactsCategory)
|
|
||||||
/p:IsStableBuild=$(IsStableBuild)
|
|
||||||
/p:IsInternalBuild=$(IsInternalBuild)
|
|
||||||
/p:RepositoryName=$(Build.Repository.Name)
|
|
||||||
/p:CommitSha=$(Build.SourceVersion)
|
|
||||||
/p:NugetPath=$(NuGetExeToolPath)
|
|
||||||
/p:AzdoTargetFeedPAT='$(dn-bot-dnceng-universal-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)
|
|
||||||
/p:PublishToAzureDevOpsNuGetFeeds=true
|
|
||||||
/p:AzureDevOpsStaticShippingFeed='https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet3.1/nuget/v3/index.json'
|
|
||||||
/p:AzureDevOpsStaticShippingFeedKey='$(dn-bot-dnceng-artifact-feeds-rw)'
|
|
||||||
/p:AzureDevOpsStaticTransportFeed='https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet3.1-transport/nuget/v3/index.json'
|
|
||||||
/p:AzureDevOpsStaticTransportFeedKey='$(dn-bot-dnceng-artifact-feeds-rw)'
|
|
||||||
/p:AzureDevOpsStaticSymbolsFeed='https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet3.1-symbols/nuget/v3/index.json'
|
|
||||||
/p:AzureDevOpsStaticSymbolsFeedKey='$(dn-bot-dnceng-artifact-feeds-rw)'
|
|
||||||
${{ parameters.artifactsPublishingAdditionalParameters }}
|
|
||||||
|
|
||||||
- template: ../../steps/promote-build.yml
|
|
||||||
parameters:
|
|
||||||
ChannelId: ${{ variables.PublicDevRelease_31_Channel_Id }}
|
|
|
@ -1,132 +0,0 @@
|
||||||
parameters:
|
|
||||||
artifactsPublishingAdditionalParameters: ''
|
|
||||||
dependsOn:
|
|
||||||
- Validate
|
|
||||||
publishInstallersAndChecksums: false
|
|
||||||
symbolPublishingAdditionalParameters: ''
|
|
||||||
|
|
||||||
stages:
|
|
||||||
- stage: NetCore_Dev5_Publish
|
|
||||||
dependsOn: ${{ parameters.dependsOn }}
|
|
||||||
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: 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.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: NuGetToolInstaller@1
|
|
||||||
displayName: 'Install NuGet.exe'
|
|
||||||
|
|
||||||
# This is necessary whenever we want to publish/restore to an AzDO private feed
|
|
||||||
- task: NuGetAuthenticate@0
|
|
||||||
displayName: 'Authenticate to AzDO Feeds'
|
|
||||||
|
|
||||||
- task: PowerShell@2
|
|
||||||
displayName: Enable cross-org publishing
|
|
||||||
inputs:
|
|
||||||
filePath: eng\common\enable-cross-org-publishing.ps1
|
|
||||||
arguments: -token $(dn-bot-dnceng-artifact-feeds-rw)
|
|
||||||
|
|
||||||
- task: PowerShell@2
|
|
||||||
displayName: Publish Assets
|
|
||||||
inputs:
|
|
||||||
filePath: eng\common\sdk-task.ps1
|
|
||||||
arguments: -task PublishArtifactsInManifest -restore -msbuildEngine dotnet
|
|
||||||
/p:ArtifactsCategory=$(_DotNetArtifactsCategory)
|
|
||||||
/p:IsStableBuild=$(IsStableBuild)
|
|
||||||
/p:IsInternalBuild=$(IsInternalBuild)
|
|
||||||
/p:RepositoryName=$(Build.Repository.Name)
|
|
||||||
/p:CommitSha=$(Build.SourceVersion)
|
|
||||||
/p:NugetPath=$(NuGetExeToolPath)
|
|
||||||
/p:AzdoTargetFeedPAT='$(dn-bot-dnceng-universal-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)
|
|
||||||
/p:PublishToAzureDevOpsNuGetFeeds=true
|
|
||||||
/p:AzureDevOpsStaticShippingFeed='https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet5/nuget/v3/index.json'
|
|
||||||
/p:AzureDevOpsStaticShippingFeedKey='$(dn-bot-dnceng-artifact-feeds-rw)'
|
|
||||||
/p:AzureDevOpsStaticTransportFeed='https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet5-transport/nuget/v3/index.json'
|
|
||||||
/p:AzureDevOpsStaticTransportFeedKey='$(dn-bot-dnceng-artifact-feeds-rw)'
|
|
||||||
/p:AzureDevOpsStaticSymbolsFeed='https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet5-symbols/nuget/v3/index.json'
|
|
||||||
/p:AzureDevOpsStaticSymbolsFeedKey='$(dn-bot-dnceng-artifact-feeds-rw)'
|
|
||||||
${{ parameters.artifactsPublishingAdditionalParameters }}
|
|
||||||
|
|
||||||
- template: ../../steps/promote-build.yml
|
|
||||||
parameters:
|
|
||||||
ChannelId: ${{ variables.NetCore_5_Dev_Channel_Id }}
|
|
|
@ -1,142 +0,0 @@
|
||||||
parameters:
|
|
||||||
artifactsPublishingAdditionalParameters: ''
|
|
||||||
dependsOn:
|
|
||||||
- Validate
|
|
||||||
symbolPublishingAdditionalParameters: ''
|
|
||||||
|
|
||||||
stages:
|
|
||||||
- stage: NetCore_30_Internal_Servicing_Publishing
|
|
||||||
dependsOn: ${{ parameters.dependsOn }}
|
|
||||||
variables:
|
|
||||||
- template: ../common-variables.yml
|
|
||||||
displayName: .NET Core 3.0 Internal Servicing Publishing
|
|
||||||
jobs:
|
|
||||||
- template: ../setup-maestro-vars.yml
|
|
||||||
|
|
||||||
- job:
|
|
||||||
displayName: Symbol Publishing
|
|
||||||
dependsOn: setupMaestroVars
|
|
||||||
condition: contains(dependencies.setupMaestroVars.outputs['setReleaseVars.InitialChannels'], format('[{0}]', variables.InternalServicing_30_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
|
|
||||||
|
|
||||||
# This is necessary whenever we want to publish/restore to an AzDO private feed
|
|
||||||
# Since sdk-task.ps1 tries to restore packages we need to do this authentication here
|
|
||||||
# otherwise it'll complain about accessing a private feed.
|
|
||||||
- task: NuGetAuthenticate@0
|
|
||||||
displayName: 'Authenticate to AzDO Feeds'
|
|
||||||
|
|
||||||
- task: PowerShell@2
|
|
||||||
displayName: Enable cross-org publishing
|
|
||||||
inputs:
|
|
||||||
filePath: eng\common\enable-cross-org-publishing.ps1
|
|
||||||
arguments: -token $(dn-bot-dnceng-artifact-feeds-rw)
|
|
||||||
|
|
||||||
- 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.InternalServicing_30_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: NuGetToolInstaller@1
|
|
||||||
displayName: 'Install NuGet.exe'
|
|
||||||
|
|
||||||
# This is necessary whenever we want to publish/restore to an AzDO private feed
|
|
||||||
- task: NuGetAuthenticate@0
|
|
||||||
displayName: 'Authenticate to AzDO Feeds'
|
|
||||||
|
|
||||||
- task: PowerShell@2
|
|
||||||
displayName: Enable cross-org publishing
|
|
||||||
inputs:
|
|
||||||
filePath: eng\common\enable-cross-org-publishing.ps1
|
|
||||||
arguments: -token $(dn-bot-dnceng-artifact-feeds-rw)
|
|
||||||
|
|
||||||
- task: PowerShell@2
|
|
||||||
displayName: Publish Assets
|
|
||||||
inputs:
|
|
||||||
filePath: eng\common\sdk-task.ps1
|
|
||||||
arguments: -task PublishArtifactsInManifest -restore -msbuildEngine dotnet
|
|
||||||
/p:IsStableBuild=$(IsStableBuild)
|
|
||||||
/p:IsInternalBuild=$(IsInternalBuild)
|
|
||||||
/p:RepositoryName=$(Build.Repository.Name)
|
|
||||||
/p:CommitSha=$(Build.SourceVersion)
|
|
||||||
/p:NugetPath=$(NuGetExeToolPath)
|
|
||||||
/p:AzdoTargetFeedPAT='$(dn-bot-dnceng-universal-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=true
|
|
||||||
/p:ChecksumsTargetStaticFeed=$(InternalChecksumsBlobFeedUrl)
|
|
||||||
/p:ChecksumsAzureAccountKey=$(InternalChecksumsBlobFeedKey)
|
|
||||||
/p:InstallersTargetStaticFeed=$(InternalInstallersBlobFeedUrl)
|
|
||||||
/p:InstallersAzureAccountKey=$(InternalInstallersBlobFeedKey)
|
|
||||||
/p:PublishToAzureDevOpsNuGetFeeds=true
|
|
||||||
/p:AzureDevOpsStaticShippingFeed='https://pkgs.dev.azure.com/dnceng/_packaging/dotnet3-internal/nuget/v3/index.json'
|
|
||||||
/p:AzureDevOpsStaticShippingFeedKey='$(dn-bot-dnceng-artifact-feeds-rw)'
|
|
||||||
/p:AzureDevOpsStaticTransportFeed='https://pkgs.dev.azure.com/dnceng/_packaging/dotnet3-internal-transport/nuget/v3/index.json'
|
|
||||||
/p:AzureDevOpsStaticTransportFeedKey='$(dn-bot-dnceng-artifact-feeds-rw)'
|
|
||||||
/p:AzureDevOpsStaticSymbolsFeed='https://pkgs.dev.azure.com/dnceng/_packaging/dotnet3-internal-symbols/nuget/v3/index.json'
|
|
||||||
/p:AzureDevOpsStaticSymbolsFeedKey='$(dn-bot-dnceng-artifact-feeds-rw)'
|
|
||||||
${{ parameters.artifactsPublishingAdditionalParameters }}
|
|
||||||
|
|
||||||
- template: ../../steps/promote-build.yml
|
|
||||||
parameters:
|
|
||||||
ChannelId: ${{ variables.InternalServicing_30_Channel_Id }}
|
|
|
@ -1,132 +0,0 @@
|
||||||
parameters:
|
|
||||||
artifactsPublishingAdditionalParameters: ''
|
|
||||||
dependsOn:
|
|
||||||
- Validate
|
|
||||||
publishInstallersAndChecksums: false
|
|
||||||
symbolPublishingAdditionalParameters: ''
|
|
||||||
|
|
||||||
stages:
|
|
||||||
- stage: NetCore_Release30_Publish
|
|
||||||
dependsOn: ${{ parameters.dependsOn }}
|
|
||||||
variables:
|
|
||||||
- template: ../common-variables.yml
|
|
||||||
displayName: .NET Core 3.0 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_30_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_30_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: NuGetToolInstaller@1
|
|
||||||
displayName: 'Install NuGet.exe'
|
|
||||||
|
|
||||||
# This is necessary whenever we want to publish/restore to an AzDO private feed
|
|
||||||
- task: NuGetAuthenticate@0
|
|
||||||
displayName: 'Authenticate to AzDO Feeds'
|
|
||||||
|
|
||||||
- task: PowerShell@2
|
|
||||||
displayName: Enable cross-org publishing
|
|
||||||
inputs:
|
|
||||||
filePath: eng\common\enable-cross-org-publishing.ps1
|
|
||||||
arguments: -token $(dn-bot-dnceng-artifact-feeds-rw)
|
|
||||||
|
|
||||||
- task: PowerShell@2
|
|
||||||
displayName: Publish Assets
|
|
||||||
inputs:
|
|
||||||
filePath: eng\common\sdk-task.ps1
|
|
||||||
arguments: -task PublishArtifactsInManifest -restore -msbuildEngine dotnet
|
|
||||||
/p:ArtifactsCategory=$(_DotNetArtifactsCategory)
|
|
||||||
/p:IsStableBuild=$(IsStableBuild)
|
|
||||||
/p:IsInternalBuild=$(IsInternalBuild)
|
|
||||||
/p:RepositoryName=$(Build.Repository.Name)
|
|
||||||
/p:CommitSha=$(Build.SourceVersion)
|
|
||||||
/p:NugetPath=$(NuGetExeToolPath)
|
|
||||||
/p:AzdoTargetFeedPAT='$(dn-bot-dnceng-universal-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)
|
|
||||||
/p:PublishToAzureDevOpsNuGetFeeds=true
|
|
||||||
/p:AzureDevOpsStaticShippingFeed='https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet3/nuget/v3/index.json'
|
|
||||||
/p:AzureDevOpsStaticShippingFeedKey='$(dn-bot-dnceng-artifact-feeds-rw)'
|
|
||||||
/p:AzureDevOpsStaticTransportFeed='https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet3-transport/nuget/v3/index.json'
|
|
||||||
/p:AzureDevOpsStaticTransportFeedKey='$(dn-bot-dnceng-artifact-feeds-rw)'
|
|
||||||
/p:AzureDevOpsStaticSymbolsFeed='https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet3-symbols/nuget/v3/index.json'
|
|
||||||
/p:AzureDevOpsStaticSymbolsFeedKey='$(dn-bot-dnceng-artifact-feeds-rw)'
|
|
||||||
${{ parameters.artifactsPublishingAdditionalParameters }}
|
|
||||||
|
|
||||||
- template: ../../steps/promote-build.yml
|
|
||||||
parameters:
|
|
||||||
ChannelId: ${{ variables.PublicRelease_30_Channel_Id }}
|
|
|
@ -1,132 +0,0 @@
|
||||||
parameters:
|
|
||||||
artifactsPublishingAdditionalParameters: ''
|
|
||||||
dependsOn:
|
|
||||||
- Validate
|
|
||||||
publishInstallersAndChecksums: false
|
|
||||||
symbolPublishingAdditionalParameters: ''
|
|
||||||
|
|
||||||
stages:
|
|
||||||
- stage: NetCore_Release31_Publish
|
|
||||||
dependsOn: ${{ parameters.dependsOn }}
|
|
||||||
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: NuGetToolInstaller@1
|
|
||||||
displayName: 'Install NuGet.exe'
|
|
||||||
|
|
||||||
# This is necessary whenever we want to publish/restore to an AzDO private feed
|
|
||||||
- task: NuGetAuthenticate@0
|
|
||||||
displayName: 'Authenticate to AzDO Feeds'
|
|
||||||
|
|
||||||
- task: PowerShell@2
|
|
||||||
displayName: Enable cross-org publishing
|
|
||||||
inputs:
|
|
||||||
filePath: eng\common\enable-cross-org-publishing.ps1
|
|
||||||
arguments: -token $(dn-bot-dnceng-artifact-feeds-rw)
|
|
||||||
|
|
||||||
- task: PowerShell@2
|
|
||||||
displayName: Publish Assets
|
|
||||||
inputs:
|
|
||||||
filePath: eng\common\sdk-task.ps1
|
|
||||||
arguments: -task PublishArtifactsInManifest -restore -msbuildEngine dotnet
|
|
||||||
/p:ArtifactsCategory=$(_DotNetArtifactsCategory)
|
|
||||||
/p:IsStableBuild=$(IsStableBuild)
|
|
||||||
/p:IsInternalBuild=$(IsInternalBuild)
|
|
||||||
/p:RepositoryName=$(Build.Repository.Name)
|
|
||||||
/p:CommitSha=$(Build.SourceVersion)
|
|
||||||
/p:NugetPath=$(NuGetExeToolPath)
|
|
||||||
/p:AzdoTargetFeedPAT='$(dn-bot-dnceng-universal-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)
|
|
||||||
/p:PublishToAzureDevOpsNuGetFeeds=true
|
|
||||||
/p:AzureDevOpsStaticShippingFeed='https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet3.1/nuget/v3/index.json'
|
|
||||||
/p:AzureDevOpsStaticShippingFeedKey='$(dn-bot-dnceng-artifact-feeds-rw)'
|
|
||||||
/p:AzureDevOpsStaticTransportFeed='https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet3.1-transport/nuget/v3/index.json'
|
|
||||||
/p:AzureDevOpsStaticTransportFeedKey='$(dn-bot-dnceng-artifact-feeds-rw)'
|
|
||||||
/p:AzureDevOpsStaticSymbolsFeed='https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet3.1-symbols/nuget/v3/index.json'
|
|
||||||
/p:AzureDevOpsStaticSymbolsFeedKey='$(dn-bot-dnceng-artifact-feeds-rw)'
|
|
||||||
${{ parameters.artifactsPublishingAdditionalParameters }}
|
|
||||||
|
|
||||||
- template: ../../steps/promote-build.yml
|
|
||||||
parameters:
|
|
||||||
ChannelId: ${{ variables.PublicRelease_31_Channel_Id }}
|
|
|
@ -1,132 +0,0 @@
|
||||||
parameters:
|
|
||||||
artifactsPublishingAdditionalParameters: ''
|
|
||||||
dependsOn:
|
|
||||||
- Validate
|
|
||||||
publishInstallersAndChecksums: false
|
|
||||||
symbolPublishingAdditionalParameters: ''
|
|
||||||
|
|
||||||
stages:
|
|
||||||
- stage: NetCore_Tools_Latest_Publish
|
|
||||||
dependsOn: ${{ parameters.dependsOn }}
|
|
||||||
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: 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.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: NuGetToolInstaller@1
|
|
||||||
displayName: 'Install NuGet.exe'
|
|
||||||
|
|
||||||
# This is necessary whenever we want to publish/restore to an AzDO private feed
|
|
||||||
- task: NuGetAuthenticate@0
|
|
||||||
displayName: 'Authenticate to AzDO Feeds'
|
|
||||||
|
|
||||||
- task: PowerShell@2
|
|
||||||
displayName: Enable cross-org publishing
|
|
||||||
inputs:
|
|
||||||
filePath: eng\common\enable-cross-org-publishing.ps1
|
|
||||||
arguments: -token $(dn-bot-dnceng-artifact-feeds-rw)
|
|
||||||
|
|
||||||
- task: PowerShell@2
|
|
||||||
displayName: Publish Assets
|
|
||||||
inputs:
|
|
||||||
filePath: eng\common\sdk-task.ps1
|
|
||||||
arguments: -task PublishArtifactsInManifest -restore -msbuildEngine dotnet
|
|
||||||
/p:ArtifactsCategory=$(_DotNetArtifactsCategory)
|
|
||||||
/p:IsStableBuild=$(IsStableBuild)
|
|
||||||
/p:IsInternalBuild=$(IsInternalBuild)
|
|
||||||
/p:RepositoryName=$(Build.Repository.Name)
|
|
||||||
/p:CommitSha=$(Build.SourceVersion)
|
|
||||||
/p:NugetPath=$(NuGetExeToolPath)
|
|
||||||
/p:AzdoTargetFeedPAT='$(dn-bot-dnceng-universal-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)
|
|
||||||
/p:PublishToAzureDevOpsNuGetFeeds=true
|
|
||||||
/p:AzureDevOpsStaticShippingFeed='https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-tools/nuget/v3/index.json'
|
|
||||||
/p:AzureDevOpsStaticShippingFeedKey='$(dn-bot-dnceng-artifact-feeds-rw)'
|
|
||||||
/p:AzureDevOpsStaticTransportFeed='https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-tools/nuget/v3/index.json'
|
|
||||||
/p:AzureDevOpsStaticTransportFeedKey='$(dn-bot-dnceng-artifact-feeds-rw)'
|
|
||||||
/p:AzureDevOpsStaticSymbolsFeed='https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-tools-symbols/nuget/v3/index.json'
|
|
||||||
/p:AzureDevOpsStaticSymbolsFeedKey='$(dn-bot-dnceng-artifact-feeds-rw)'
|
|
||||||
${{ parameters.artifactsPublishingAdditionalParameters }}
|
|
||||||
|
|
||||||
- template: ../../steps/promote-build.yml
|
|
||||||
parameters:
|
|
||||||
ChannelId: ${{ variables.NetCore_Tools_Latest_Channel_Id }}
|
|
|
@ -1,97 +0,0 @@
|
||||||
parameters:
|
|
||||||
artifactsPublishingAdditionalParameters: ''
|
|
||||||
dependsOn:
|
|
||||||
- Validate
|
|
||||||
publishInstallersAndChecksums: false
|
|
||||||
|
|
||||||
stages:
|
|
||||||
- stage: PVR_Publish
|
|
||||||
dependsOn: ${{ parameters.dependsOn }}
|
|
||||||
variables:
|
|
||||||
- template: ../common-variables.yml
|
|
||||||
displayName: .NET Tools - Validation Publishing
|
|
||||||
jobs:
|
|
||||||
- template: ../setup-maestro-vars.yml
|
|
||||||
|
|
||||||
- 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.PublicValidationRelease_30_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: NuGetToolInstaller@1
|
|
||||||
displayName: 'Install NuGet.exe'
|
|
||||||
|
|
||||||
# This is necessary whenever we want to publish/restore to an AzDO private feed
|
|
||||||
- task: NuGetAuthenticate@0
|
|
||||||
displayName: 'Authenticate to AzDO Feeds'
|
|
||||||
|
|
||||||
- task: PowerShell@2
|
|
||||||
displayName: Enable cross-org publishing
|
|
||||||
inputs:
|
|
||||||
filePath: eng\common\enable-cross-org-publishing.ps1
|
|
||||||
arguments: -token $(dn-bot-dnceng-artifact-feeds-rw)
|
|
||||||
|
|
||||||
- task: PowerShell@2
|
|
||||||
displayName: Publish Assets
|
|
||||||
inputs:
|
|
||||||
filePath: eng\common\sdk-task.ps1
|
|
||||||
arguments: -task PublishArtifactsInManifest -restore -msbuildEngine dotnet
|
|
||||||
/p:ArtifactsCategory=$(_DotNetValidationArtifactsCategory)
|
|
||||||
/p:IsStableBuild=$(IsStableBuild)
|
|
||||||
/p:IsInternalBuild=$(IsInternalBuild)
|
|
||||||
/p:RepositoryName=$(Build.Repository.Name)
|
|
||||||
/p:CommitSha=$(Build.SourceVersion)
|
|
||||||
/p:NugetPath=$(NuGetExeToolPath)
|
|
||||||
/p:AzdoTargetFeedPAT='$(dn-bot-dnceng-universal-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)
|
|
||||||
/p:PublishToAzureDevOpsNuGetFeeds=true
|
|
||||||
/p:AzureDevOpsStaticShippingFeed='https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-tools/nuget/v3/index.json'
|
|
||||||
/p:AzureDevOpsStaticShippingFeedKey='$(dn-bot-dnceng-artifact-feeds-rw)'
|
|
||||||
/p:AzureDevOpsStaticTransportFeed='https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-tools/nuget/v3/index.json'
|
|
||||||
/p:AzureDevOpsStaticTransportFeedKey='$(dn-bot-dnceng-artifact-feeds-rw)'
|
|
||||||
/p:AzureDevOpsStaticSymbolsFeed='https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-tools-symbols/nuget/v3/index.json'
|
|
||||||
/p:AzureDevOpsStaticSymbolsFeedKey='$(dn-bot-dnceng-artifact-feeds-rw)'
|
|
||||||
${{ parameters.artifactsPublishingAdditionalParameters }}
|
|
||||||
|
|
||||||
- template: ../../steps/promote-build.yml
|
|
||||||
parameters:
|
|
||||||
ChannelId: ${{ variables.PublicValidationRelease_30_Channel_Id }}
|
|
|
@ -1,7 +1,9 @@
|
||||||
variables:
|
variables:
|
||||||
- group: Publish-Build-Assets
|
- group: AzureDevOps-Artifact-Feeds-Pats
|
||||||
|
- group: DotNet-Blob-Feed
|
||||||
- group: DotNet-DotNetCli-Storage
|
- group: DotNet-DotNetCli-Storage
|
||||||
- group: DotNet-MSRC-Storage
|
- group: DotNet-MSRC-Storage
|
||||||
|
- group: Publish-Build-Assets
|
||||||
|
|
||||||
# .NET Core 3.1 Dev
|
# .NET Core 3.1 Dev
|
||||||
- name: PublicDevRelease_31_Channel_Id
|
- name: PublicDevRelease_31_Channel_Id
|
||||||
|
@ -12,13 +14,21 @@ variables:
|
||||||
value: 131
|
value: 131
|
||||||
|
|
||||||
# .NET Tools - Validation
|
# .NET Tools - Validation
|
||||||
- name: PublicValidationRelease_30_Channel_Id
|
- name: NetCore_Tools_Validation_Channel_Id
|
||||||
value: 9
|
value: 9
|
||||||
|
|
||||||
# .NET Tools - Latest
|
# .NET Tools - Latest
|
||||||
- name: NetCore_Tools_Latest_Channel_Id
|
- name: NetCore_Tools_Latest_Channel_Id
|
||||||
value: 2
|
value: 2
|
||||||
|
|
||||||
|
# .NET 3 Tools - Validation
|
||||||
|
- name: NETCore_3_Tools_Validation_Channel_Id
|
||||||
|
value: 390
|
||||||
|
|
||||||
|
# .NET 3 Tools - Latest
|
||||||
|
- name: NetCore_3_Tools_Channel_Id
|
||||||
|
value: 344
|
||||||
|
|
||||||
# .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
|
||||||
|
@ -31,6 +41,14 @@ variables:
|
||||||
- name: PublicRelease_31_Channel_Id
|
- name: PublicRelease_31_Channel_Id
|
||||||
value: 129
|
value: 129
|
||||||
|
|
||||||
|
# General Testing
|
||||||
|
- name: GeneralTesting_Channel_Id
|
||||||
|
value: 529
|
||||||
|
|
||||||
|
# .NET Core 3.1 Blazor Features
|
||||||
|
- name: NetCore_31_Blazor_Features_Channel_Id
|
||||||
|
value: 531
|
||||||
|
|
||||||
# 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')) }}
|
||||||
|
|
|
@ -8,6 +8,7 @@ parameters:
|
||||||
enable: false
|
enable: false
|
||||||
continueOnError: false
|
continueOnError: false
|
||||||
params: ''
|
params: ''
|
||||||
|
artifactNames: ''
|
||||||
|
|
||||||
# These parameters let the user customize the call to sdk-task.ps1 for publishing
|
# These parameters let the user customize the call to sdk-task.ps1 for publishing
|
||||||
# symbols & general artifacts as well as for signing validation
|
# symbols & general artifacts as well as for signing validation
|
||||||
|
@ -50,7 +51,6 @@ stages:
|
||||||
displayName: Signing Validation
|
displayName: Signing Validation
|
||||||
variables:
|
variables:
|
||||||
- template: common-variables.yml
|
- template: common-variables.yml
|
||||||
- group: AzureDevOps-Artifact-Feeds-Pats
|
|
||||||
pool:
|
pool:
|
||||||
vmImage: 'windows-2019'
|
vmImage: 'windows-2019'
|
||||||
steps:
|
steps:
|
||||||
|
@ -64,7 +64,6 @@ stages:
|
||||||
# Since sdk-task.ps1 tries to restore packages we need to do this authentication here
|
# Since sdk-task.ps1 tries to restore packages we need to do this authentication here
|
||||||
# otherwise it'll complain about accessing a private feed.
|
# otherwise it'll complain about accessing a private feed.
|
||||||
- task: NuGetAuthenticate@0
|
- task: NuGetAuthenticate@0
|
||||||
condition: eq(variables['IsInternalBuild'], 'true')
|
|
||||||
displayName: 'Authenticate to AzDO Feeds'
|
displayName: 'Authenticate to AzDO Feeds'
|
||||||
|
|
||||||
- task: PowerShell@2
|
- task: PowerShell@2
|
||||||
|
@ -80,9 +79,13 @@ stages:
|
||||||
arguments: -task SigningValidation -restore -msbuildEngine dotnet
|
arguments: -task SigningValidation -restore -msbuildEngine dotnet
|
||||||
/p:PackageBasePath='$(Build.ArtifactStagingDirectory)/PackageArtifacts'
|
/p:PackageBasePath='$(Build.ArtifactStagingDirectory)/PackageArtifacts'
|
||||||
/p:SignCheckExclusionsFile='$(Build.SourcesDirectory)/eng/SignCheckExclusionsFile.txt'
|
/p:SignCheckExclusionsFile='$(Build.SourcesDirectory)/eng/SignCheckExclusionsFile.txt'
|
||||||
/p:Configuration=Release
|
|
||||||
${{ parameters.signingValidationAdditionalParameters }}
|
${{ parameters.signingValidationAdditionalParameters }}
|
||||||
|
|
||||||
|
- template: ../steps/publish-logs.yml
|
||||||
|
parameters:
|
||||||
|
StageLabel: 'Validation'
|
||||||
|
JobLabel: 'Signing'
|
||||||
|
|
||||||
- ${{ if eq(parameters.enableSourceLinkValidation, 'true') }}:
|
- ${{ if eq(parameters.enableSourceLinkValidation, 'true') }}:
|
||||||
- job:
|
- job:
|
||||||
displayName: SourceLink Validation
|
displayName: SourceLink Validation
|
||||||
|
@ -113,50 +116,173 @@ stages:
|
||||||
parameters:
|
parameters:
|
||||||
additionalParameters: ${{ parameters.SDLValidationParameters.params }}
|
additionalParameters: ${{ parameters.SDLValidationParameters.params }}
|
||||||
continueOnError: ${{ parameters.SDLValidationParameters.continueOnError }}
|
continueOnError: ${{ parameters.SDLValidationParameters.continueOnError }}
|
||||||
|
artifactNames: ${{ parameters.SDLValidationParameters.artifactNames }}
|
||||||
|
|
||||||
- template: \eng\common\templates\post-build\channels\netcore-dev-5.yml
|
- template: \eng\common\templates\post-build\channels\generic-public-channel.yml
|
||||||
parameters:
|
parameters:
|
||||||
artifactsPublishingAdditionalParameters: ${{ parameters.artifactsPublishingAdditionalParameters }}
|
artifactsPublishingAdditionalParameters: ${{ parameters.artifactsPublishingAdditionalParameters }}
|
||||||
dependsOn: ${{ parameters.publishDependsOn }}
|
dependsOn: ${{ parameters.publishDependsOn }}
|
||||||
publishInstallersAndChecksums: ${{ parameters.publishInstallersAndChecksums }}
|
publishInstallersAndChecksums: ${{ parameters.publishInstallersAndChecksums }}
|
||||||
symbolPublishingAdditionalParameters: ${{ parameters.symbolPublishingAdditionalParameters }}
|
symbolPublishingAdditionalParameters: ${{ parameters.symbolPublishingAdditionalParameters }}
|
||||||
|
stageName: 'NetCore_Dev5_Publish'
|
||||||
|
channelName: '.NET Core 5 Dev'
|
||||||
|
channelId: 131
|
||||||
|
transportFeed: 'https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet5-transport/nuget/v3/index.json'
|
||||||
|
shippingFeed: 'https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet5/nuget/v3/index.json'
|
||||||
|
symbolsFeed: 'https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet5-symbols/nuget/v3/index.json'
|
||||||
|
|
||||||
- template: \eng\common\templates\post-build\channels\netcore-dev-31.yml
|
- template: \eng\common\templates\post-build\channels\generic-public-channel.yml
|
||||||
parameters:
|
parameters:
|
||||||
artifactsPublishingAdditionalParameters: ${{ parameters.artifactsPublishingAdditionalParameters }}
|
artifactsPublishingAdditionalParameters: ${{ parameters.artifactsPublishingAdditionalParameters }}
|
||||||
dependsOn: ${{ parameters.publishDependsOn }}
|
dependsOn: ${{ parameters.publishDependsOn }}
|
||||||
publishInstallersAndChecksums: ${{ parameters.publishInstallersAndChecksums }}
|
publishInstallersAndChecksums: ${{ parameters.publishInstallersAndChecksums }}
|
||||||
symbolPublishingAdditionalParameters: ${{ parameters.symbolPublishingAdditionalParameters }}
|
symbolPublishingAdditionalParameters: ${{ parameters.symbolPublishingAdditionalParameters }}
|
||||||
|
stageName: 'NetCore_Dev31_Publish'
|
||||||
|
channelName: '.NET Core 3.1 Dev'
|
||||||
|
channelId: 128
|
||||||
|
transportFeed: 'https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet3.1-transport/nuget/v3/index.json'
|
||||||
|
shippingFeed: 'https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet3.1/nuget/v3/index.json'
|
||||||
|
symbolsFeed: 'https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet3.1-symbols/nuget/v3/index.json'
|
||||||
|
|
||||||
- template: \eng\common\templates\post-build\channels\netcore-tools-latest.yml
|
- template: \eng\common\templates\post-build\channels\generic-public-channel.yml
|
||||||
parameters:
|
parameters:
|
||||||
artifactsPublishingAdditionalParameters: ${{ parameters.artifactsPublishingAdditionalParameters }}
|
artifactsPublishingAdditionalParameters: ${{ parameters.artifactsPublishingAdditionalParameters }}
|
||||||
dependsOn: ${{ parameters.publishDependsOn }}
|
dependsOn: ${{ parameters.publishDependsOn }}
|
||||||
publishInstallersAndChecksums: ${{ parameters.publishInstallersAndChecksums }}
|
publishInstallersAndChecksums: ${{ parameters.publishInstallersAndChecksums }}
|
||||||
symbolPublishingAdditionalParameters: ${{ parameters.symbolPublishingAdditionalParameters }}
|
symbolPublishingAdditionalParameters: ${{ parameters.symbolPublishingAdditionalParameters }}
|
||||||
|
stageName: 'NetCore_Tools_Latest_Publish'
|
||||||
|
channelName: '.NET Tools - Latest'
|
||||||
|
channelId: 2
|
||||||
|
transportFeed: 'https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-eng/nuget/v3/index.json'
|
||||||
|
shippingFeed: 'https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-eng/nuget/v3/index.json'
|
||||||
|
symbolsFeed: 'https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-eng-symbols/nuget/v3/index.json'
|
||||||
|
|
||||||
- template: \eng\common\templates\post-build\channels\public-validation-release.yml
|
- template: \eng\common\templates\post-build\channels\generic-public-channel.yml
|
||||||
parameters:
|
|
||||||
artifactsPublishingAdditionalParameters: ${{ parameters.artifactsPublishingAdditionalParameters }}
|
|
||||||
dependsOn: ${{ parameters.publishDependsOn }}
|
|
||||||
publishInstallersAndChecksums: ${{ parameters.publishInstallersAndChecksums }}
|
|
||||||
|
|
||||||
- template: \eng\common\templates\post-build\channels\netcore-release-30.yml
|
|
||||||
parameters:
|
parameters:
|
||||||
artifactsPublishingAdditionalParameters: ${{ parameters.artifactsPublishingAdditionalParameters }}
|
artifactsPublishingAdditionalParameters: ${{ parameters.artifactsPublishingAdditionalParameters }}
|
||||||
dependsOn: ${{ parameters.publishDependsOn }}
|
dependsOn: ${{ parameters.publishDependsOn }}
|
||||||
publishInstallersAndChecksums: ${{ parameters.publishInstallersAndChecksums }}
|
publishInstallersAndChecksums: ${{ parameters.publishInstallersAndChecksums }}
|
||||||
symbolPublishingAdditionalParameters: ${{ parameters.symbolPublishingAdditionalParameters }}
|
symbolPublishingAdditionalParameters: ${{ parameters.symbolPublishingAdditionalParameters }}
|
||||||
|
stageName: 'PVR_Publish'
|
||||||
|
channelName: '.NET Tools - Validation'
|
||||||
|
channelId: 9
|
||||||
|
transportFeed: 'https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-eng/nuget/v3/index.json'
|
||||||
|
shippingFeed: 'https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-eng/nuget/v3/index.json'
|
||||||
|
symbolsFeed: 'https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-eng-symbols/nuget/v3/index.json'
|
||||||
|
|
||||||
- template: \eng\common\templates\post-build\channels\netcore-release-31.yml
|
- template: \eng\common\templates\post-build\channels\generic-public-channel.yml
|
||||||
parameters:
|
parameters:
|
||||||
artifactsPublishingAdditionalParameters: ${{ parameters.artifactsPublishingAdditionalParameters }}
|
artifactsPublishingAdditionalParameters: ${{ parameters.artifactsPublishingAdditionalParameters }}
|
||||||
dependsOn: ${{ parameters.publishDependsOn }}
|
dependsOn: ${{ parameters.publishDependsOn }}
|
||||||
publishInstallersAndChecksums: ${{ parameters.publishInstallersAndChecksums }}
|
publishInstallersAndChecksums: ${{ parameters.publishInstallersAndChecksums }}
|
||||||
symbolPublishingAdditionalParameters: ${{ parameters.symbolPublishingAdditionalParameters }}
|
symbolPublishingAdditionalParameters: ${{ parameters.symbolPublishingAdditionalParameters }}
|
||||||
|
stageName: 'NetCore_3_Tools_Validation_Publish'
|
||||||
|
channelName: '.NET 3 Tools - Validation'
|
||||||
|
channelId: 390
|
||||||
|
transportFeed: 'https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-eng/nuget/v3/index.json'
|
||||||
|
shippingFeed: 'https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-eng/nuget/v3/index.json'
|
||||||
|
symbolsFeed: 'https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-eng-symbols/nuget/v3/index.json'
|
||||||
|
|
||||||
- template: \eng\common\templates\post-build\channels\netcore-internal-30.yml
|
- template: \eng\common\templates\post-build\channels\generic-public-channel.yml
|
||||||
parameters:
|
parameters:
|
||||||
artifactsPublishingAdditionalParameters: ${{ parameters.artifactsPublishingAdditionalParameters }}
|
artifactsPublishingAdditionalParameters: ${{ parameters.artifactsPublishingAdditionalParameters }}
|
||||||
dependsOn: ${{ parameters.publishDependsOn }}
|
dependsOn: ${{ parameters.publishDependsOn }}
|
||||||
|
publishInstallersAndChecksums: ${{ parameters.publishInstallersAndChecksums }}
|
||||||
symbolPublishingAdditionalParameters: ${{ parameters.symbolPublishingAdditionalParameters }}
|
symbolPublishingAdditionalParameters: ${{ parameters.symbolPublishingAdditionalParameters }}
|
||||||
|
stageName: 'NetCore_3_Tools_Publish'
|
||||||
|
channelName: '.NET 3 Tools'
|
||||||
|
channelId: 344
|
||||||
|
transportFeed: 'https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-eng/nuget/v3/index.json'
|
||||||
|
shippingFeed: 'https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-eng/nuget/v3/index.json'
|
||||||
|
symbolsFeed: 'https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-eng-symbols/nuget/v3/index.json'
|
||||||
|
|
||||||
|
- template: \eng\common\templates\post-build\channels\generic-public-channel.yml
|
||||||
|
parameters:
|
||||||
|
artifactsPublishingAdditionalParameters: ${{ parameters.artifactsPublishingAdditionalParameters }}
|
||||||
|
dependsOn: ${{ parameters.publishDependsOn }}
|
||||||
|
publishInstallersAndChecksums: ${{ parameters.publishInstallersAndChecksums }}
|
||||||
|
symbolPublishingAdditionalParameters: ${{ parameters.symbolPublishingAdditionalParameters }}
|
||||||
|
stageName: 'NetCore_Release30_Publish'
|
||||||
|
channelName: '.NET Core 3.0 Release'
|
||||||
|
channelId: 19
|
||||||
|
transportFeed: 'https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet3-transport/nuget/v3/index.json'
|
||||||
|
shippingFeed: 'https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet3/nuget/v3/index.json'
|
||||||
|
symbolsFeed: 'https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet3-symbols/nuget/v3/index.json'
|
||||||
|
|
||||||
|
- template: \eng\common\templates\post-build\channels\generic-public-channel.yml
|
||||||
|
parameters:
|
||||||
|
artifactsPublishingAdditionalParameters: ${{ parameters.artifactsPublishingAdditionalParameters }}
|
||||||
|
dependsOn: ${{ parameters.publishDependsOn }}
|
||||||
|
publishInstallersAndChecksums: ${{ parameters.publishInstallersAndChecksums }}
|
||||||
|
symbolPublishingAdditionalParameters: ${{ parameters.symbolPublishingAdditionalParameters }}
|
||||||
|
stageName: 'NetCore_Release31_Publish'
|
||||||
|
channelName: '.NET Core 3.1 Release'
|
||||||
|
channelId: 129
|
||||||
|
transportFeed: 'https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet3.1-transport/nuget/v3/index.json'
|
||||||
|
shippingFeed: 'https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet3.1/nuget/v3/index.json'
|
||||||
|
symbolsFeed: 'https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet3.1-symbols/nuget/v3/index.json'
|
||||||
|
|
||||||
|
- template: \eng\common\templates\post-build\channels\generic-public-channel.yml
|
||||||
|
parameters:
|
||||||
|
artifactsPublishingAdditionalParameters: ${{ parameters.artifactsPublishingAdditionalParameters }}
|
||||||
|
dependsOn: ${{ parameters.publishDependsOn }}
|
||||||
|
publishInstallersAndChecksums: ${{ parameters.publishInstallersAndChecksums }}
|
||||||
|
symbolPublishingAdditionalParameters: ${{ parameters.symbolPublishingAdditionalParameters }}
|
||||||
|
stageName: 'NetCore_Blazor31_Features_Publish'
|
||||||
|
channelName: '.NET Core 3.1 Blazor Features'
|
||||||
|
channelId: 531
|
||||||
|
transportFeed: 'https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet3.1-blazor/nuget/v3/index.json'
|
||||||
|
shippingFeed: 'https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet3.1-blazor/nuget/v3/index.json'
|
||||||
|
symbolsFeed: 'https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet3.1-blazor-symbols/nuget/v3/index.json'
|
||||||
|
|
||||||
|
- template: \eng\common\templates\post-build\channels\generic-internal-channel.yml
|
||||||
|
parameters:
|
||||||
|
artifactsPublishingAdditionalParameters: ${{ parameters.artifactsPublishingAdditionalParameters }}
|
||||||
|
dependsOn: ${{ parameters.publishDependsOn }}
|
||||||
|
publishInstallersAndChecksums: ${{ parameters.publishInstallersAndChecksums }}
|
||||||
|
symbolPublishingAdditionalParameters: ${{ parameters.symbolPublishingAdditionalParameters }}
|
||||||
|
stageName: 'NetCore_30_Internal_Servicing_Publishing'
|
||||||
|
channelName: '.NET Core 3.0 Internal Servicing'
|
||||||
|
channelId: 184
|
||||||
|
transportFeed: 'https://pkgs.dev.azure.com/dnceng/_packaging/dotnet3-internal-transport/nuget/v3/index.json'
|
||||||
|
shippingFeed: 'https://pkgs.dev.azure.com/dnceng/_packaging/dotnet3-internal/nuget/v3/index.json'
|
||||||
|
symbolsFeed: 'https://pkgs.dev.azure.com/dnceng/_packaging/dotnet3-internal-symbols/nuget/v3/index.json'
|
||||||
|
|
||||||
|
- template: \eng\common\templates\post-build\channels\generic-public-channel.yml
|
||||||
|
parameters:
|
||||||
|
artifactsPublishingAdditionalParameters: ${{ parameters.artifactsPublishingAdditionalParameters }}
|
||||||
|
dependsOn: ${{ parameters.publishDependsOn }}
|
||||||
|
publishInstallersAndChecksums: ${{ parameters.publishInstallersAndChecksums }}
|
||||||
|
symbolPublishingAdditionalParameters: ${{ parameters.symbolPublishingAdditionalParameters }}
|
||||||
|
stageName: 'General_Testing_Publish'
|
||||||
|
channelName: 'General Testing'
|
||||||
|
channelId: 529
|
||||||
|
transportFeed: 'https://pkgs.dev.azure.com/dnceng/public/_packaging/general-testing/nuget/v3/index.json'
|
||||||
|
shippingFeed: 'https://pkgs.dev.azure.com/dnceng/public/_packaging/general-testing/nuget/v3/index.json'
|
||||||
|
symbolsFeed: 'https://pkgs.dev.azure.com/dnceng/public/_packaging/general-testing-symbols/nuget/v3/index.json'
|
||||||
|
|
||||||
|
- template: \eng\common\templates\post-build\channels\generic-public-channel.yml
|
||||||
|
parameters:
|
||||||
|
artifactsPublishingAdditionalParameters: ${{ parameters.artifactsPublishingAdditionalParameters }}
|
||||||
|
dependsOn: ${{ parameters.publishDependsOn }}
|
||||||
|
publishInstallersAndChecksums: ${{ parameters.publishInstallersAndChecksums }}
|
||||||
|
symbolPublishingAdditionalParameters: ${{ parameters.symbolPublishingAdditionalParameters }}
|
||||||
|
stageName: 'NETCore_Tooling_Dev_Publishing'
|
||||||
|
channelName: '.NET Core Tooling Dev'
|
||||||
|
channelId: 548
|
||||||
|
transportFeed: 'https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-tools/nuget/v3/index.json'
|
||||||
|
shippingFeed: 'https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-tools/nuget/v3/index.json'
|
||||||
|
symbolsFeed: 'https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-tools-symbols/nuget/v3/index.json'
|
||||||
|
|
||||||
|
- template: \eng\common\templates\post-build\channels\generic-public-channel.yml
|
||||||
|
parameters:
|
||||||
|
artifactsPublishingAdditionalParameters: ${{ parameters.artifactsPublishingAdditionalParameters }}
|
||||||
|
dependsOn: ${{ parameters.publishDependsOn }}
|
||||||
|
publishInstallersAndChecksums: ${{ parameters.publishInstallersAndChecksums }}
|
||||||
|
symbolPublishingAdditionalParameters: ${{ parameters.symbolPublishingAdditionalParameters }}
|
||||||
|
stageName: 'NETCore_Tooling_Release_Publishing'
|
||||||
|
channelName: '.NET Core Tooling Release'
|
||||||
|
channelId: 549
|
||||||
|
transportFeed: 'https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-tools/nuget/v3/index.json'
|
||||||
|
shippingFeed: 'https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-tools/nuget/v3/index.json'
|
||||||
|
symbolsFeed: 'https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-tools-symbols/nuget/v3/index.json'
|
||||||
|
|
|
@ -4,6 +4,8 @@ jobs:
|
||||||
pool:
|
pool:
|
||||||
vmImage: 'windows-2019'
|
vmImage: 'windows-2019'
|
||||||
steps:
|
steps:
|
||||||
|
- checkout: none
|
||||||
|
|
||||||
- task: DownloadBuildArtifacts@0
|
- task: DownloadBuildArtifacts@0
|
||||||
displayName: Download Release Configs
|
displayName: Download Release Configs
|
||||||
inputs:
|
inputs:
|
||||||
|
@ -14,5 +16,25 @@ jobs:
|
||||||
name: setReleaseVars
|
name: setReleaseVars
|
||||||
displayName: Set Release Configs Vars
|
displayName: Set Release Configs Vars
|
||||||
inputs:
|
inputs:
|
||||||
filePath: $(Build.SourcesDirectory)/eng/common/post-build/setup-maestro-vars.ps1
|
targetType: inline
|
||||||
arguments: -ReleaseConfigsPath '$(Build.StagingDirectory)/ReleaseConfigs/ReleaseConfigs.txt'
|
script: |
|
||||||
|
try {
|
||||||
|
$Content = Get-Content $(Build.StagingDirectory)/ReleaseConfigs/ReleaseConfigs.txt
|
||||||
|
|
||||||
|
$BarId = $Content | Select -Index 0
|
||||||
|
|
||||||
|
$Channels = ""
|
||||||
|
$Content | Select -Index 1 | ForEach-Object { $Channels += "$_ ," }
|
||||||
|
|
||||||
|
$IsStableBuild = $Content | Select -Index 2
|
||||||
|
|
||||||
|
Write-Host "##vso[task.setvariable variable=BARBuildId;isOutput=true]$BarId"
|
||||||
|
Write-Host "##vso[task.setvariable variable=InitialChannels;isOutput=true]$Channels"
|
||||||
|
Write-Host "##vso[task.setvariable variable=IsStableBuild;isOutput=true]$IsStableBuild"
|
||||||
|
}
|
||||||
|
catch {
|
||||||
|
Write-Host $_
|
||||||
|
Write-Host $_.Exception
|
||||||
|
Write-Host $_.ScriptStackTrace
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
|
|
@ -23,6 +23,7 @@ parameters:
|
||||||
EnableXUnitReporter: false # optional -- true enables XUnit result reporting to Mission Control
|
EnableXUnitReporter: false # optional -- true enables XUnit result reporting to Mission Control
|
||||||
WaitForWorkItemCompletion: true # optional -- true will make the task wait until work items have been completed and fail the build if work items fail. False is "fire and forget."
|
WaitForWorkItemCompletion: true # optional -- true will make the task wait until work items have been completed and fail the build if work items fail. False is "fire and forget."
|
||||||
IsExternal: false # [DEPRECATED] -- doesn't do anything, jobs are external if HelixAccessToken is empty and Creator is set
|
IsExternal: false # [DEPRECATED] -- doesn't do anything, jobs are external if HelixAccessToken is empty and Creator is set
|
||||||
|
HelixBaseUri: 'https://helix.dot.net/' # optional -- sets the Helix API base URI (allows targeting int)
|
||||||
Creator: '' # optional -- if the build is external, use this to specify who is sending the job
|
Creator: '' # optional -- if the build is external, use this to specify who is sending the job
|
||||||
DisplayNamePrefix: 'Run Tests' # optional -- rename the beginning of the displayName of the steps in AzDO
|
DisplayNamePrefix: 'Run Tests' # optional -- rename the beginning of the displayName of the steps in AzDO
|
||||||
condition: succeeded() # optional -- condition for step to execute; defaults to succeeded()
|
condition: succeeded() # optional -- condition for step to execute; defaults to succeeded()
|
||||||
|
@ -55,6 +56,7 @@ steps:
|
||||||
DotNetCliVersion: ${{ parameters.DotNetCliVersion }}
|
DotNetCliVersion: ${{ parameters.DotNetCliVersion }}
|
||||||
EnableXUnitReporter: ${{ parameters.EnableXUnitReporter }}
|
EnableXUnitReporter: ${{ parameters.EnableXUnitReporter }}
|
||||||
WaitForWorkItemCompletion: ${{ parameters.WaitForWorkItemCompletion }}
|
WaitForWorkItemCompletion: ${{ parameters.WaitForWorkItemCompletion }}
|
||||||
|
HelixBaseUri: ${{ parameters.HelixBaseUri }}
|
||||||
Creator: ${{ parameters.Creator }}
|
Creator: ${{ parameters.Creator }}
|
||||||
SYSTEM_ACCESSTOKEN: $(System.AccessToken)
|
SYSTEM_ACCESSTOKEN: $(System.AccessToken)
|
||||||
condition: and(${{ parameters.condition }}, eq(variables['Agent.Os'], 'Windows_NT'))
|
condition: and(${{ parameters.condition }}, eq(variables['Agent.Os'], 'Windows_NT'))
|
||||||
|
@ -85,6 +87,7 @@ steps:
|
||||||
DotNetCliVersion: ${{ parameters.DotNetCliVersion }}
|
DotNetCliVersion: ${{ parameters.DotNetCliVersion }}
|
||||||
EnableXUnitReporter: ${{ parameters.EnableXUnitReporter }}
|
EnableXUnitReporter: ${{ parameters.EnableXUnitReporter }}
|
||||||
WaitForWorkItemCompletion: ${{ parameters.WaitForWorkItemCompletion }}
|
WaitForWorkItemCompletion: ${{ parameters.WaitForWorkItemCompletion }}
|
||||||
|
HelixBaseUri: ${{ parameters.HelixBaseUri }}
|
||||||
Creator: ${{ parameters.Creator }}
|
Creator: ${{ parameters.Creator }}
|
||||||
SYSTEM_ACCESSTOKEN: $(System.AccessToken)
|
SYSTEM_ACCESSTOKEN: $(System.AccessToken)
|
||||||
condition: and(${{ parameters.condition }}, ne(variables['Agent.Os'], 'Windows_NT'))
|
condition: and(${{ parameters.condition }}, ne(variables['Agent.Os'], 'Windows_NT'))
|
||||||
|
|
|
@ -49,6 +49,8 @@
|
||||||
# An array of names of processes to stop on script exit if prepareMachine is true.
|
# An array of names of processes to stop on script exit if prepareMachine is true.
|
||||||
$processesToStopOnExit = if (Test-Path variable:processesToStopOnExit) { $processesToStopOnExit } else { @("msbuild", "dotnet", "vbcscompiler") }
|
$processesToStopOnExit = if (Test-Path variable:processesToStopOnExit) { $processesToStopOnExit } else { @("msbuild", "dotnet", "vbcscompiler") }
|
||||||
|
|
||||||
|
$disableConfigureToolsetImport = if (Test-Path variable:disableConfigureToolsetImport) { $disableConfigureToolsetImport } else { $null }
|
||||||
|
|
||||||
set-strictmode -version 2.0
|
set-strictmode -version 2.0
|
||||||
$ErrorActionPreference = "Stop"
|
$ErrorActionPreference = "Stop"
|
||||||
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
|
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
|
||||||
|
@ -175,7 +177,14 @@ function InstallDotNetSdk([string] $dotnetRoot, [string] $version, [string] $arc
|
||||||
InstallDotNet $dotnetRoot $version $architecture
|
InstallDotNet $dotnetRoot $version $architecture
|
||||||
}
|
}
|
||||||
|
|
||||||
function InstallDotNet([string] $dotnetRoot, [string] $version, [string] $architecture = "", [string] $runtime = "", [bool] $skipNonVersionedFiles = $false) {
|
function InstallDotNet([string] $dotnetRoot,
|
||||||
|
[string] $version,
|
||||||
|
[string] $architecture = "",
|
||||||
|
[string] $runtime = "",
|
||||||
|
[bool] $skipNonVersionedFiles = $false,
|
||||||
|
[string] $runtimeSourceFeed = "",
|
||||||
|
[string] $runtimeSourceFeedKey = "") {
|
||||||
|
|
||||||
$installScript = GetDotNetInstallScript $dotnetRoot
|
$installScript = GetDotNetInstallScript $dotnetRoot
|
||||||
$installParameters = @{
|
$installParameters = @{
|
||||||
Version = $version
|
Version = $version
|
||||||
|
@ -186,10 +195,29 @@ function InstallDotNet([string] $dotnetRoot, [string] $version, [string] $archit
|
||||||
if ($runtime) { $installParameters.Runtime = $runtime }
|
if ($runtime) { $installParameters.Runtime = $runtime }
|
||||||
if ($skipNonVersionedFiles) { $installParameters.SkipNonVersionedFiles = $skipNonVersionedFiles }
|
if ($skipNonVersionedFiles) { $installParameters.SkipNonVersionedFiles = $skipNonVersionedFiles }
|
||||||
|
|
||||||
& $installScript @installParameters
|
try {
|
||||||
if ($lastExitCode -ne 0) {
|
& $installScript @installParameters
|
||||||
Write-PipelineTelemetryError -Category "InitializeToolset" -Message "Failed to install dotnet cli (exit code '$lastExitCode')."
|
}
|
||||||
ExitWithExitCode $lastExitCode
|
catch {
|
||||||
|
Write-PipelineTelemetryError -Category "InitializeToolset" -Message "Failed to install dotnet runtime '$runtime' from public location."
|
||||||
|
|
||||||
|
# Only the runtime can be installed from a custom [private] location.
|
||||||
|
if ($runtime -and ($runtimeSourceFeed -or $runtimeSourceFeedKey)) {
|
||||||
|
if ($runtimeSourceFeed) { $installParameters.AzureFeed = $runtimeSourceFeed }
|
||||||
|
|
||||||
|
if ($runtimeSourceFeedKey) {
|
||||||
|
$decodedBytes = [System.Convert]::FromBase64String($runtimeSourceFeedKey)
|
||||||
|
$decodedString = [System.Text.Encoding]::UTF8.GetString($decodedBytes)
|
||||||
|
$installParameters.FeedCredential = $decodedString
|
||||||
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
|
& $installScript @installParameters
|
||||||
|
}
|
||||||
|
catch {
|
||||||
|
Write-PipelineTelemetryError -Category "InitializeToolset" -Message "Failed to install dotnet runtime '$runtime' from custom location '$runtimeSourceFeed'."
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -418,7 +446,7 @@ function GetSdkTaskProject([string]$taskName) {
|
||||||
}
|
}
|
||||||
|
|
||||||
function InitializeNativeTools() {
|
function InitializeNativeTools() {
|
||||||
if (Get-Member -InputObject $GlobalJson -Name "native-tools") {
|
if (-Not (Test-Path variable:DisableNativeToolsetInstalls) -And (Get-Member -InputObject $GlobalJson -Name "native-tools")) {
|
||||||
$nativeArgs= @{}
|
$nativeArgs= @{}
|
||||||
if ($ci) {
|
if ($ci) {
|
||||||
$nativeArgs = @{
|
$nativeArgs = @{
|
||||||
|
@ -599,3 +627,12 @@ Write-PipelineSetVariable -Name 'Artifacts.Toolset' -Value $ToolsetDir
|
||||||
Write-PipelineSetVariable -Name 'Artifacts.Log' -Value $LogDir
|
Write-PipelineSetVariable -Name 'Artifacts.Log' -Value $LogDir
|
||||||
Write-PipelineSetVariable -Name 'TEMP' -Value $TempDir
|
Write-PipelineSetVariable -Name 'TEMP' -Value $TempDir
|
||||||
Write-PipelineSetVariable -Name 'TMP' -Value $TempDir
|
Write-PipelineSetVariable -Name 'TMP' -Value $TempDir
|
||||||
|
|
||||||
|
# Import custom tools configuration, if present in the repo.
|
||||||
|
# Note: Import in global scope so that the script set top-level variables without qualification.
|
||||||
|
if (!$disableConfigureToolsetImport) {
|
||||||
|
$configureToolsetScript = Join-Path $EngRoot "configure-toolset.ps1"
|
||||||
|
if (Test-Path $configureToolsetScript) {
|
||||||
|
. $configureToolsetScript
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
@ -4,6 +4,7 @@
|
||||||
|
|
||||||
# CI mode - set to true on CI server for PR validation build or official build.
|
# CI mode - set to true on CI server for PR validation build or official build.
|
||||||
ci=${ci:-false}
|
ci=${ci:-false}
|
||||||
|
disable_configure_toolset_import=${disable_configure_toolset_import:-}
|
||||||
|
|
||||||
# Set to true to use the pipelines logger which will enable Azure logging output.
|
# Set to true to use the pipelines logger which will enable Azure logging output.
|
||||||
# https://github.com/Microsoft/azure-pipelines-tasks/blob/master/docs/authoring/commands.md
|
# https://github.com/Microsoft/azure-pipelines-tasks/blob/master/docs/authoring/commands.md
|
||||||
|
@ -191,8 +192,28 @@ function InstallDotNet {
|
||||||
fi
|
fi
|
||||||
bash "$install_script" --version $version --install-dir "$root" $archArg $runtimeArg $skipNonVersionedFilesArg || {
|
bash "$install_script" --version $version --install-dir "$root" $archArg $runtimeArg $skipNonVersionedFilesArg || {
|
||||||
local exit_code=$?
|
local exit_code=$?
|
||||||
Write-PipelineTelemetryError -category 'InitializeToolset' "Failed to install dotnet SDK (exit code '$exit_code')."
|
Write-PipelineTelemetryError -category 'InitializeToolset' "Failed to install dotnet SDK from public location (exit code '$exit_code')."
|
||||||
ExitWithExitCode $exit_code
|
|
||||||
|
if [[ -n "$runtimeArg" ]]; then
|
||||||
|
local runtimeSourceFeed=''
|
||||||
|
if [[ -n "${6:-}" ]]; then
|
||||||
|
runtimeSourceFeed="--azure-feed $6"
|
||||||
|
fi
|
||||||
|
|
||||||
|
local runtimeSourceFeedKey=''
|
||||||
|
if [[ -n "${7:-}" ]]; then
|
||||||
|
decodedFeedKey=`echo $7 | base64 --decode`
|
||||||
|
runtimeSourceFeedKey="--feed-credential $decodedFeedKey"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ -n "$runtimeSourceFeed" || -n "$runtimeSourceFeedKey" ]]; then
|
||||||
|
bash "$install_script" --version $version --install-dir "$root" $archArg $runtimeArg $skipNonVersionedFilesArg $runtimeSourceFeed $runtimeSourceFeedKey || {
|
||||||
|
local exit_code=$?
|
||||||
|
Write-PipelineTelemetryError -category 'InitializeToolset' "Failed to install dotnet SDK from custom location '$runtimeSourceFeed' (exit code '$exit_code')."
|
||||||
|
ExitWithExitCode $exit_code
|
||||||
|
}
|
||||||
|
fi
|
||||||
|
fi
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -252,6 +273,9 @@ function GetNuGetPackageCachePath {
|
||||||
}
|
}
|
||||||
|
|
||||||
function InitializeNativeTools() {
|
function InitializeNativeTools() {
|
||||||
|
if [[ -n "${DisableNativeToolsetInstalls:-}" ]]; then
|
||||||
|
return
|
||||||
|
fi
|
||||||
if grep -Fq "native-tools" $global_json_file
|
if grep -Fq "native-tools" $global_json_file
|
||||||
then
|
then
|
||||||
local nativeArgs=""
|
local nativeArgs=""
|
||||||
|
@ -411,3 +435,18 @@ Write-PipelineSetVariable -name "Artifacts.Toolset" -value "$toolset_dir"
|
||||||
Write-PipelineSetVariable -name "Artifacts.Log" -value "$log_dir"
|
Write-PipelineSetVariable -name "Artifacts.Log" -value "$log_dir"
|
||||||
Write-PipelineSetVariable -name "Temp" -value "$temp_dir"
|
Write-PipelineSetVariable -name "Temp" -value "$temp_dir"
|
||||||
Write-PipelineSetVariable -name "TMP" -value "$temp_dir"
|
Write-PipelineSetVariable -name "TMP" -value "$temp_dir"
|
||||||
|
|
||||||
|
# Import custom tools configuration, if present in the repo.
|
||||||
|
if [[ -z "$disable_configure_toolset_import" ]]; then
|
||||||
|
configure_toolset_script="$eng_root/configure-toolset.sh"
|
||||||
|
if [[ -a "$configure_toolset_script" ]]; then
|
||||||
|
. "$configure_toolset_script"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
# TODO: https://github.com/dotnet/arcade/issues/1468
|
||||||
|
# Temporary workaround to avoid breaking change.
|
||||||
|
# Remove once repos are updated.
|
||||||
|
if [[ -n "${useInstalledDotNetCli:-}" ]]; then
|
||||||
|
use_installed_dotnet_cli="$useInstalledDotNetCli"
|
||||||
|
fi
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
"dotnet": "3.0.100"
|
"dotnet": "3.0.100"
|
||||||
},
|
},
|
||||||
"msbuild-sdks": {
|
"msbuild-sdks": {
|
||||||
"Microsoft.DotNet.Arcade.Sdk": "5.0.0-beta.19501.4",
|
"Microsoft.DotNet.Arcade.Sdk": "5.0.0-beta.19566.1",
|
||||||
"Microsoft.DotNet.Helix.Sdk": "2.0.0-beta.19201.12"
|
"Microsoft.DotNet.Helix.Sdk": "2.0.0-beta.19201.12"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -38,6 +38,7 @@ namespace Microsoft.DotNet.HelixPoolProvider
|
||||||
public string HelixEndpoint => _configuration[nameof(HelixEndpoint)];
|
public string HelixEndpoint => _configuration[nameof(HelixEndpoint)];
|
||||||
public int MaxParallelism => Int32.Parse(_configuration[nameof(MaxParallelism)]);
|
public int MaxParallelism => Int32.Parse(_configuration[nameof(MaxParallelism)]);
|
||||||
|
|
||||||
|
|
||||||
public bool TryGetSecret(string secretName, out string secretValue)
|
public bool TryGetSecret(string secretName, out string secretValue)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
|
|
|
@ -15,6 +15,7 @@ using Microsoft.Extensions.Primitives;
|
||||||
using Newtonsoft.Json.Linq;
|
using Newtonsoft.Json.Linq;
|
||||||
using System;
|
using System;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
|
using System.Threading;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
namespace Microsoft.DotNet.HelixPoolProvider.Controllers
|
namespace Microsoft.DotNet.HelixPoolProvider.Controllers
|
||||||
|
@ -93,7 +94,7 @@ namespace Microsoft.DotNet.HelixPoolProvider.Controllers
|
||||||
[HttpPost("/acquireagent", Name = nameof(AcquireAgent))]
|
[HttpPost("/acquireagent", Name = nameof(AcquireAgent))]
|
||||||
[ValidateModelState]
|
[ValidateModelState]
|
||||||
[Authorize(Policy = "ValidAzDORequestSource")]
|
[Authorize(Policy = "ValidAzDORequestSource")]
|
||||||
public async Task<IActionResult> AcquireAgent([FromBody] AgentAcquireItem agentRequestItem)
|
public async Task<IActionResult> AcquireAgent([FromBody] AgentAcquireItem agentRequestItem, CancellationToken cancellationToken)
|
||||||
{
|
{
|
||||||
(string orchestrationId, string jobName) = ExtractRequestSourceInfo();
|
(string orchestrationId, string jobName) = ExtractRequestSourceInfo();
|
||||||
|
|
||||||
|
@ -105,7 +106,6 @@ namespace Microsoft.DotNet.HelixPoolProvider.Controllers
|
||||||
// 1. Determine what queue VSTS is asking for.
|
// 1. Determine what queue VSTS is asking for.
|
||||||
// 2. Determine whether such a queue exists in Helix (and whether we can use it)
|
// 2. Determine whether such a queue exists in Helix (and whether we can use it)
|
||||||
// 3. If the queue exists, submit work to it.
|
// 3. If the queue exists, submit work to it.
|
||||||
|
|
||||||
string queueId;
|
string queueId;
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
@ -131,7 +131,9 @@ namespace Microsoft.DotNet.HelixPoolProvider.Controllers
|
||||||
{
|
{
|
||||||
return Json(new AgentInfoItem() { accepted = false });
|
return Json(new AgentInfoItem() { accepted = false });
|
||||||
}
|
}
|
||||||
return Json(await jobCreator.CreateJob());
|
cancellationToken.ThrowIfCancellationRequested();
|
||||||
|
var agentInfoItem = await jobCreator.CreateJob(cancellationToken);
|
||||||
|
return Json(agentInfoItem);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -187,15 +189,12 @@ namespace Microsoft.DotNet.HelixPoolProvider.Controllers
|
||||||
IHelixApi api;
|
IHelixApi api;
|
||||||
if (isAnonymous)
|
if (isAnonymous)
|
||||||
{
|
{
|
||||||
api = ApiFactory.GetAnonymous();
|
api = ApiFactory.GetAnonymous(_configuration.HelixEndpoint);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
api = ApiFactory.GetAuthenticated(_configuration.ApiAuthorizationPat);
|
api = ApiFactory.GetAuthenticated(_configuration.HelixEndpoint, _configuration.ApiAuthorizationPat);
|
||||||
}
|
}
|
||||||
// Alter the base URI based on configuration. It's also useful to note that in the current version of the API, the endpoint isn't
|
|
||||||
// defaulted to https, and so unless this is done every request will fail.
|
|
||||||
api.BaseUri = new Uri(_configuration.HelixEndpoint);
|
|
||||||
return api;
|
return api;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -230,7 +229,7 @@ namespace Microsoft.DotNet.HelixPoolProvider.Controllers
|
||||||
private string ExtractQueueId(object agentSpecification)
|
private string ExtractQueueId(object agentSpecification)
|
||||||
{
|
{
|
||||||
_logger.LogTrace($"Extracting target queue from agent spec {agentSpecification}");
|
_logger.LogTrace($"Extracting target queue from agent spec {agentSpecification}");
|
||||||
|
|
||||||
if (agentSpecification == null)
|
if (agentSpecification == null)
|
||||||
{
|
{
|
||||||
_logger.LogError("Agent specification is not present in agent request");
|
_logger.LogError("Agent specification is not present in agent request");
|
||||||
|
@ -338,10 +337,8 @@ namespace Microsoft.DotNet.HelixPoolProvider.Controllers
|
||||||
{
|
{
|
||||||
_logger.LogTrace($"Looking up work item details for agent {workItemId} in Helix Job {correlationId}");
|
_logger.LogTrace($"Looking up work item details for agent {workItemId} in Helix Job {correlationId}");
|
||||||
|
|
||||||
using (IHelixApi api = GetHelixApi(agentRequestStatusItem.agentData.isPublicQueue))
|
IHelixApi api = GetHelixApi(agentRequestStatusItem.agentData.isPublicQueue);
|
||||||
{
|
workItemDetails = await api.WorkItem.DetailsAsync(correlationId, workItemId);
|
||||||
workItemDetails = await api.WorkItem.DetailsAsync(correlationId, workItemId);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
catch (Exception e)
|
catch (Exception e)
|
||||||
{
|
{
|
||||||
|
@ -400,18 +397,16 @@ namespace Microsoft.DotNet.HelixPoolProvider.Controllers
|
||||||
{
|
{
|
||||||
_logger.LogTrace($"Looking up available helix queues.");
|
_logger.LogTrace($"Looking up available helix queues.");
|
||||||
|
|
||||||
using (IHelixApi api = GetHelixApi(false))
|
IHelixApi api = GetHelixApi(false);
|
||||||
{
|
var helixQueues = await api.Information.QueueInfoListAsync();
|
||||||
var helixQueues = await api.Information.QueueInfoListAsync();
|
|
||||||
|
|
||||||
AgentDefinitionsItem agentDefinitions = new AgentDefinitionsItem()
|
AgentDefinitionsItem agentDefinitions = new AgentDefinitionsItem()
|
||||||
{
|
{
|
||||||
value = helixQueues.Where(q => IsAllowableQueue(q))
|
value = helixQueues.Where(q => IsAllowableQueue(q))
|
||||||
.Select<QueueInfo, AgentDefinitionItem>(q =>
|
.Select<QueueInfo, AgentDefinitionItem>(q =>
|
||||||
new AgentDefinitionItem(q, GetAgentDefinitionUrl(q.QueueId))).ToList()
|
new AgentDefinitionItem(q, GetAgentDefinitionUrl(q.QueueId))).ToList()
|
||||||
};
|
};
|
||||||
return new JsonResult(agentDefinitions);
|
return new JsonResult(agentDefinitions);
|
||||||
}
|
|
||||||
}
|
}
|
||||||
catch (Exception e)
|
catch (Exception e)
|
||||||
{
|
{
|
||||||
|
@ -432,20 +427,18 @@ namespace Microsoft.DotNet.HelixPoolProvider.Controllers
|
||||||
{
|
{
|
||||||
_logger.LogTrace($"Looking helix queue named {agentDefinitionId}");
|
_logger.LogTrace($"Looking helix queue named {agentDefinitionId}");
|
||||||
|
|
||||||
using (IHelixApi api = GetHelixApi(false))
|
IHelixApi api = GetHelixApi(false);
|
||||||
|
var queueInfo = await api.Information.QueueInfoAsync(agentDefinitionId);
|
||||||
|
|
||||||
|
// Filter the queue info based on the allowable helix queues.
|
||||||
|
if (!IsAllowableQueue(queueInfo))
|
||||||
{
|
{
|
||||||
var queueInfo = await api.Information.QueueInfoAsync(agentDefinitionId);
|
return NotFound();
|
||||||
|
|
||||||
// Filter the queue info based on the allowable helix queues.
|
|
||||||
if(!IsAllowableQueue(queueInfo))
|
|
||||||
{
|
|
||||||
return NotFound();
|
|
||||||
}
|
|
||||||
|
|
||||||
return new JsonResult(
|
|
||||||
new AgentDefinitionItem(queueInfo, GetAgentDefinitionUrl(queueInfo.QueueId))
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return new JsonResult(
|
||||||
|
new AgentDefinitionItem(queueInfo, GetAgentDefinitionUrl(queueInfo.QueueId))
|
||||||
|
);
|
||||||
}
|
}
|
||||||
catch (Exception e)
|
catch (Exception e)
|
||||||
{
|
{
|
||||||
|
|
|
@ -11,6 +11,7 @@ using Microsoft.Rest;
|
||||||
using Newtonsoft.Json;
|
using Newtonsoft.Json;
|
||||||
using System;
|
using System;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
|
using System.Threading;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
namespace Microsoft.DotNet.HelixPoolProvider
|
namespace Microsoft.DotNet.HelixPoolProvider
|
||||||
|
@ -80,35 +81,45 @@ namespace Microsoft.DotNet.HelixPoolProvider
|
||||||
|
|
||||||
public string StartupScriptPath => _hostingEnvironment.WebRootFileProvider.GetFileInfo(Path.Combine("startupscripts", StartupScriptName)).PhysicalPath;
|
public string StartupScriptPath => _hostingEnvironment.WebRootFileProvider.GetFileInfo(Path.Combine("startupscripts", StartupScriptName)).PhysicalPath;
|
||||||
|
|
||||||
public async Task<AgentInfoItem> CreateJob()
|
public async Task<AgentInfoItem> CreateJob(CancellationToken cancellationToken)
|
||||||
{
|
{
|
||||||
string credentialsPath = null;
|
string credentialsPath = null;
|
||||||
string agentSettingsPath = null;
|
string agentSettingsPath = null;
|
||||||
|
ISentJob job = null;
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
_logger.LogInformation($"Submitting new Helix job to queue {_queueInfo.QueueId} for agent id {_agentRequestItem.agentId}");
|
_logger.LogInformation($"Creating payloads for agent id {_agentRequestItem.agentId}");
|
||||||
|
|
||||||
credentialsPath = CreateAgentCredentialsPayload();
|
credentialsPath = CreateAgentCredentialsPayload();
|
||||||
agentSettingsPath = CreateAgentSettingsPayload();
|
agentSettingsPath = CreateAgentSettingsPayload();
|
||||||
|
|
||||||
// Now that we have a valid queue, construct the Helix job on that queue
|
// Now that we have a valid queue, construct the Helix job on that queue
|
||||||
var job = await _api.Job.Define()
|
|
||||||
|
/// Notes: if we timeout, it's going to be in the subsequent call.
|
||||||
|
/// SendAsync() causes both the storage account container creation / uploads and sends to Helix API, which both can stall.
|
||||||
|
/// We have to do this this way (and non-ideal workarounds like trying to destroy the object won't likely solve this) because today
|
||||||
|
/// the job, if started, will still contain valid Azure DevOps tokens to be a build agent and we can't easily guarantee it doesn't get sent.
|
||||||
|
/// ********************************
|
||||||
|
/// The right long-term fix is for Azure DevOps to not have the tokens passed be usable until they've received an "accepted = true" response from our provider.
|
||||||
|
/// ********************************
|
||||||
|
cancellationToken.ThrowIfCancellationRequested();
|
||||||
|
job = await _api.Job.Define()
|
||||||
.WithType($"byoc/{_configuration.HelixCreator}/")
|
.WithType($"byoc/{_configuration.HelixCreator}/")
|
||||||
.WithTargetQueue(_queueInfo.QueueId)
|
.WithTargetQueue(_queueInfo.QueueId)
|
||||||
.WithContainerName(_configuration.ContainerName)
|
.WithContainerName(_configuration.ContainerName)
|
||||||
.WithCorrelationPayloadUris(AgentPayloadUri)
|
.WithCorrelationPayloadUris(AgentPayloadUri)
|
||||||
.WithStorageAccountConnectionString(_configuration.ConnectionString)
|
|
||||||
.WithSource($"agent/{_agentRequestItem.accountId}/{_orchestrationId}/{_jobName}/")
|
.WithSource($"agent/{_agentRequestItem.accountId}/{_orchestrationId}/{_jobName}/")
|
||||||
.DefineWorkItem(_agentRequestItem.agentId)
|
.DefineWorkItem(_agentRequestItem.agentId)
|
||||||
.WithCommand(ConstructCommand())
|
.WithCommand(ConstructCommand())
|
||||||
.WithFiles(credentialsPath, agentSettingsPath, StartupScriptPath)
|
.WithFiles(credentialsPath, agentSettingsPath, StartupScriptPath)
|
||||||
.WithTimeout(TimeSpan.FromMinutes((double)_configuration.TimeoutInMinutes))
|
.WithTimeout(TimeSpan.FromMinutes((double)_configuration.TimeoutInMinutes))
|
||||||
.AttachToJob()
|
.AttachToJob()
|
||||||
.SendAsync();
|
.SendAsync(null, cancellationToken);
|
||||||
|
_logger.LogInformation($"Successfully submitted new Helix job {job.CorrelationId} (Agent id {_agentRequestItem.agentId}) to queue { _queueInfo.QueueId}");
|
||||||
|
|
||||||
_logger.LogInformation("Successfully submitted new Helix job {helixJob} (work item {workItemName}) to queue {queueId}",
|
// In case the cancellation token got signalled between above and here, let's try to cancel the Helix Job.
|
||||||
job.CorrelationId, _agentRequestItem.agentId, _queueInfo.QueueId);
|
cancellationToken.ThrowIfCancellationRequested();
|
||||||
|
|
||||||
// TODO Add extra info into the agent info item blob
|
// TODO Add extra info into the agent info item blob
|
||||||
return new AgentInfoItem()
|
return new AgentInfoItem()
|
||||||
|
@ -126,6 +137,16 @@ namespace Microsoft.DotNet.HelixPoolProvider
|
||||||
|
|
||||||
return new AgentInfoItem() { accepted = false };
|
return new AgentInfoItem() { accepted = false };
|
||||||
}
|
}
|
||||||
|
catch (OperationCanceledException ranOutOfTime) when (ranOutOfTime.CancellationToken == cancellationToken)
|
||||||
|
{
|
||||||
|
_logger.LogError($"Unable to complete request to create Helix job in specified timeout, attempting to cancel it.");
|
||||||
|
if (job != null && !string.IsNullOrEmpty(job.CorrelationId))
|
||||||
|
{
|
||||||
|
await _api.Job.CancelAsync(job.CorrelationId);
|
||||||
|
_logger.LogError($"Possible race condition: cancelled Helix Job '{job.CorrelationId}' may still run.");
|
||||||
|
}
|
||||||
|
return new AgentInfoItem() { accepted = false };
|
||||||
|
}
|
||||||
catch (Exception e)
|
catch (Exception e)
|
||||||
{
|
{
|
||||||
_logger.LogError(e, $"Failed to submit new Helix job to queue {_queueInfo.QueueId} for agent id {_agentRequestItem.agentId}");
|
_logger.LogError(e, $"Failed to submit new Helix job to queue {_queueInfo.QueueId} for agent id {_agentRequestItem.agentId}");
|
||||||
|
|
|
@ -14,7 +14,7 @@
|
||||||
],
|
],
|
||||||
"HelixCreator": "helixpoolprovider-dncenginternal-int",
|
"HelixCreator": "helixpoolprovider-dncenginternal-int",
|
||||||
"TimeoutInMinutes": 600,
|
"TimeoutInMinutes": 600,
|
||||||
"HelixEndpoint": "https://helix.dot.net",
|
"HelixEndpoint": "https://helix.int-dot.net",
|
||||||
"MaxParallelism": 1000,
|
"MaxParallelism": 1000,
|
||||||
"Logging": {
|
"Logging": {
|
||||||
"IncludeScopes": false,
|
"IncludeScopes": false,
|
||||||
|
|
|
@ -18,7 +18,7 @@
|
||||||
],
|
],
|
||||||
"HelixCreator": "helixpoolprovider-dncengpublic-int",
|
"HelixCreator": "helixpoolprovider-dncengpublic-int",
|
||||||
"TimeoutInMinutes": 600,
|
"TimeoutInMinutes": 600,
|
||||||
"HelixEndpoint": "https://helix.dot.net",
|
"HelixEndpoint": "https://helix.int-dot.net",
|
||||||
"MaxParallelism": 1000,
|
"MaxParallelism": 1000,
|
||||||
"Logging": {
|
"Logging": {
|
||||||
"IncludeScopes": false,
|
"IncludeScopes": false,
|
||||||
|
|
Загрузка…
Ссылка в новой задаче