Skip to content
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

Add pipeline support for Windows Server 2025 #1454

Merged
merged 1 commit into from
Oct 1, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
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