Skip to content

56138352: Use the global default version of LKG compiler #5208

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Draft
wants to merge 22 commits into
base: main
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
22 commits
Select commit Hold shift + click to select a range
31ab2c6
Update ProjectReunion-CI.yml
alexlamtest Mar 6, 2025
cc55f64
Update ProjectReunion-BuildFoundation.yml
alexlamtest Mar 6, 2025
8a1b017
Update WindowsAppSDK-Foundation-Nightly.yml
alexlamtest Mar 6, 2025
50d1d9c
Update WindowsAppSDK-Foundation-Official.yml
alexlamtest Mar 6, 2025
e5b32aa
Update WindowsAppSDK-Foundation-PR.yml
alexlamtest Mar 6, 2025
8775fac
Update WindowsAppSDK-CommonVariables.yml
alexlamtest Mar 6, 2025
534f516
Update WindowsAppSDK-Build-Stage.yml
alexlamtest Mar 6, 2025
2ace7bc
Update WindowsAppSDK-BuildInstaller-Stage.yml
alexlamtest Mar 6, 2025
b583c83
Update ProjectReunion-BuildFoundation.yml
alexlamtest Mar 13, 2025
c5e412c
Update ProjectReunion-CI.yml
alexlamtest Mar 13, 2025
2008fae
Update ProjectReunion-BuildFoundation.yml
alexlamtest Mar 13, 2025
ff5ad54
Update WindowsAppSDK-Foundation-Nightly.yml
alexlamtest Mar 13, 2025
ab24a1e
Update WindowsAppSDK-Foundation-Official.yml
alexlamtest Mar 13, 2025
3e436d2
Update WindowsAppSDK-Foundation-PR.yml
alexlamtest Mar 13, 2025
262abdd
Update WindowsAppSDK-Build-Stage.yml
alexlamtest Mar 13, 2025
2c24ea4
Update WindowsAppSDK-BuildFoundation-Steps.yml
alexlamtest Mar 13, 2025
94bcad2
Update WindowsAppSDK-BuildInstaller-Stage.yml
alexlamtest Mar 13, 2025
d642dba
Update WindowsAppSDK-BuildInstaller-Steps.yml
alexlamtest Mar 13, 2025
b2dae7f
Update WindowsAppSDK-BuildMRT-Steps.yml
alexlamtest Mar 13, 2025
772c67b
Update WindowsAppSDK-Build-Stage.yml
alexlamtest Mar 13, 2025
aef2160
Update WindowsAppSDK-Build-Stage.yml
alexlamtest Mar 14, 2025
0ce74af
Update WindowsAppSDK-BuildInstaller-Stage.yml
alexlamtest Mar 14, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
111 changes: 92 additions & 19 deletions build/AzurePipelinesTemplates/WindowsAppSDK-Build-Stage.yml
Original file line number Diff line number Diff line change
Expand Up @@ -57,16 +57,52 @@ stages:
buildConfiguration: 'release'
normalizedConfiguration: 'fre'
variables:
ob_outputDirectory: '$(REPOROOT)\out'
ob_sdl_codeSignValidation_excludes: '-|**\Release\**;-|**\packages\**'
ob_artifactBaseName: "FoundationBinaries_$(buildConfiguration)_$(buildPlatform)"
${{ if parameters.runStaticAnalysis }}:
ob_sdl_apiscan_enabled: true
${{ if not( parameters.runStaticAnalysis ) }}:
ob_sdl_apiscan_enabled: false
ob_sdl_apiscan_softwareFolder: '$(build.SourcesDirectory)\APIScanTarget'
ob_sdl_apiscan_symbolsFolder: '$(build.SourcesDirectory)\APIScanTarget;SRV*https://symweb.azurefd.net'
- name: ob_outputDirectory
value: '$(REPOROOT)\out'
- name: ob_sdl_codeSignValidation_excludes
value: '-|**\Release\**;-|**\packages\**'
- name: ob_artifactBaseName
value: "FoundationBinaries_$(buildConfiguration)_$(buildPlatform)"
- name: ob_sdl_apiscan_enabled
${{ if parameters.runStaticAnalysis }}:
value: true
${{ else }}:
value: false
- name: ob_sdl_apiscan_softwareFolder
value: '$(build.SourcesDirectory)\APIScanTarget'
- name: ob_sdl_apiscan_symbolsFolder
value: '$(build.SourcesDirectory)\APIScanTarget;SRV*https://symweb.azurefd.net'
- ${{ if contains(variables['Build.SourceBranch'], 'user') }}:
# If this pipeline run is targetting a developer's private branch, most of the time there is no
# corresponding private branch on the Agg repo. Therefore, by default, map to the Main branch on
# the Agg repo to avoid a "file not found" error.
# In the uncommon case that the developer means to target the corresponding private branch on the
# Agg repo, change WindowsAppSDKAggregatorMainBranch to WindowsAppSDKAggregatorSourceBranch below.
- template: build/AzurePipelinesTemplates/WindowsAppSDK-Global-LKGVersions.yml@WindowsAppSDKAggregatorMainBranch
- ${{ elseif and(startsWith(variables['Build.SourceBranch'], 'refs/heads/release'), not(startsWith(variables['Build.SourceBranch'], 'refs/heads/release-1.7'))) }}:
# If this pipeline run is targetting a servicing branch which is new enough (1.8+), then we expect
# the file WindowsAppSDK-Global-LKGVersions.yml to exists on the Agg repo in the corresponding
# branch, so target the corresponding branch on the Agg repo.
- template: build/AzurePipelinesTemplates/WindowsAppSDK-Global-LKGVersions.yml@WindowsAppSDKAggregatorSourceBranch
- ${{ else }}:
# If this pipeline run is targetting the Main branch, a Pull Request branch (e.g., refs/pull/12460423/merge),
# or some other unexpected branch, target the Main branch on the Agg repo by default.
- template: build/AzurePipelinesTemplates/WindowsAppSDK-Global-LKGVersions.yml@WindowsAppSDKAggregatorMainBranch
- name: localCompilerOverridePackageName
value: $[coalesce(variables.compilerOverridePackageName, variables.global_CompilerOverridePackageName)]
- name: localCompilerOverridePackageVersion
value: $[coalesce(variables.compilerOverridePackageVersion, variables.global_CompilerOverridePackageVersion)]
steps:
# In case we picked the wrong branch for the Agg repo in the variables section above, this helps diagnose that problem.
- script: |
echo Build.SourceBranch=$(Build.SourceBranch)
echo compilerOverridePackageName=$(compilerOverridePackageName)
echo compilerOverridePackageVersion=$(compilerOverridePackageVersion)
echo global_CompilerOverridePackageName=$(global_CompilerOverridePackageName)
echo global_CompilerOverridePackageVersion=$(global_CompilerOverridePackageVersion)
echo localCompilerOverridePackageName=$(localCompilerOverridePackageName)
echo localCompilerOverridePackageVersion=$(localCompilerOverridePackageVersion)

- template: WindowsAppSDK-BuildFoundation-Steps.yml@self
parameters:
SignOutput: ${{ parameters.SignOutput }}
Expand Down Expand Up @@ -128,17 +164,54 @@ stages:
buildConfiguration: 'Release'
normalizedConfiguration: 'fre'
variables:
ob_outputDirectory: '$(REPOROOT)\out'
ob_sdl_codeSignValidation_excludes: '-|**\Release\**'
ob_sdl_suppression_suppressionSet: default
ob_artifactBaseName: "MrtBinaries_$(buildConfiguration)_$(buildPlatform)"
${{ if parameters.runStaticAnalysis }}:
ob_sdl_apiscan_enabled: true
${{ if not( parameters.runStaticAnalysis ) }}:
ob_sdl_apiscan_enabled: false
ob_sdl_apiscan_softwareFolder: '$(build.SourcesDirectory)\APIScanTarget'
ob_sdl_apiscan_symbolsFolder: '$(build.SourcesDirectory)\APIScanTarget;SRV*https://symweb.azurefd.net'
- name: ob_outputDirectory
value: '$(REPOROOT)\out'
- name: ob_sdl_codeSignValidation_excludes
value: '-|**\Release\**'
- name: ob_sdl_suppression_suppressionSet
value: default
- name: ob_artifactBaseName
value: "MrtBinaries_$(buildConfiguration)_$(buildPlatform)"
- name: ob_sdl_apiscan_enabled
${{ if parameters.runStaticAnalysis }}:
value: true
${{ else }}:
value: false
- name: ob_sdl_apiscan_softwareFolder
value: '$(build.SourcesDirectory)\APIScanTarget'
- name: ob_sdl_apiscan_symbolsFolder
value: '$(build.SourcesDirectory)\APIScanTarget;SRV*https://symweb.azurefd.net'
- ${{ if contains(variables['Build.SourceBranch'], 'user') }}:
# If this pipeline run is targetting a developer's private branch, most of the time there is no
# corresponding private branch on the Agg repo. Therefore, by default, map to the Main branch on
# the Agg repo to avoid a "file not found" error.
# In the uncommon case that the developer means to target the corresponding private branch on the
# Agg repo, change WindowsAppSDKAggregatorMainBranch to WindowsAppSDKAggregatorSourceBranch below.
- template: build/AzurePipelinesTemplates/WindowsAppSDK-Global-LKGVersions.yml@WindowsAppSDKAggregatorMainBranch
- ${{ elseif and(startsWith(variables['Build.SourceBranch'], 'refs/heads/release'), not(or(startsWith(variables['Build.SourceBranch'], 'refs/heads/release-1.0'), startsWith(variables['Build.SourceBranch'], 'refs/heads/release-1.1'), startsWith(variables['Build.SourceBranch'], 'refs/heads/release-1.2'), startsWith(variables['Build.SourceBranch'], 'refs/heads/release-1.3'), startsWith(variables['Build.SourceBranch'], 'refs/heads/release-1.4'), startsWith(variables['Build.SourceBranch'], 'refs/heads/release-1.5'), startsWith(variables['Build.SourceBranch'], 'refs/heads/release-1.6'), startsWith(variables['Build.SourceBranch'], 'refs/heads/release-1.7')))) }}:
# If this pipeline run is targetting a servicing branch which is new enough (1.8+), then we expect
# the file WindowsAppSDK-Global-LKGVersions.yml to exists on the Agg repo in the corresponding
# branch, so target the corresponding branch on the Agg repo.
- template: build/AzurePipelinesTemplates/WindowsAppSDK-Global-LKGVersions.yml@WindowsAppSDKAggregatorSourceBranch
- ${{ else }}:
# If this pipeline run is targetting the Main branch, a Pull Request branch (e.g., refs/pull/12460423/merge),
# or some other unexpected branch, target the Main branch on the Agg repo by default.
- template: build/AzurePipelinesTemplates/WindowsAppSDK-Global-LKGVersions.yml@WindowsAppSDKAggregatorMainBranch
- name: localCompilerOverridePackageName
value: $[coalesce(variables.compilerOverridePackageName, variables.global_CompilerOverridePackageName)]
- name: localCompilerOverridePackageVersion
value: $[coalesce(variables.compilerOverridePackageVersion, variables.global_CompilerOverridePackageVersion)]
steps:
# In case we picked the wrong branch for the Agg repo in the variables section above, this helps diagnose that problem.
- script: |
echo Build.SourceBranch=$(Build.SourceBranch)
echo compilerOverridePackageName=$(compilerOverridePackageName)
echo compilerOverridePackageVersion=$(compilerOverridePackageVersion)
echo global_CompilerOverridePackageName=$(global_CompilerOverridePackageName)
echo global_CompilerOverridePackageVersion=$(global_CompilerOverridePackageVersion)
echo localCompilerOverridePackageName=$(localCompilerOverridePackageName)
echo localCompilerOverridePackageVersion=$(localCompilerOverridePackageVersion)

- template: WindowsAppSDK-BuildMRT-Steps.yml@self
parameters:
SignOutput: ${{ parameters.SignOutput }}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -58,8 +58,8 @@ steps:
displayName: 'Setup native compiler version override'
inputs:
microsoftDropReadPat: $(System.AccessToken)
compilerPackageName: $(compilerOverridePackageName)
compilerPackageVersion: $(compilerOverridePackageVersion)
compilerPackageName: $(localCompilerOverridePackageName)
compilerPackageVersion: $(localCompilerOverridePackageVersion)
slnDirectory: $(Build.SourcesDirectory)
includeUCRT: true
ucrtFeedPat: $(System.AccessToken)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,12 +23,46 @@ stages:
buildPlatform: 'arm64'
buildConfiguration: 'Release'
variables:
ob_outputDirectory: '$(REPOROOT)\out'
ob_artifactSuffix: '_$(buildConfiguration)_$(buildPlatform)'
ob_artifactBaseName: "Installer$(ob_artifactSuffix)"
- name: ob_outputDirectory
value: '$(REPOROOT)\out'
- name: ob_artifactSuffix
value: '_$(buildConfiguration)_$(buildPlatform)'
- name: ob_artifactBaseName
value: "Installer$(ob_artifactSuffix)"
# foundationRepoPath should be empty because we are not doing multiple checkouts hence
# it is not under $(Build.SourcesDirectory)\WindowsAppSDK
foundationRepoPath: ""
- name: foundationRepoPath
value: ""
- ${{ if contains(variables['Build.SourceBranch'], 'user') }}:
# If this pipeline run is targetting a developer's private branch, most of the time there is no
# corresponding private branch on the Agg repo. Therefore, by default, map to the Main branch on
# the Agg repo to avoid a "file not found" error.
# In the uncommon case that the developer means to target the corresponding private branch on the
# Agg repo, change WindowsAppSDKAggregatorMainBranch to WindowsAppSDKAggregatorSourceBranch below.
- template: build/AzurePipelinesTemplates/WindowsAppSDK-Global-LKGVersions.yml@WindowsAppSDKAggregatorMainBranch
- ${{ elseif and(startsWith(variables['Build.SourceBranch'], 'refs/heads/release'), not(startsWith(variables['Build.SourceBranch'], 'refs/heads/release-1.7'))) }}:
# If this pipeline run is targetting a servicing branch which is new enough (1.8+), then we expect
# the file WindowsAppSDK-Global-LKGVersions.yml to exists on the Agg repo in the corresponding
# branch, so target the corresponding branch on the Agg repo.
- template: build/AzurePipelinesTemplates/WindowsAppSDK-Global-LKGVersions.yml@WindowsAppSDKAggregatorSourceBranch
- ${{ else }}:
# If this pipeline run is targetting the Main branch, a Pull Request branch (e.g., refs/pull/12460423/merge),
# or some other unexpected branch, target the Main branch on the Agg repo by default.
- template: build/AzurePipelinesTemplates/WindowsAppSDK-Global-LKGVersions.yml@WindowsAppSDKAggregatorMainBranch
- name: localCompilerOverridePackageName
value: $[coalesce(variables.compilerOverridePackageName, variables.global_CompilerOverridePackageName)]
- name: localCompilerOverridePackageVersion
value: $[coalesce(variables.compilerOverridePackageVersion, variables.global_CompilerOverridePackageVersion)]
condition: ne(variables.LatestOfficialBuildID, '')
steps:
# In case we picked the wrong branch for the Agg repo in the variables section above, this helps diagnose that problem.
- script: |
echo Build.SourceBranch=$(Build.SourceBranch)
echo compilerOverridePackageName=$(compilerOverridePackageName)
echo compilerOverridePackageVersion=$(compilerOverridePackageVersion)
echo global_CompilerOverridePackageName=$(global_CompilerOverridePackageName)
echo global_CompilerOverridePackageVersion=$(global_CompilerOverridePackageVersion)
echo localCompilerOverridePackageName=$(localCompilerOverridePackageName)
echo localCompilerOverridePackageVersion=$(localCompilerOverridePackageVersion)

- template: WindowsAppSDK-BuildInstaller-Steps.yml@self
Original file line number Diff line number Diff line change
Expand Up @@ -199,8 +199,8 @@ steps:
displayName: 'Setup native compiler version override'
inputs:
microsoftDropReadPat: $(System.AccessToken)
compilerPackageName: $(compilerOverridePackageName)
compilerPackageVersion: $(compilerOverridePackageVersion)
compilerPackageName: $(localCompilerOverridePackageName)
compilerPackageVersion: $(localCompilerOverridePackageVersion)
slnDirectory: $(Build.SourcesDirectory)\$(foundationRepoPath)installer\dev
includeUCRT: true
ucrtFeedPat: $(System.AccessToken)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,8 @@ steps:
displayName: 'Setup native compiler version override'
inputs:
microsoftDropReadPat: $(System.AccessToken)
compilerPackageName: $(compilerOverridePackageName)
compilerPackageVersion: $(compilerOverridePackageVersion)
compilerPackageName: $(localCompilerOverridePackageName)
compilerPackageVersion: $(localCompilerOverridePackageVersion)
slnDirectory: $(Build.SourcesDirectory)\dev\MRTCore\mrt
includeUCRT: true
ucrtFeedPat: $(System.AccessToken)
Expand Down
28 changes: 23 additions & 5 deletions build/ProjectReunion-BuildFoundation.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,17 +5,35 @@ name: $(version)

trigger: none

variables:
- template: WindowsAppSDK-Versions.yml
- template: WindowsAppSDK-CommonVariables.yml
- template: WindowsAppSDK-Foundation-TestConfig.yml@WindowsAppSDKConfig
# If we pass ${{ variables['Build.SourceBranch'] }} directly to ref: below, then in a PR validation pipeline run scenario,
# there will be an error parsing the resources->repositories->repository->WindowsAppSDKAggregatorSourceBranch because
# the branch Build.SourceBranch does not exist on the Agg repo. Avoid hitting that error by redirecting to the Main branch.
- name: mySourceBranch
${{ if eq(variables['Build.Reason'], 'PullRequest') }}:
value: refs/heads/main
${{ else }}:
value: ${{ variables['Build.SourceBranch'] }}

resources:
repositories:
- repository: WindowsAppSDKConfig
type: git
name: ProjectReunion/WindowsAppSDKConfig
ref: refs/heads/main

variables:
- template: WindowsAppSDK-Versions.yml
- template: WindowsAppSDK-CommonVariables.yml
- template: WindowsAppSDK-Foundation-TestConfig.yml@WindowsAppSDKConfig
# Depending on the settings of this pipeline run, we will use exactly one of the following two definitions for the Agg repo.
# Either we reference the Main branch, or the same branch as the branch that this pipeline is currently being run against.
- repository: WindowsAppSDKAggregatorSourceBranch
type: git
name: ProjectReunion/WindowsAppSDKAggregator
ref: ${{ variables['mySourceBranch'] }}
- repository: WindowsAppSDKAggregatorMainBranch
type: git
name: ProjectReunion/WindowsAppSDKAggregator
ref: refs/heads/main

stages:
- template: AzurePipelinesTemplates\WindowsAppSDK-BuildInstaller-Stage.yml@self
Expand Down
21 changes: 21 additions & 0 deletions build/ProjectReunion-CI.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,27 @@ variables:
- template: WindowsAppSDK-CommonVariables.yml
- name: buildOutputDir
value: $(Build.SourcesDirectory)\BuildOutput
# If we pass ${{ variables['Build.SourceBranch'] }} directly to ref: below, then in a PR validation pipeline run scenario,
# there will be an error parsing the resources->repositories->repository->WindowsAppSDKAggregatorSourceBranch because
# the branch Build.SourceBranch does not exist on the Agg repo. Avoid hitting that error by redirecting to the Main branch.
- name: mySourceBranch
${{ if eq(variables['Build.Reason'], 'PullRequest') }}:
value: refs/heads/main
${{ else }}:
value: ${{ variables['Build.SourceBranch'] }}

resources:
repositories:
# Depending on the settings of this pipeline run, we will use exactly one of the following two definitions for the Agg repo.
# Either we reference the Main branch, or the same branch as the branch that this pipeline is currently being run against.
- repository: WindowsAppSDKAggregatorSourceBranch
type: git
name: ProjectReunion/WindowsAppSDKAggregator
ref: ${{ variables['mySourceBranch'] }}
- repository: WindowsAppSDKAggregatorMainBranch
type: git
name: ProjectReunion/WindowsAppSDKAggregator
ref: refs/heads/main

jobs:
- job: PreChecks
Expand Down
10 changes: 7 additions & 3 deletions build/WindowsAppSDK-CommonVariables.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,10 +19,14 @@ variables:

# Native compiler version override for win undock. The two values below are for Ge, defined in:
# https://dev.azure.com/microsoft/OS/_git/UndockedES?path=/Pipelines/Config/CompilerToolsSettings.json
compilerOverridePackageName: "DevDiv.rel.LKG18.VCTools"
compilerOverridePackageVersion: "19.42.3443710001+DevDivGIT.CI20250110.04-466784EE54DF2F302AD0CD6790031C954EF41DA23DA4415D73A76ADF260F2D21"
# Normally, the 3 variables below should remain null, so that we resort to using the corresponding global_compilerOverride*
# values for compiling native code. Another legitimate scenario is to point all 3 variables below to a different LKG compiler
# version, say, for working around a problem with the LKG compiler pointed at by the corresponding global_compilerOverride*
# values, for compiling native code.
compilerOverridePackageName: ""
compilerOverridePackageVersion: ""
# Use the following corresponding version string instead of the above when calling nuget install directly.
compilerOverrideNupkgVersion: "19.42.34437100"
compilerOverrideNupkgVersion: ""

# Docker image which is used to build the project https://aka.ms/obpipelines/containers
WindowsContainerImage: 'onebranch.azurecr.io/windows/ltsc2019/vse2022:latest'
Expand Down
28 changes: 23 additions & 5 deletions build/WindowsAppSDK-Foundation-Nightly.yml
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,19 @@ parameters:
type: boolean
default: true

variables:
- template: WindowsAppSDK-Versions.yml
- template: WindowsAppSDK-CommonVariables.yml
- template: WindowsAppSDK-Foundation-TestConfig.yml@WindowsAppSDKConfig
# If we pass ${{ variables['Build.SourceBranch'] }} directly to ref: below, then in a PR validation pipeline run scenario,
# there will be an error parsing the resources->repositories->repository->WindowsAppSDKAggregatorSourceBranch because
# the branch Build.SourceBranch does not exist on the Agg repo. Avoid hitting that error by redirecting to the Main branch.
- name: mySourceBranch
${{ if eq(variables['Build.Reason'], 'PullRequest') }}:
value: refs/heads/main
${{ else }}:
value: ${{ variables['Build.SourceBranch'] }}

resources:
repositories:
- repository: templates
Expand All @@ -44,11 +57,16 @@ resources:
type: git
name: ProjectReunion/WindowsAppSDKConfig
ref: refs/heads/main

variables:
- template: WindowsAppSDK-Versions.yml
- template: WindowsAppSDK-CommonVariables.yml
- template: WindowsAppSDK-Foundation-TestConfig.yml@WindowsAppSDKConfig
# Depending on the settings of this pipeline run, we will use exactly one of the following two definitions for the Agg repo.
# Either we reference the Main branch, or the same branch as the branch that this pipeline is currently being run against.
- repository: WindowsAppSDKAggregatorSourceBranch
type: git
name: ProjectReunion/WindowsAppSDKAggregator
ref: ${{ variables['mySourceBranch'] }}
- repository: WindowsAppSDKAggregatorMainBranch
type: git
name: ProjectReunion/WindowsAppSDKAggregator
ref: refs/heads/main

extends:
template: v2/Microsoft.NonOfficial.yml@templates # https://aka.ms/obpipelines/templates
Expand Down
Loading