Skip to content

Commit 517ce07

Browse files
committed
Merge in 'release/6.0' changes
2 parents 6aec9b9 + a191f4d commit 517ce07

File tree

5 files changed

+239
-62
lines changed

5 files changed

+239
-62
lines changed

azure-pipelines-pr.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -61,12 +61,12 @@ pr:
6161
exclude:
6262
- Documentation/*
6363

64-
# Call the pipeline.yml template, which does the real work
64+
# Call the pipeline-pr.yml template, which does the real work
6565
stages:
6666
- stage: build
6767
displayName: Build
6868
jobs:
69-
- template: /eng/pipeline.yml
69+
- template: /eng/pipeline-pr.yml
7070
parameters:
7171
enablePublishUsingPipelines: $(_PublishUsingPipelines)
7272
${{ if and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}:

azure-pipelines.yml

Lines changed: 38 additions & 57 deletions
Original file line numberDiff line numberDiff line change
@@ -17,11 +17,8 @@ variables:
1717
value: WINDOWSDESKTOP
1818
- name: PostBuildSign
1919
value: true
20-
2120
- ${{ if and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}:
2221
- group: DotNet-Wpf-SDLValidation-Params
23-
24-
2522
# This is set in the pipeline directly
2623
# When set to false, CI tests will not be enabled in builds.
2724
#
@@ -33,9 +30,9 @@ variables:
3330
#
3431
# only trigger ci builds for the master and release branches
3532
trigger:
36-
batch: true
33+
batch: true
3734
branches:
38-
include:
35+
include:
3936
- main
4037
- release/3.*
4138
- release/5.*
@@ -46,55 +43,39 @@ trigger:
4643
paths:
4744
exclude:
4845
- Documentation/*
49-
50-
pr:
51-
autoCancel: true
52-
branches:
53-
include:
54-
- main
55-
- release/3.*
56-
- internal/release/3.*
57-
- release/5.*
58-
- release/6.*
59-
- experimental/*
60-
paths:
61-
exclude:
62-
- Documentation/*
63-
64-
# Call the pipeline.yml template, which does the real work
65-
stages:
66-
- stage: build
67-
displayName: Build
68-
jobs:
69-
- template: /eng/pipeline.yml
70-
parameters:
71-
enablePublishUsingPipelines: $(_PublishUsingPipelines)
72-
${{ if and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}:
73-
# agent pool can't be read from a user-defined variable (Azure DevOps limitation)
74-
pool:
75-
name: NetCore1ESPool-Svc-Internal
76-
demands: ImageOverride -equals windows.vs2019.amd64
77-
# runAsPublic is used in expressions, which can't read from user-defined variables
78-
runAsPublic: false
79-
80-
- ${{ if and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}:
81-
- template: eng\common\templates\post-build\post-build.yml
82-
parameters:
83-
publishingInfraVersion: 3
84-
enableSymbolValidation: false
85-
enableSigningValidation: false
86-
enableNugetValidation: false
87-
enableSourceLinkValidation: false
88-
# This is to enable SDL runs part of Post-Build Validation Stage
89-
SDLValidationParameters:
90-
enable: false
91-
params: ' -SourceToolsList @("policheck","credscan")
92-
-TsaInstanceURL $(_TsaInstanceURL)
93-
-TsaProjectName $(_TsaProjectName)
94-
-TsaNotificationEmail $(_TsaNotificationEmail)
95-
-TsaCodebaseAdmin $(_TsaCodebaseAdmin)
96-
-TsaBugAreaPath $(_TsaBugAreaPath)
97-
-TsaIterationPath $(_TsaIterationPath)
98-
-TsaRepositoryName "wpf"
99-
-TsaCodebaseName "wpf"
100-
-TsaPublish $True'
46+
resources:
47+
repositories:
48+
- repository: 1ESPipelineTemplates
49+
type: git
50+
name: 1ESPipelineTemplates/1ESPipelineTemplates
51+
ref: refs/tags/release
52+
extends:
53+
template: v1/1ES.Official.PipelineTemplate.yml@1ESPipelineTemplates
54+
parameters:
55+
featureFlags:
56+
autoBaseline: true
57+
pool:
58+
name: NetCore1ESPool-Internal
59+
image: 1es-windows-2022-pt
60+
os: windows
61+
customBuildTags:
62+
- ES365AIMigrationTooling
63+
stages:
64+
- stage: build
65+
displayName: Build
66+
jobs:
67+
- template: /eng/pipeline.yml@self
68+
parameters:
69+
${{ if and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}:
70+
runAsPublic: false
71+
- ${{ if and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}:
72+
- template: /eng/common/templates-official/post-build/post-build.yml@self
73+
parameters:
74+
publishingInfraVersion: 3
75+
enableSymbolValidation: false
76+
enableSigningValidation: false
77+
enableNugetValidation: false
78+
enableSourceLinkValidation: false
79+
SDLValidationParameters:
80+
enable: false
81+
params: ' -SourceToolsList @("policheck","credscan") -TsaInstanceURL $(_TsaInstanceURL) -TsaProjectName $(_TsaProjectName) -TsaNotificationEmail $(_TsaNotificationEmail) -TsaCodebaseAdmin $(_TsaCodebaseAdmin) -TsaBugAreaPath $(_TsaBugAreaPath) -TsaIterationPath $(_TsaIterationPath) -TsaRepositoryName "wpf" -TsaCodebaseName "wpf" -TsaPublish $True'

eng/Versions.props

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
<PropertyGroup>
44
<MajorVersion>6</MajorVersion>
55
<MinorVersion>0</MinorVersion>
6-
<PatchVersion>29</PatchVersion>
6+
<PatchVersion>30</PatchVersion>
77
<VersionPrefix>$(MajorVersion).$(MinorVersion).$(PatchVersion)</VersionPrefix>
88
<!--
99
Set assembly version to align with major and minor version, as for the patches and revisions should be manually

eng/pipeline-pr.yml

Lines changed: 196 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,196 @@
1+
#
2+
# This file should be kept in sync across https://www.github.com/dotnet/wpf and dotnet-wpf-int repos.
3+
#
4+
#
5+
6+
parameters:
7+
# Needed because runAsPublic is used in template expressions, which can't read from user-defined variables
8+
# Defaults to true
9+
runAsPublic: true
10+
repoName: dotnet/wpf
11+
12+
jobs:
13+
- ${{ if and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest'), eq(variables['Build.SourceBranch'], 'refs/heads/main')) }}:
14+
- template: /eng/common/templates/job/onelocbuild.yml
15+
parameters:
16+
MirrorRepo: wpf
17+
LclSource: lclFilesfromPackage
18+
LclPackageId: 'LCL-JUNO-PROD-WPF'
19+
- template: /eng/common/templates/jobs/jobs.yml
20+
parameters:
21+
enableMicrobuild: true
22+
enablePublishBuildArtifacts: true
23+
enablePublishTestResults: false # tests run in helix
24+
enablePublishBuildAssets: true
25+
enablePublishUsingPipelines: $(_PublishUsingPipelines)
26+
enableTelemetry: true
27+
helixRepo: $(repoName)
28+
29+
jobs:
30+
- job: Windows_NT
31+
timeoutInMinutes: 120 # how long to run the job before automatically cancelling; see https://github.com/dotnet/wpf/issues/952
32+
pool:
33+
# For public jobs, use the hosted pool. For internal jobs use the internal pool.
34+
# Will eventually change this to two BYOC pools.
35+
# agent pool can't be read from a user-defined variable (Azure DevOps limitation)
36+
${{ if eq(variables['System.TeamProject'], 'public') }}:
37+
name: NetCore-Svc-Public
38+
demands: ImageOverride -equals windows.vs2022preview.amd64.open
39+
${{ if eq(variables['System.TeamProject'], 'internal') }}:
40+
name: NetCore1ESPool-Svc-Internal
41+
demands: ImageOverride -equals windows.vs2022preview.amd64
42+
variables:
43+
# needed for signing
44+
- name: _TeamName
45+
value: DotNetCore
46+
- name: _SignType
47+
value: real
48+
- name: _SignArgs
49+
value: ''
50+
- name: _PublishArgs
51+
value: ''
52+
- name: _OfficialBuildIdArgs
53+
value: ''
54+
- name: _Platform
55+
value: x86
56+
- name: _PlatformArgs
57+
value: /p:Platform=$(_Platform)
58+
- name: _PublicBuildPipeline # We will run Helix tests when building in the open, but do not repeat when building and publishing again using the internal build-pipeline
59+
value: true
60+
- name: _TestHelixAgentPool
61+
value: 'Windows.10.Amd64.ClientRS5.Open' # Preferred:'Windows.10.Amd64.Open%3bWindows.7.Amd64.Open%3bWindows.10.Amd64.ClientRS5.Open'; See https://github.com/dotnet/wpf/issues/952
62+
- name: _HelixStagingDir
63+
value: $(BUILD.STAGINGDIRECTORY)\helix\functests
64+
- name: _HelixSource
65+
value: ${{ parameters.repoName }}/$(Build.SourceBranch)
66+
- name: _HelixToken
67+
value: ''
68+
- name: _HelixCreator
69+
value: ${{ parameters.repoName }}
70+
- ${{ if ne(variables['System.TeamProject'], 'internal') }}:
71+
- name: _InternalRuntimeDownloadArgs
72+
value: ''
73+
- ${{ if eq(variables['System.TeamProject'], 'internal') }}:
74+
- group: DotNetBuilds storage account read tokens
75+
- group: AzureDevOps-Artifact-Feeds-Pats
76+
- name: _InternalRuntimeDownloadArgs
77+
value: >-
78+
/p:DotNetRuntimeSourceFeed=https://dotnetbuilds.blob.core.windows.net/internal
79+
/p:DotNetRuntimeSourceFeedKey=$(dotnetbuilds-internal-container-read-token-base64)
80+
81+
82+
# Override some values if we're building internally
83+
- ${{ if eq(parameters.runAsPublic, 'false') }}:
84+
# note: You have to use list syntax here (- name: value) or you will get errors about declaring the same variable multiple times
85+
- name: _SignType
86+
value: real
87+
- group: DotNet-Blob-Feed
88+
- group: DotNet-Symbol-Server-Pats
89+
- group: DotNet-HelixApi-Access
90+
91+
# note: Even though they are referenced here, user defined variables (like $(_SignType)) are not resolved
92+
# until the agent is running on the machine. They can be overridden any time before they are resolved,
93+
# like in the job matrix below (see Build_Debug)
94+
- name: _SignArgs
95+
value: /p:DotNetSignType=$(_SignType) /p:TeamName=$(_TeamName)
96+
- name: _PublishArgs
97+
value:
98+
/p:DotNetPublishUsingPipelines=$(_PublishUsingPipelines)
99+
- name: _OfficialBuildIdArgs
100+
value: /p:OfficialBuildId=$(BUILD.BUILDNUMBER)
101+
- name: _PublicBuildPipeline
102+
value: false
103+
- name: _HelixSource
104+
value: official/${{ parameters.repoName }}/$(Build.SourceBranch)
105+
- name: _HelixToken
106+
value: '$(HelixApiAccessToken)' # from DotNet-HelixApi-Access group
107+
- name: _HelixCreator
108+
value: '' #if _HelixToken is set, Creator must be empty
109+
- name: _TestHelixAgentPool
110+
value: 'Windows.10.Amd64.ClientRS5' # Preferred: 'Windows.10.Amd64%3bWindows.7.Amd64%3bWindows.10.Amd64.ClientRS5'
111+
112+
strategy:
113+
matrix:
114+
${{ if eq(parameters.runAsPublic, 'true') }}:
115+
Build_Debug_x86:
116+
_BuildConfig: Debug
117+
# override some variables for debug
118+
# _SignType has to be real for package publishing to succeed - do not override to test.
119+
Build_Release_x86:
120+
_BuildConfig: Release
121+
${{ if eq(parameters.runAsPublic, 'true') }}:
122+
Build_Debug_x64:
123+
_BuildConfig: Debug
124+
# override some variables for debug
125+
# _SignType has to be real for package publishing to succeed - do not override to test.
126+
_Platform: x64
127+
Build_Release_x64:
128+
_BuildConfig: Release
129+
_Platform: x64
130+
${{ if eq(parameters.runAsPublic, 'true') }}:
131+
Build_Debug_arm64:
132+
_BuildConfig: Debug
133+
# override some variables for debug
134+
# _SignType has to be real for package publishing to succeed - do not override to test.
135+
_Platform: arm64
136+
Build_Release_arm64:
137+
_BuildConfig: Release
138+
_Platform: arm64
139+
steps:
140+
- checkout: self
141+
clean: true
142+
143+
# Set VSO Variable(s)
144+
- powershell: eng\pre-build.ps1
145+
displayName: Pre-Build - Set VSO Variables
146+
147+
- ${{ if ne(variables['System.TeamProject'], 'public') }}:
148+
- task: PowerShell@2
149+
displayName: Setup Private Feeds Credentials
150+
inputs:
151+
filePath: $(Build.SourcesDirectory)/eng/common/SetupNugetSources.ps1
152+
arguments: -ConfigFile $(Build.SourcesDirectory)/NuGet.config -Password $Env:Token
153+
env:
154+
Token: $(dn-bot-dnceng-artifact-feeds-rw)
155+
156+
# Use utility script to run script command dependent on agent OS.
157+
- script: eng\common\cibuild.cmd
158+
-configuration $(_BuildConfig)
159+
-prepareMachine
160+
$(_PublishArgs)
161+
$(_SignArgs)
162+
$(_OfficialBuildIdArgs)
163+
$(_PlatformArgs)
164+
$(_InternalRuntimeDownloadArgs)
165+
displayName: Windows Build / Publish
166+
# This condition should be kept in sync with the condition for 'Run DRTs' step
167+
# When building on a regular pipeline (!_HelixPipeline), build as usual
168+
# When building on a Helix pipeline, only build Release configs
169+
# (!_HelixPipeline) ||
170+
# (_HelixPipeline && _PublicBuildPipeline && _ContinuousIntegrationTestsEnabled && _BuildConfig == Release)
171+
condition: or(ne(variables['_HelixPipeline'], 'true'), and(eq(variables['_HelixPipeline'], 'true') ,eq(variables['_BuildConfig'], 'Release'), eq(variables['_PublicBuildPipeline'], 'true'), eq(variables['_ContinuousIntegrationTestsEnabled'], 'true')))
172+
173+
# Run DRTs
174+
- powershell: eng\common\cibuild.cmd
175+
-configuration $(_BuildConfig)
176+
$(_OfficialBuildIdArgs)
177+
$(_PlatformArgs)
178+
-projects $(Build.SourcesDirectory)\eng\helixpublish.proj
179+
/bl:$(BUILD.SOURCESDIRECTORY)\artifacts\log\$(_BuildConfig)\HelixDrt.binlog
180+
displayName: Run Developer Regression Tests on Helix Machine (Release)
181+
env:
182+
HelixSource: $(_HelixSource)
183+
HelixType: 'tests/drt'
184+
HelixBuild: $(Build.BuildNumber)
185+
HelixTargetQueues: $(_TestHelixAgentPool)
186+
HelixAccessToken: $(_HelixToken) # only defined for internal CI
187+
Creator: $(_HelixCreator)
188+
SYSTEM_ACCESSTOKEN: $(System.AccessToken)
189+
# This condition should be kept in sync with the condition for cibuild.cmd step with displayName: "Windows Build / Publish"
190+
# Only run ...
191+
# ...When building on a Helix pipeline, only build Release configs
192+
#
193+
# (_HelixPipeline && _PublicBuildPipeline && _ContinuousIntegrationTestsEnabled && _BuildConfig == Release)
194+
#
195+
condition: and(succeeded(), eq(variables['_HelixPipeline'], 'true') ,eq(variables['_BuildConfig'], 'Release'), eq(variables['_PublicBuildPipeline'], 'true'), eq(variables['_ContinuousIntegrationTestsEnabled'], 'true'))
196+

eng/pipeline.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,12 +11,12 @@ parameters:
1111

1212
jobs:
1313
- ${{ if and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest'), eq(variables['Build.SourceBranch'], 'refs/heads/main')) }}:
14-
- template: /eng/common/templates/job/onelocbuild.yml
14+
- template: /eng/common/templates-official/job/onelocbuild.yml@self
1515
parameters:
1616
MirrorRepo: wpf
1717
LclSource: lclFilesfromPackage
1818
LclPackageId: 'LCL-JUNO-PROD-WPF'
19-
- template: /eng/common/templates/jobs/jobs.yml
19+
- template: /eng/common/templates-official/jobs/jobs.yml@self
2020
parameters:
2121
enableMicrobuild: true
2222
enablePublishBuildArtifacts: true

0 commit comments

Comments
 (0)