Skip to content

Commit

Permalink
Add pipeline support for Windows Server 2025 (#1454)
Browse files Browse the repository at this point in the history
  • Loading branch information
lbussell authored Oct 1, 2024
1 parent 3ba01b2 commit 423c118
Show file tree
Hide file tree
Showing 5 changed files with 47 additions and 2 deletions.
8 changes: 6 additions & 2 deletions .github/ISSUE_TEMPLATE/releases/new-windows-release.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,5 +5,9 @@ Windows version: <version>
## Tasks

1. - [ ] Well before the Windows release date, contact DDFUN to schedule the provisioning of an Azure scale set for the new Windows version.
2. - [ ] If this is an LTS release of Windows, update [ImageBuilder](https://github.com/dotnet/docker-tools/blob/main/src/Microsoft.DotNet.ImageBuilder/src/McrTagsMetadataGenerator.cs) code to generate the correct README display name from the version specified in the manifest.
3. - [ ] Include additional build and test jobs in the [common pipeline](https://github.com/dotnet/docker-tools/blob/main/eng/common/templates/stages/build-test-publish-repo.yml) to support the new Windows version.
2. - [ ] If necessary, update [`PlatformInfo.cs`](https://github.com/dotnet/docker-tools/blob/main/src/Microsoft.DotNet.ImageBuilder/src/ViewModel/PlatformInfo.cs) to generate the correct README display name from the version specified in the manifest. This is usually not needed unless Windows changes its naming scheme, since the code is version-independent.
3. - [ ] Add support for new Windows version in common pipeline templates:
- [ ] Add new default pool variables to [`variables/common.yml`](https://github.com/dotnet/docker-tools/blob/3ba01b2b9abc1c28cd694cbddc11f5fdd8c70e8e/eng/common/templates/variables/common.yml#L48-L59)
- [ ] Add parameter for new windows default pool in [`stages/build-test-publish-repo.yml`](https://github.com/dotnet/docker-tools/blob/3ba01b2b9abc1c28cd694cbddc11f5fdd8c70e8e/eng/common/templates/stages/build-test-publish-repo.yml#L38-L39).
- [ ] Add new build and test jobs in [`stages/build-test-publish-repo.yml`](https://github.com/dotnet/docker-tools/blob/3ba01b2b9abc1c28cd694cbddc11f5fdd8c70e8e/eng/common/templates/stages/build-test-publish-repo.yml) to support the new Windows version.
- [ ] If necessary, add new .NET-specific pool/image variables to [`variables/dotnet/common.yml`](https://github.com/dotnet/docker-tools/blob/3ba01b2b9abc1c28cd694cbddc11f5fdd8c70e8e/eng/common/templates/variables/dotnet/common.yml#L43-L48) and reference them from [`stages/dotnet/build-test-publish-repo.yml`](https://github.com/dotnet/docker-tools/blob/3ba01b2b9abc1c28cd694cbddc11f5fdd8c70e8e/eng/common/templates/stages/dotnet/build-test-publish-repo.yml#L115-L122)
23 changes: 23 additions & 0 deletions eng/common/templates/stages/build-test-publish-repo.yml
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,8 @@ parameters:
vmImage: $(defaultWindows1809PoolImage)
windows2022Pool:
vmImage: $(defaultWindows2022PoolImage)
windows2025Pool:
vmImage: $(defaultWindows2025PoolImage)

stages:

Expand Down Expand Up @@ -144,6 +146,19 @@ stages:
publicProjectName: ${{ parameters.publicProjectName }}
internalVersionsRepoRef: ${{ parameters.internalVersionsRepoRef }}
publicVersionsRepoRef: ${{ parameters.publicVersionsRepoRef }}
- template: /eng/common/templates/jobs/build-images.yml@self
parameters:
name: Windows2025_amd64
pool: ${{ parameters.windows2025Pool }}
matrix: dependencies.GenerateBuildMatrix.outputs['matrix.WindowsLtsc2025Amd64']
dockerClientOS: windows
buildJobTimeout: ${{ parameters.windowsAmdBuildJobTimeout }}
customInitSteps: ${{ parameters.customBuildInitSteps }}
noCache: ${{ parameters.noCache }}
internalProjectName: ${{ parameters.internalProjectName }}
publicProjectName: ${{ parameters.publicProjectName }}
internalVersionsRepoRef: ${{ parameters.internalVersionsRepoRef }}
publicVersionsRepoRef: ${{ parameters.publicVersionsRepoRef }}
- template: /eng/common/templates/jobs/build-images.yml@self
parameters:
name: WindowsLtsc2016_amd64
Expand Down Expand Up @@ -237,6 +252,14 @@ stages:
testJobTimeout: ${{ parameters.windowsAmdTestJobTimeout }}
internalProjectName: ${{ parameters.internalProjectName }}
customInitSteps: ${{ parameters.customTestInitSteps }}
- template: /eng/common/templates/jobs/test-images-windows-client.yml@self
parameters:
name: Windows2025_amd64
pool: ${{ parameters.windows2025Pool }}
matrix: dependencies.GenerateTestMatrix.outputs['matrix.WindowsLtsc2025Amd64']
testJobTimeout: ${{ parameters.windowsAmdTestJobTimeout }}
internalProjectName: ${{ parameters.internalProjectName }}
customInitSteps: ${{ parameters.customTestInitSteps }}
- template: /eng/common/templates/jobs/test-images-windows-client.yml@self
parameters:
name: WindowsLtsc2016_amd64
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -120,3 +120,12 @@ stages:
image: $(windowsServer2022PublicPoolImage)
${{ if eq(variables['System.TeamProject'], parameters.internalProjectName) }}:
image: $(windowsServer2022InternalPoolImage)

# Windows Server 2025
windows2025Pool:
os: windows
name: $(windowsServer2025PoolName)
${{ if eq(variables['System.TeamProject'], parameters.publicProjectName) }}:
image: $(windowsServer2025PublicPoolImage)
${{ if eq(variables['System.TeamProject'], parameters.internalProjectName) }}:
image: $(windowsServer2025InternalPoolImage)
2 changes: 2 additions & 0 deletions eng/common/templates/variables/common.yml
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,8 @@ variables:
value: windows-2019
- name: defaultWindows2022PoolImage
value: windows-2022
- name: defaultWindows2025PoolImage
value: windows-2025

- name: default1ESInternalPoolName
value: NetCore1ESPool-Internal
Expand Down
7 changes: 7 additions & 0 deletions eng/common/templates/variables/dotnet/common.yml
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,13 @@ variables:
- name: windowsServer2022PoolName
value: Docker-2022-${{ variables['System.TeamProject'] }}

- name: windowsServer2025PublicPoolImage
value: Server2025-NESDockerBuilds
- name: windowsServer2025InternalPoolImage
value: Server2025-NESDockerBuilds-1ESPT
- name: windowsServer2025PoolName
value: Docker-2025-${{ variables['System.TeamProject'] }}

- group: DotNet-Docker-Common
- ${{ if eq(variables['System.TeamProject'], 'internal') }}:
- group: DotNet-Docker-Secrets-WIF

0 comments on commit 423c118

Please sign in to comment.