зеркало из https://github.com/dotnet/extensions.git
Update dependencies from https://github.com/dotnet/arcade build 20240606.4 (#5213)
[dev] Update dependencies from dotnet/arcade
This commit is contained in:
Родитель
05bda65c44
Коммит
7968ca559b
|
@ -162,13 +162,13 @@
|
|||
</Dependency>
|
||||
</ProductDependencies>
|
||||
<ToolsetDependencies>
|
||||
<Dependency Name="Microsoft.DotNet.Arcade.Sdk" Version="9.0.0-beta.24281.1">
|
||||
<Dependency Name="Microsoft.DotNet.Arcade.Sdk" Version="9.0.0-beta.24306.4">
|
||||
<Uri>https://github.com/dotnet/arcade</Uri>
|
||||
<Sha>e6b3f32f9855dccbe2447471c8f729b66f17d242</Sha>
|
||||
<Sha>7507f80c8db285bbc9939c1dff522a761cf4edc0</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.DotNet.Helix.Sdk" Version="9.0.0-beta.24281.1">
|
||||
<Dependency Name="Microsoft.DotNet.Helix.Sdk" Version="9.0.0-beta.24306.4">
|
||||
<Uri>https://github.com/dotnet/arcade</Uri>
|
||||
<Sha>e6b3f32f9855dccbe2447471c8f729b66f17d242</Sha>
|
||||
<Sha>7507f80c8db285bbc9939c1dff522a761cf4edc0</Sha>
|
||||
</Dependency>
|
||||
</ToolsetDependencies>
|
||||
</Dependencies>
|
||||
|
|
|
@ -145,8 +145,7 @@ stages:
|
|||
displayName: Validate
|
||||
inputs:
|
||||
filePath: $(Build.SourcesDirectory)/eng/common/post-build/nuget-validation.ps1
|
||||
arguments: -PackagesPath $(Build.ArtifactStagingDirectory)/PackageArtifacts/
|
||||
-ToolDestinationPath $(Agent.BuildDirectory)/Extract/
|
||||
arguments: -PackagesPath $(Build.ArtifactStagingDirectory)/PackageArtifacts/
|
||||
|
||||
- job:
|
||||
displayName: Signing Validation
|
||||
|
|
|
@ -1,13 +0,0 @@
|
|||
parameters:
|
||||
ChannelId: 0
|
||||
|
||||
steps:
|
||||
- task: PowerShell@2
|
||||
displayName: Triggering subscriptions
|
||||
inputs:
|
||||
filePath: $(Build.SourcesDirectory)/eng/common/post-build/trigger-subscriptions.ps1
|
||||
arguments: -SourceRepo $(Build.Repository.Uri)
|
||||
-ChannelId ${{ parameters.ChannelId }}
|
||||
-MaestroApiAccessToken $(MaestroAccessToken)
|
||||
-MaestroApiEndPoint $(MaestroApiEndPoint)
|
||||
-MaestroApiVersion $(MaestroApiVersion)
|
|
@ -1,13 +0,0 @@
|
|||
parameters:
|
||||
ChannelId: 0
|
||||
|
||||
steps:
|
||||
- task: PowerShell@2
|
||||
displayName: Add Build to Channel
|
||||
inputs:
|
||||
filePath: $(Build.SourcesDirectory)/eng/common/post-build/add-build-to-channel.ps1
|
||||
arguments: -BuildId $(BARBuildId)
|
||||
-ChannelId ${{ parameters.ChannelId }}
|
||||
-MaestroApiAccessToken $(MaestroApiAccessToken)
|
||||
-MaestroApiEndPoint $(MaestroApiEndPoint)
|
||||
-MaestroApiVersion $(MaestroApiVersion)
|
|
@ -5,15 +5,15 @@ __NDK_Version=r21
|
|||
usage()
|
||||
{
|
||||
echo "Creates a toolchain and sysroot used for cross-compiling for Android."
|
||||
echo.
|
||||
echo
|
||||
echo "Usage: $0 [BuildArch] [ApiLevel]"
|
||||
echo.
|
||||
echo
|
||||
echo "BuildArch is the target architecture of Android. Currently only arm64 is supported."
|
||||
echo "ApiLevel is the target Android API level. API levels usually match to Android releases. See https://source.android.com/source/build-numbers.html"
|
||||
echo.
|
||||
echo
|
||||
echo "By default, the toolchain and sysroot will be generated in cross/android-rootfs/toolchain/[BuildArch]. You can change this behavior"
|
||||
echo "by setting the TOOLCHAIN_DIR environment variable"
|
||||
echo.
|
||||
echo
|
||||
echo "By default, the NDK will be downloaded into the cross/android-rootfs/android-ndk-$__NDK_Version directory. If you already have an NDK installation,"
|
||||
echo "you can set the NDK_DIR environment variable to have this script use that installation of the NDK."
|
||||
echo "By default, this script will generate a file, android_platform, in the root of the ROOTFS_DIR directory that contains the RID for the supported and tested Android build: android.28-arm64. This file is to replace '/etc/os-release', which is not available for Android."
|
||||
|
|
|
@ -1,48 +0,0 @@
|
|||
param(
|
||||
[Parameter(Mandatory=$true)][int] $BuildId,
|
||||
[Parameter(Mandatory=$true)][int] $ChannelId,
|
||||
[Parameter(Mandatory=$true)][string] $MaestroApiAccessToken,
|
||||
[Parameter(Mandatory=$false)][string] $MaestroApiEndPoint = 'https://maestro.dot.net',
|
||||
[Parameter(Mandatory=$false)][string] $MaestroApiVersion = '2019-01-16'
|
||||
)
|
||||
|
||||
try {
|
||||
. $PSScriptRoot\post-build-utils.ps1
|
||||
|
||||
# Check that the channel we are going to promote the build to exist
|
||||
$channelInfo = Get-MaestroChannel -ChannelId $ChannelId
|
||||
|
||||
if (!$channelInfo) {
|
||||
Write-PipelineTelemetryCategory -Category 'PromoteBuild' -Message "Channel with BAR ID $ChannelId was not found in BAR!"
|
||||
ExitWithExitCode 1
|
||||
}
|
||||
|
||||
# Get info about which channel(s) the build has already been promoted to
|
||||
$buildInfo = Get-MaestroBuild -BuildId $BuildId
|
||||
|
||||
if (!$buildInfo) {
|
||||
Write-PipelineTelemetryError -Category 'PromoteBuild' -Message "Build with BAR ID $BuildId was not found in BAR!"
|
||||
ExitWithExitCode 1
|
||||
}
|
||||
|
||||
# Find whether the build is already assigned to the channel or not
|
||||
if ($buildInfo.channels) {
|
||||
foreach ($channel in $buildInfo.channels) {
|
||||
if ($channel.Id -eq $ChannelId) {
|
||||
Write-Host "The build with BAR ID $BuildId is already on channel $ChannelId!"
|
||||
ExitWithExitCode 0
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Write-Host "Promoting build '$BuildId' to channel '$ChannelId'."
|
||||
|
||||
Assign-BuildToChannel -BuildId $BuildId -ChannelId $ChannelId
|
||||
|
||||
Write-Host 'done.'
|
||||
}
|
||||
catch {
|
||||
Write-Host $_
|
||||
Write-PipelineTelemetryError -Category 'PromoteBuild' -Message "There was an error while trying to promote build '$BuildId' to channel '$ChannelId'"
|
||||
ExitWithExitCode 1
|
||||
}
|
|
@ -4,7 +4,15 @@ param(
|
|||
)
|
||||
|
||||
try {
|
||||
. $PSScriptRoot\post-build-utils.ps1
|
||||
$ErrorActionPreference = 'Stop'
|
||||
Set-StrictMode -Version 2.0
|
||||
|
||||
# `tools.ps1` checks $ci to perform some actions. Since the post-build
|
||||
# scripts don't necessarily execute in the same agent that run the
|
||||
# build.ps1/sh script this variable isn't automatically set.
|
||||
$ci = $true
|
||||
$disableConfigureToolsetImport = $true
|
||||
. $PSScriptRoot\..\tools.ps1
|
||||
|
||||
if ($PromoteToChannels -eq "") {
|
||||
Write-PipelineTaskError -Type 'warning' -Message "This build won't publish assets as it's not configured to any Maestro channel. If that wasn't intended use Darc to configure a default channel using add-default-channel for this branch or to promote it to a channel using add-build-to-channel. See https://github.com/dotnet/arcade/blob/main/Documentation/Darc.md#assigning-an-individual-build-to-a-channel for more info."
|
||||
|
|
|
@ -2,20 +2,11 @@
|
|||
# tool: https://github.com/NuGet/NuGetGallery/tree/jver-verify/src/VerifyMicrosoftPackage
|
||||
|
||||
param(
|
||||
[Parameter(Mandatory=$true)][string] $PackagesPath, # Path to where the packages to be validated are
|
||||
[Parameter(Mandatory=$true)][string] $ToolDestinationPath # Where the validation tool should be downloaded to
|
||||
[Parameter(Mandatory=$true)][string] $PackagesPath # Path to where the packages to be validated are
|
||||
)
|
||||
|
||||
try {
|
||||
. $PSScriptRoot\post-build-utils.ps1
|
||||
|
||||
$url = 'https://raw.githubusercontent.com/NuGet/NuGetGallery/3e25ad135146676bcab0050a516939d9958bfa5d/src/VerifyMicrosoftPackage/verify.ps1'
|
||||
|
||||
New-Item -ItemType 'directory' -Path ${ToolDestinationPath} -Force
|
||||
|
||||
Invoke-WebRequest $url -OutFile ${ToolDestinationPath}\verify.ps1
|
||||
|
||||
& ${ToolDestinationPath}\verify.ps1 ${PackagesPath}\*.nupkg
|
||||
& $PSScriptRoot\nuget-verification.ps1 ${PackagesPath}\*.nupkg
|
||||
}
|
||||
catch {
|
||||
Write-Host $_.ScriptStackTrace
|
||||
|
|
|
@ -0,0 +1,121 @@
|
|||
<#
|
||||
.SYNOPSIS
|
||||
Verifies that Microsoft NuGet packages have proper metadata.
|
||||
.DESCRIPTION
|
||||
Downloads a verification tool and runs metadata validation on the provided NuGet packages. This script writes an
|
||||
error if any of the provided packages fail validation. All arguments provided to this PowerShell script that do not
|
||||
match PowerShell parameters are passed on to the verification tool downloaded during the execution of this script.
|
||||
.PARAMETER NuGetExePath
|
||||
The path to the nuget.exe binary to use. If not provided, nuget.exe will be downloaded into the -DownloadPath
|
||||
directory.
|
||||
.PARAMETER PackageSource
|
||||
The package source to use to download the verification tool. If not provided, nuget.org will be used.
|
||||
.PARAMETER DownloadPath
|
||||
The directory path to download the verification tool and nuget.exe to. If not provided,
|
||||
%TEMP%\NuGet.VerifyNuGetPackage will be used.
|
||||
.PARAMETER args
|
||||
Arguments that will be passed to the verification tool.
|
||||
.EXAMPLE
|
||||
PS> .\verify.ps1 *.nupkg
|
||||
Verifies the metadata of all .nupkg files in the currect working directory.
|
||||
.EXAMPLE
|
||||
PS> .\verify.ps1 --help
|
||||
Displays the help text of the downloaded verifiction tool.
|
||||
.LINK
|
||||
https://github.com/NuGet/NuGetGallery/blob/master/src/VerifyMicrosoftPackage/README.md
|
||||
#>
|
||||
|
||||
# This script was copied from https://github.com/NuGet/NuGetGallery/blob/3e25ad135146676bcab0050a516939d9958bfa5d/src/VerifyMicrosoftPackage/verify.ps1
|
||||
|
||||
[CmdletBinding(PositionalBinding = $false)]
|
||||
param(
|
||||
[string]$NuGetExePath,
|
||||
[string]$PackageSource = "https://api.nuget.org/v3/index.json",
|
||||
[string]$DownloadPath,
|
||||
[Parameter(ValueFromRemainingArguments = $true)]
|
||||
[string[]]$args
|
||||
)
|
||||
|
||||
# The URL to download nuget.exe.
|
||||
$nugetExeUrl = "https://dist.nuget.org/win-x86-commandline/v4.9.4/nuget.exe"
|
||||
|
||||
# The package ID of the verification tool.
|
||||
$packageId = "NuGet.VerifyMicrosoftPackage"
|
||||
|
||||
# The location that nuget.exe and the verification tool will be downloaded to.
|
||||
if (!$DownloadPath) {
|
||||
$DownloadPath = (Join-Path $env:TEMP "NuGet.VerifyMicrosoftPackage")
|
||||
}
|
||||
|
||||
$fence = New-Object -TypeName string -ArgumentList '=', 80
|
||||
|
||||
# Create the download directory, if it doesn't already exist.
|
||||
if (!(Test-Path $DownloadPath)) {
|
||||
New-Item -ItemType Directory $DownloadPath | Out-Null
|
||||
}
|
||||
Write-Host "Using download path: $DownloadPath"
|
||||
|
||||
if ($NuGetExePath) {
|
||||
$nuget = $NuGetExePath
|
||||
} else {
|
||||
$downloadedNuGetExe = Join-Path $DownloadPath "nuget.exe"
|
||||
|
||||
# Download nuget.exe, if it doesn't already exist.
|
||||
if (!(Test-Path $downloadedNuGetExe)) {
|
||||
Write-Host "Downloading nuget.exe from $nugetExeUrl..."
|
||||
$ProgressPreference = 'SilentlyContinue'
|
||||
try {
|
||||
Invoke-WebRequest $nugetExeUrl -OutFile $downloadedNuGetExe
|
||||
$ProgressPreference = 'Continue'
|
||||
} catch {
|
||||
$ProgressPreference = 'Continue'
|
||||
Write-Error $_
|
||||
Write-Error "nuget.exe failed to download."
|
||||
exit
|
||||
}
|
||||
}
|
||||
|
||||
$nuget = $downloadedNuGetExe
|
||||
}
|
||||
|
||||
Write-Host "Using nuget.exe path: $nuget"
|
||||
Write-Host " "
|
||||
|
||||
# Download the latest version of the verification tool.
|
||||
Write-Host "Downloading the latest version of $packageId from $packageSource..."
|
||||
Write-Host $fence
|
||||
& $nuget install $packageId `
|
||||
-Prerelease `
|
||||
-OutputDirectory $DownloadPath `
|
||||
-Source $PackageSource
|
||||
Write-Host $fence
|
||||
Write-Host " "
|
||||
|
||||
if ($LASTEXITCODE -ne 0) {
|
||||
Write-Error "nuget.exe failed to fetch the verify tool."
|
||||
exit
|
||||
}
|
||||
|
||||
# Find the most recently downloaded tool
|
||||
Write-Host "Finding the most recently downloaded verification tool."
|
||||
$verifyProbePath = Join-Path $DownloadPath "$packageId.*"
|
||||
$verifyPath = Get-ChildItem -Path $verifyProbePath -Directory `
|
||||
| Sort-Object -Property LastWriteTime -Descending `
|
||||
| Select-Object -First 1
|
||||
$verify = Join-Path $verifyPath "tools\NuGet.VerifyMicrosoftPackage.exe"
|
||||
Write-Host "Using verification tool: $verify"
|
||||
Write-Host " "
|
||||
|
||||
# Execute the verification tool.
|
||||
Write-Host "Executing the verify tool..."
|
||||
Write-Host $fence
|
||||
& $verify $args
|
||||
Write-Host $fence
|
||||
Write-Host " "
|
||||
|
||||
# Respond to the exit code.
|
||||
if ($LASTEXITCODE -ne 0) {
|
||||
Write-Error "The verify tool found some problems."
|
||||
} else {
|
||||
Write-Output "The verify tool succeeded."
|
||||
}
|
|
@ -1,91 +0,0 @@
|
|||
# Most of the functions in this file require the variables `MaestroApiEndPoint`,
|
||||
# `MaestroApiVersion` and `MaestroApiAccessToken` to be globally available.
|
||||
|
||||
$ErrorActionPreference = 'Stop'
|
||||
Set-StrictMode -Version 2.0
|
||||
|
||||
# `tools.ps1` checks $ci to perform some actions. Since the post-build
|
||||
# scripts don't necessarily execute in the same agent that run the
|
||||
# build.ps1/sh script this variable isn't automatically set.
|
||||
$ci = $true
|
||||
$disableConfigureToolsetImport = $true
|
||||
. $PSScriptRoot\..\tools.ps1
|
||||
|
||||
function Create-MaestroApiRequestHeaders([string]$ContentType = 'application/json') {
|
||||
Validate-MaestroVars
|
||||
|
||||
$headers = New-Object 'System.Collections.Generic.Dictionary[[String],[String]]'
|
||||
$headers.Add('Accept', $ContentType)
|
||||
$headers.Add('Authorization',"Bearer $MaestroApiAccessToken")
|
||||
return $headers
|
||||
}
|
||||
|
||||
function Get-MaestroChannel([int]$ChannelId) {
|
||||
Validate-MaestroVars
|
||||
|
||||
$apiHeaders = Create-MaestroApiRequestHeaders
|
||||
$apiEndpoint = "$MaestroApiEndPoint/api/channels/${ChannelId}?api-version=$MaestroApiVersion"
|
||||
|
||||
$result = try { Invoke-WebRequest -Method Get -Uri $apiEndpoint -Headers $apiHeaders | ConvertFrom-Json } catch { Write-Host "Error: $_" }
|
||||
return $result
|
||||
}
|
||||
|
||||
function Get-MaestroBuild([int]$BuildId) {
|
||||
Validate-MaestroVars
|
||||
|
||||
$apiHeaders = Create-MaestroApiRequestHeaders -AuthToken $MaestroApiAccessToken
|
||||
$apiEndpoint = "$MaestroApiEndPoint/api/builds/${BuildId}?api-version=$MaestroApiVersion"
|
||||
|
||||
$result = try { return Invoke-WebRequest -Method Get -Uri $apiEndpoint -Headers $apiHeaders | ConvertFrom-Json } catch { Write-Host "Error: $_" }
|
||||
return $result
|
||||
}
|
||||
|
||||
function Get-MaestroSubscriptions([string]$SourceRepository, [int]$ChannelId) {
|
||||
Validate-MaestroVars
|
||||
|
||||
$SourceRepository = [System.Web.HttpUtility]::UrlEncode($SourceRepository)
|
||||
$apiHeaders = Create-MaestroApiRequestHeaders -AuthToken $MaestroApiAccessToken
|
||||
$apiEndpoint = "$MaestroApiEndPoint/api/subscriptions?sourceRepository=$SourceRepository&channelId=$ChannelId&api-version=$MaestroApiVersion"
|
||||
|
||||
$result = try { Invoke-WebRequest -Method Get -Uri $apiEndpoint -Headers $apiHeaders | ConvertFrom-Json } catch { Write-Host "Error: $_" }
|
||||
return $result
|
||||
}
|
||||
|
||||
function Assign-BuildToChannel([int]$BuildId, [int]$ChannelId) {
|
||||
Validate-MaestroVars
|
||||
|
||||
$apiHeaders = Create-MaestroApiRequestHeaders -AuthToken $MaestroApiAccessToken
|
||||
$apiEndpoint = "$MaestroApiEndPoint/api/channels/${ChannelId}/builds/${BuildId}?api-version=$MaestroApiVersion"
|
||||
Invoke-WebRequest -Method Post -Uri $apiEndpoint -Headers $apiHeaders | Out-Null
|
||||
}
|
||||
|
||||
function Trigger-Subscription([string]$SubscriptionId) {
|
||||
Validate-MaestroVars
|
||||
|
||||
$apiHeaders = Create-MaestroApiRequestHeaders -AuthToken $MaestroApiAccessToken
|
||||
$apiEndpoint = "$MaestroApiEndPoint/api/subscriptions/$SubscriptionId/trigger?api-version=$MaestroApiVersion"
|
||||
Invoke-WebRequest -Uri $apiEndpoint -Headers $apiHeaders -Method Post | Out-Null
|
||||
}
|
||||
|
||||
function Validate-MaestroVars {
|
||||
try {
|
||||
Get-Variable MaestroApiEndPoint | Out-Null
|
||||
Get-Variable MaestroApiVersion | Out-Null
|
||||
Get-Variable MaestroApiAccessToken | Out-Null
|
||||
|
||||
if (!($MaestroApiEndPoint -Match '^http[s]?://maestro-(int|prod).westus2.cloudapp.azure.com$')) {
|
||||
Write-PipelineTelemetryError -Category 'MaestroVars' -Message "MaestroApiEndPoint is not a valid Maestro URL. '$MaestroApiEndPoint'"
|
||||
ExitWithExitCode 1
|
||||
}
|
||||
|
||||
if (!($MaestroApiVersion -Match '^[0-9]{4}-[0-9]{2}-[0-9]{2}$')) {
|
||||
Write-PipelineTelemetryError -Category 'MaestroVars' -Message "MaestroApiVersion does not match a version string in the format yyyy-MM-DD. '$MaestroApiVersion'"
|
||||
ExitWithExitCode 1
|
||||
}
|
||||
}
|
||||
catch {
|
||||
Write-PipelineTelemetryError -Category 'MaestroVars' -Message 'Error: Variables `MaestroApiEndPoint`, `MaestroApiVersion` and `MaestroApiAccessToken` are required while using this script.'
|
||||
Write-Host $_
|
||||
ExitWithExitCode 1
|
||||
}
|
||||
}
|
|
@ -10,7 +10,12 @@ param(
|
|||
)
|
||||
|
||||
try {
|
||||
. $PSScriptRoot\post-build-utils.ps1
|
||||
# `tools.ps1` checks $ci to perform some actions. Since the post-build
|
||||
# scripts don't necessarily execute in the same agent that run the
|
||||
# build.ps1/sh script this variable isn't automatically set.
|
||||
$ci = $true
|
||||
$disableConfigureToolsetImport = $true
|
||||
. $PSScriptRoot\..\tools.ps1
|
||||
|
||||
$darc = Get-Darc
|
||||
|
||||
|
@ -38,6 +43,7 @@ try {
|
|||
--azdev-pat $AzdoToken `
|
||||
--bar-uri $MaestroApiEndPoint `
|
||||
--password $MaestroToken `
|
||||
--disable-interactive-auth `
|
||||
@optionalParams
|
||||
|
||||
if ($LastExitCode -ne 0) {
|
||||
|
|
|
@ -11,7 +11,15 @@ param(
|
|||
)
|
||||
|
||||
try {
|
||||
. $PSScriptRoot\post-build-utils.ps1
|
||||
$ErrorActionPreference = 'Stop'
|
||||
Set-StrictMode -Version 2.0
|
||||
|
||||
# `tools.ps1` checks $ci to perform some actions. Since the post-build
|
||||
# scripts don't necessarily execute in the same agent that run the
|
||||
# build.ps1/sh script this variable isn't automatically set.
|
||||
$ci = $true
|
||||
$disableConfigureToolsetImport = $true
|
||||
. $PSScriptRoot\..\tools.ps1
|
||||
|
||||
$packageName = 'binlogtool'
|
||||
|
||||
|
|
|
@ -6,7 +6,15 @@ param(
|
|||
[Parameter(Mandatory=$true)][string] $SourcelinkCliVersion # Version of SourceLink CLI to use
|
||||
)
|
||||
|
||||
. $PSScriptRoot\post-build-utils.ps1
|
||||
$ErrorActionPreference = 'Stop'
|
||||
Set-StrictMode -Version 2.0
|
||||
|
||||
# `tools.ps1` checks $ci to perform some actions. Since the post-build
|
||||
# scripts don't necessarily execute in the same agent that run the
|
||||
# build.ps1/sh script this variable isn't automatically set.
|
||||
$ci = $true
|
||||
$disableConfigureToolsetImport = $true
|
||||
. $PSScriptRoot\..\tools.ps1
|
||||
|
||||
# Cache/HashMap (File -> Exist flag) used to consult whether a file exist
|
||||
# in the repository at a specific commit point. This is populated by inserting
|
||||
|
|
|
@ -322,8 +322,6 @@ function InstallDotnetSymbol {
|
|||
}
|
||||
|
||||
try {
|
||||
. $PSScriptRoot\post-build-utils.ps1
|
||||
|
||||
InstallDotnetSymbol
|
||||
|
||||
foreach ($Job in @(Get-Job)) {
|
||||
|
|
|
@ -1,64 +0,0 @@
|
|||
param(
|
||||
[Parameter(Mandatory=$true)][string] $SourceRepo,
|
||||
[Parameter(Mandatory=$true)][int] $ChannelId,
|
||||
[Parameter(Mandatory=$true)][string] $MaestroApiAccessToken,
|
||||
[Parameter(Mandatory=$false)][string] $MaestroApiEndPoint = 'https://maestro.dot.net',
|
||||
[Parameter(Mandatory=$false)][string] $MaestroApiVersion = '2019-01-16'
|
||||
)
|
||||
|
||||
try {
|
||||
. $PSScriptRoot\post-build-utils.ps1
|
||||
|
||||
# Get all the $SourceRepo subscriptions
|
||||
$normalizedSourceRepo = $SourceRepo.Replace('dnceng@', '')
|
||||
$subscriptions = Get-MaestroSubscriptions -SourceRepository $normalizedSourceRepo -ChannelId $ChannelId
|
||||
|
||||
if (!$subscriptions) {
|
||||
Write-PipelineTelemetryError -Category 'TriggerSubscriptions' -Message "No subscriptions found for source repo '$normalizedSourceRepo' in channel '$ChannelId'"
|
||||
ExitWithExitCode 0
|
||||
}
|
||||
|
||||
$subscriptionsToTrigger = New-Object System.Collections.Generic.List[string]
|
||||
$failedTriggeredSubscription = $false
|
||||
|
||||
# Get all enabled subscriptions that need dependency flow on 'everyBuild'
|
||||
foreach ($subscription in $subscriptions) {
|
||||
if ($subscription.enabled -and $subscription.policy.updateFrequency -like 'everyBuild' -and $subscription.channel.id -eq $ChannelId) {
|
||||
Write-Host "Should trigger this subscription: ${$subscription.id}"
|
||||
[void]$subscriptionsToTrigger.Add($subscription.id)
|
||||
}
|
||||
}
|
||||
|
||||
foreach ($subscriptionToTrigger in $subscriptionsToTrigger) {
|
||||
try {
|
||||
Write-Host "Triggering subscription '$subscriptionToTrigger'."
|
||||
|
||||
Trigger-Subscription -SubscriptionId $subscriptionToTrigger
|
||||
|
||||
Write-Host 'done.'
|
||||
}
|
||||
catch
|
||||
{
|
||||
Write-Host "There was an error while triggering subscription '$subscriptionToTrigger'"
|
||||
Write-Host $_
|
||||
Write-Host $_.ScriptStackTrace
|
||||
$failedTriggeredSubscription = $true
|
||||
}
|
||||
}
|
||||
|
||||
if ($subscriptionsToTrigger.Count -eq 0) {
|
||||
Write-Host "No subscription matched source repo '$normalizedSourceRepo' and channel ID '$ChannelId'."
|
||||
}
|
||||
elseif ($failedTriggeredSubscription) {
|
||||
Write-PipelineTelemetryError -Category 'TriggerSubscriptions' -Message 'At least one subscription failed to be triggered...'
|
||||
ExitWithExitCode 1
|
||||
}
|
||||
else {
|
||||
Write-Host 'All subscriptions were triggered successfully!'
|
||||
}
|
||||
}
|
||||
catch {
|
||||
Write-Host $_.ScriptStackTrace
|
||||
Write-PipelineTelemetryError -Category 'TriggerSubscriptions' -Message $_
|
||||
ExitWithExitCode 1
|
||||
}
|
|
@ -76,13 +76,11 @@ eng\common\
|
|||
source-build.yml (shim)
|
||||
post-build\
|
||||
post-build.yml (shim)
|
||||
trigger-subscription.yml (shim)
|
||||
common-variabls.yml (shim)
|
||||
setup-maestro-vars.yml (shim)
|
||||
steps\
|
||||
publish-build-artifacts.yml (logic)
|
||||
publish-pipeline-artifacts.yml (logic)
|
||||
add-build-channel.yml (shim)
|
||||
component-governance.yml (shim)
|
||||
generate-sbom.yml (shim)
|
||||
publish-logs.yml (shim)
|
||||
|
@ -107,9 +105,7 @@ eng\common\
|
|||
common-variabls.yml (logic)
|
||||
post-build.yml (logic)
|
||||
setup-maestro-vars.yml (logic)
|
||||
trigger-subscription.yml (logic)
|
||||
steps\
|
||||
add-build-to-channel.yml (logic)
|
||||
component-governance.yml (logic)
|
||||
generate-sbom.yml (logic)
|
||||
publish-build-artifacts.yml (redirect)
|
||||
|
|
|
@ -1,13 +0,0 @@
|
|||
parameters:
|
||||
ChannelId: 0
|
||||
|
||||
steps:
|
||||
- task: PowerShell@2
|
||||
displayName: Triggering subscriptions
|
||||
inputs:
|
||||
filePath: $(Build.SourcesDirectory)/eng/common/post-build/trigger-subscriptions.ps1
|
||||
arguments: -SourceRepo $(Build.Repository.Uri)
|
||||
-ChannelId ${{ parameters.ChannelId }}
|
||||
-MaestroApiAccessToken $(MaestroAccessToken)
|
||||
-MaestroApiEndPoint $(MaestroApiEndPoint)
|
||||
-MaestroApiVersion $(MaestroApiVersion)
|
|
@ -1,7 +0,0 @@
|
|||
steps:
|
||||
- template: /eng/common/core-templates/steps/add-build-to-channel.yml
|
||||
parameters:
|
||||
is1ESPipeline: true
|
||||
|
||||
${{ each parameter in parameters }}:
|
||||
${{ parameter.key }}: ${{ parameter.value }}
|
|
@ -1,13 +0,0 @@
|
|||
parameters:
|
||||
ChannelId: 0
|
||||
|
||||
steps:
|
||||
- task: PowerShell@2
|
||||
displayName: Triggering subscriptions
|
||||
inputs:
|
||||
filePath: $(Build.SourcesDirectory)/eng/common/post-build/trigger-subscriptions.ps1
|
||||
arguments: -SourceRepo $(Build.Repository.Uri)
|
||||
-ChannelId ${{ parameters.ChannelId }}
|
||||
-MaestroApiAccessToken $(MaestroAccessToken)
|
||||
-MaestroApiEndPoint $(MaestroApiEndPoint)
|
||||
-MaestroApiVersion $(MaestroApiVersion)
|
|
@ -1,7 +0,0 @@
|
|||
steps:
|
||||
- template: /eng/common/core-templates/steps/add-build-to-channel.yml
|
||||
parameters:
|
||||
is1ESPipeline: false
|
||||
|
||||
${{ each parameter in parameters }}:
|
||||
${{ parameter.key }}: ${{ parameter.value }}
|
|
@ -18,7 +18,7 @@
|
|||
"msbuild-sdks": {
|
||||
"Microsoft.Build.NoTargets": "3.7.0",
|
||||
"Microsoft.Build.Traversal": "3.2.0",
|
||||
"Microsoft.DotNet.Arcade.Sdk": "9.0.0-beta.24281.1",
|
||||
"Microsoft.DotNet.Helix.Sdk": "9.0.0-beta.24281.1"
|
||||
"Microsoft.DotNet.Arcade.Sdk": "9.0.0-beta.24306.4",
|
||||
"Microsoft.DotNet.Helix.Sdk": "9.0.0-beta.24306.4"
|
||||
}
|
||||
}
|
||||
|
|
Загрузка…
Ссылка в новой задаче