Skip to content

Commit ead2a0f

Browse files
authored
[release/8.0] Add internal pipeline to test IdentityModel nightlies (#55504)
* Add internal identity pipeline * 1es-ify IdentityModel test pipeline * Fix template path * Fix everything * Fix args * More arg fixing * Really skip template tests * NoWarn
1 parent 909f8a8 commit ead2a0f

File tree

12 files changed

+158
-4
lines changed

12 files changed

+158
-4
lines changed

.azure/pipelines/helix-matrix.yml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@ schedules:
1212
branches:
1313
include:
1414
- release/6.0
15-
- release/7.0
1615
- release/8.0
1716
always: false
1817

Lines changed: 101 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,101 @@
1+
# We only want to run IdentityModel matrix on main
2+
pr: none
3+
trigger: none
4+
schedules:
5+
# Cron timezone is UTC.
6+
- cron: "0 */12 * * *"
7+
branches:
8+
include:
9+
- release/8.0
10+
always: true
11+
12+
variables:
13+
- name: _UseHelixOpenQueues
14+
value: false
15+
- group: DotNet-HelixApi-Access
16+
- template: /eng/common/templates-official/variables/pool-providers.yml@self
17+
18+
resources:
19+
repositories:
20+
# Repo: 1ESPipelineTemplates/1ESPipelineTemplates
21+
- repository: 1esPipelines
22+
type: git
23+
name: 1ESPipelineTemplates/1ESPipelineTemplates
24+
ref: refs/tags/release
25+
26+
extends:
27+
template: v1/1ES.Official.PipelineTemplate.yml@1esPipelines
28+
parameters:
29+
sdl:
30+
sourceAnalysisPool:
31+
name: NetCore1ESPool-Svc-Internal
32+
image: 1es-windows-2022
33+
os: windows
34+
codeql:
35+
compiled:
36+
enabled: false
37+
justificationForDisabling: 'This is a test-only pipeline. The same product code is already scanned in the main pipeline (aspnetcore-ci)'
38+
39+
stages:
40+
- stage: build
41+
displayName: Build
42+
jobs:
43+
- template: .azure/pipelines/jobs/default-build.yml@self
44+
parameters:
45+
jobName: IdentityModel_helix_matrix_x64
46+
jobDisplayName: 'Tests: IdentityModel nightlies helix full matrix x64'
47+
agentOs: Windows
48+
timeoutInMinutes: 300
49+
steps:
50+
- task: NuGetAuthenticate@1
51+
inputs:
52+
forceReinstallCredentialProvider: true
53+
- task: NuGetCommand@2
54+
displayName: Install Microsoft.IdentityModel.Logging
55+
inputs:
56+
command: 'custom'
57+
arguments: 'install Microsoft.IdentityModel.Logging
58+
-Source https://pkgs.dev.azure.com/dnceng/internal/_packaging/identitymodel-nightlies/nuget/v3/index.json
59+
-DependencyVersion Highest -OutputDirectory $(Build.StagingDirectory) -PreRelease'
60+
- task: NuGetCommand@2
61+
displayName: Install Microsoft.IdentityModel.Protocols.OpenIdConnect
62+
inputs:
63+
command: 'custom'
64+
arguments: 'install Microsoft.IdentityModel.Protocols.OpenIdConnect
65+
-Source https://pkgs.dev.azure.com/dnceng/internal/_packaging/identitymodel-nightlies/nuget/v3/index.json
66+
-DependencyVersion Highest -OutputDirectory $(Build.StagingDirectory) -PreRelease'
67+
- task: NuGetCommand@2
68+
displayName: Install Microsoft.IdentityModel.Protocols.WsFederation
69+
inputs:
70+
command: 'custom'
71+
arguments: 'install Microsoft.IdentityModel.Protocols.WsFederation
72+
-Source https://pkgs.dev.azure.com/dnceng/internal/_packaging/identitymodel-nightlies/nuget/v3/index.json
73+
-DependencyVersion Highest -OutputDirectory $(Build.StagingDirectory) -PreRelease'
74+
- task: NuGetCommand@2
75+
displayName: System.IdentityModel.Tokens.Jwt
76+
inputs:
77+
command: 'custom'
78+
arguments: 'install System.IdentityModel.Tokens.Jwt
79+
-Source https://pkgs.dev.azure.com/dnceng/internal/_packaging/identitymodel-nightlies/nuget/v3/index.json
80+
-DependencyVersion Highest -OutputDirectory $(Build.StagingDirectory) -PreRelease'
81+
- task: PowerShell@2
82+
displayName: Add IdentityModel feel to NuGet.config
83+
inputs:
84+
filePath: $(Build.SourcesDirectory)/eng/scripts/SetupIdentitySources.ps1
85+
arguments: -ConfigFile $(Build.SourcesDirectory)/NuGet.config -IdentityModelPackageSource $(Build.StagingDirectory)
86+
# Build the shared framework
87+
- script: ./eng/build.cmd -ci -nobl -all -pack -arch x64
88+
/p:CrossgenOutput=false /p:IsIdentityModelTestJob=true /p:ASPNETCORE_TEST_LOG_DIR=artifacts/log
89+
displayName: Build shared fx
90+
# -noBuildRepoTasks -noBuildNative -noBuild to avoid repeating work done in the previous step.
91+
- script: .\eng\build.cmd -ci -nobl -all -noBuildRepoTasks -noBuildNative -noBuild -test
92+
-projects eng\helix\helix.proj /p:IsHelixJob=true /p:RunTemplateTests=false
93+
/p:CrossgenOutput=false /p:IsIdentityModelTestJob=true /p:ASPNETCORE_TEST_LOG_DIR=artifacts/log
94+
displayName: Run build.cmd helix target
95+
env:
96+
HelixApiAccessToken: $(HelixApiAccessToken) # Needed for internal queues
97+
SYSTEM_ACCESSTOKEN: $(System.AccessToken) # We need to set this env var to publish helix results to Azure Dev Ops
98+
artifacts:
99+
- name: Helix_logs
100+
path: artifacts/log/
101+
publishOnError: true

Directory.Build.props

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -117,6 +117,8 @@
117117
<!-- Ensure API docs are available. -->
118118
<NoWarn>$(NoWarn.Replace('1591', ''))</NoWarn>
119119
<NoWarn Condition=" '$(BuildingInsideVisualStudio)' == 'true' ">$(NoWarn);0105</NoWarn>
120+
<!-- Allow prerelease dependencies in stable packages when we're running the IdentityModel nightly tests -->
121+
<NoWarn Condition=" '$(IsIdentityModelTestJob)' == 'true' ">$(NoWarn);NU5104</NoWarn>
120122

121123
<!-- For local builds, don't make missing XML docs a fatal build error, but still surface so we have visibility into undocumented APIs. -->
122124
<WarningsNotAsErrors Condition=" '$(ContinuousIntegrationBuild)' != 'true' ">$(WarningsNotAsErrors);CS1591</WarningsNotAsErrors>

eng/Versions.props

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,8 @@
1212
<PreReleaseVersionIteration>
1313
</PreReleaseVersionIteration>
1414
<ValidateBaseline>false</ValidateBaseline>
15-
<IdentityModelVersion>7.1.2</IdentityModelVersion>
15+
<IdentityModelVersion Condition="'$(IsIdentityModelTestJob)' != 'true'">7.1.2</IdentityModelVersion>
16+
<IdentityModelVersion Condition="'$(IsIdentityModelTestJob)' == 'true'">*-*</IdentityModelVersion>
1617
<!--
1718
When StabilizePackageVersion is set to 'true', this branch will produce stable outputs for 'Shipping' packages
1819
-->

eng/helix/helix.proj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
<!-- Microsoft.DotNet.Helix.Sdk.MultiQueue.targets splits $(HelixTargetQueues) into @(HelixTargetQueue) items. -->
2222
<ItemGroup Condition=" '$(HelixTargetQueues)' == '' ">
2323
<HelixTargetQueue Condition="'$(_UseHelixOpenQueues)' == 'true'" Include="@(HelixAvailableTargetQueue)" />
24-
<HelixTargetQueue Condition="'$(_UseHelixOpenQueues)' != 'true'" Include="@(HelixAvailableTargetQueue->'%(Identity)'->Replace('.Open',''))" />
24+
<HelixTargetQueue Condition="'$(_UseHelixOpenQueues)' != 'true'" Include="@(HelixAvailableTargetQueue->'%(Identity)'->Replace('.Open','')->Replace('.open',''))" />
2525
</ItemGroup>
2626

2727
<PropertyGroup>

eng/scripts/SetupIdentitySources.ps1

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
[CmdletBinding()]
2+
param (
3+
[Parameter(Mandatory = $true)][string]$ConfigFile,
4+
[Parameter(Mandatory = $true)][string]$IdentityModelPackageSource
5+
)
6+
7+
$ErrorActionPreference = "Stop"
8+
Set-StrictMode -Version 2.0
9+
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
10+
11+
# Add source entry to PackageSources
12+
function AddPackageSource($sources, $SourceName, $SourceEndPoint) {
13+
$packageSource = $sources.SelectSingleNode("add[@key='$SourceName']")
14+
15+
if ($packageSource -eq $null)
16+
{
17+
$packageSource = $doc.CreateElement("add")
18+
$packageSource.SetAttribute("key", $SourceName)
19+
$packageSource.SetAttribute("value", $SourceEndPoint)
20+
$sources.AppendChild($packageSource) | Out-Null
21+
}
22+
else {
23+
Write-Host "Package source $SourceName already present."
24+
}
25+
}
26+
27+
if (!(Test-Path $ConfigFile -PathType Leaf)) {
28+
Write-PipelineTelemetryError -Category 'Build' -Message "eng/scripts/SetupIdentitySources.ps1 returned a non-zero exit code. Couldn't find the NuGet config file: $ConfigFile"
29+
ExitWithExitCode 1
30+
}
31+
32+
# Load NuGet.config
33+
$doc = New-Object System.Xml.XmlDocument
34+
$filename = (Get-Item $ConfigFile).FullName
35+
$doc.Load($filename)
36+
37+
# Get reference to <PackageSources> or create one if none exist already
38+
$sources = $doc.DocumentElement.SelectSingleNode("packageSources")
39+
if ($sources -eq $null) {
40+
$sources = $doc.CreateElement("packageSources")
41+
$doc.DocumentElement.AppendChild($sources) | Out-Null
42+
}
43+
44+
AddPackageSource -Sources $sources -SourceName "identitymodel-nightlies" -SourceEndPoint $IdentityModelPackageSource
45+
46+
$doc.Save($filename)

eng/targets/Helix.targets

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -141,7 +141,7 @@
141141
<ItemGroup Condition="'$(_UseHelixOpenQueues)' != 'true'">
142142
<_Temp Include="@(HelixAvailableTargetQueue)" />
143143
<HelixAvailableTargetQueue Remove="@(HelixAvailableTargetQueue)" />
144-
<HelixAvailableTargetQueue Include="@(_Temp->'%(Identity)'->Replace('.Open',''))" />
144+
<HelixAvailableTargetQueue Include="@(_Temp->'%(Identity)'->Replace('.Open','')->Replace('.open',''))" />
145145
</ItemGroup>
146146

147147
<ItemGroup>

src/ProjectTemplates/test/Templates.Blazor.Tests/Templates.Blazor.Tests.csproj

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
<RunTemplateTests Condition="'$(RunTemplateTests)' == ''">true</RunTemplateTests>
1010
<RunBlazorPlaywrightTemplateTests Condition="'$(RunBlazorPlaywrightTemplateTests)' == ''">$(RunTemplateTests)</RunBlazorPlaywrightTemplateTests>
1111
<SkipTests Condition="'$(RunBlazorPlaywrightTemplateTests)' != 'true'">true</SkipTests>
12+
<BuildHelixPayload Condition="'$(RunBlazorPlaywrightTemplateTests)' != 'true'">false</BuildHelixPayload>
1213

1314
<BaseOutputPath />
1415
<OutputPath />

src/ProjectTemplates/test/Templates.Blazor.WebAssembly.Auth.Tests/Templates.Blazor.WebAssembly.Auth.Tests.csproj

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99

1010
<RunTemplateTests Condition="'$(RunTemplateTests)' == ''">true</RunTemplateTests>
1111
<SkipTests Condition="'$(RunTemplateTests)' != 'true'">true</SkipTests>
12+
<BuildHelixPayload Condition="'$(RunTemplateTests)' != 'true'">false</BuildHelixPayload>
1213

1314
<BaseOutputPath />
1415
<OutputPath />

src/ProjectTemplates/test/Templates.Blazor.WebAssembly.Tests/Templates.Blazor.WebAssembly.Tests.csproj

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99

1010
<RunTemplateTests Condition="'$(RunTemplateTests)' == ''">true</RunTemplateTests>
1111
<SkipTests Condition="'$(RunTemplateTests)' != 'true'">true</SkipTests>
12+
<BuildHelixPayload Condition="'$(RunTemplateTests)' != 'true'">false</BuildHelixPayload>
1213

1314
<BaseOutputPath />
1415
<OutputPath />

0 commit comments

Comments
 (0)