Merge pull request #6314 from dcantah/ws2022-ci

Add Windows Server 2022 CI runs
This commit is contained in:
Maksym Pavlenko 2021-12-03 10:51:00 -08:00 committed by GitHub
commit d06bce4d3d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 30 additions and 8 deletions

View File

@ -201,7 +201,7 @@ jobs:
strategy:
matrix:
os: [ubuntu-18.04, macos-10.15, windows-2019]
os: [ubuntu-18.04, macos-10.15, windows-2019, windows-2022]
go-version: ['1.17.3']
steps:
@ -230,12 +230,16 @@ jobs:
#
integration-windows:
name: Windows Integration
runs-on: windows-2019
runs-on: ${{ matrix.os }}
timeout-minutes: 35
needs: [project, linters, protos, man]
env:
GOTEST: gotestsum --
strategy:
matrix:
os: [windows-2019, windows-2022]
defaults:
run:
shell: bash

View File

@ -57,7 +57,21 @@ func init() {
testImage = "mcr.microsoft.com/windows/nanoserver:2004"
case osversion.V20H2:
testImage = "mcr.microsoft.com/windows/nanoserver:20H2"
case 20348:
// 20348 is Windows server 2022's build number.
//
// TODO(dcantah): Use the hardcoded number until there's an hcsshim release with this build
// number included.
testImage = "mcr.microsoft.com/windows/nanoserver:ltsc2022"
default:
// Due to some efforts in improving down-level compatibility for Windows containers (see
// https://techcommunity.microsoft.com/t5/containers/windows-server-2022-and-beyond-for-containers/ba-p/2712487)
// the ltsc2022 image should continue to work on builds ws2022 and onwards (Winodws 11 for example). With this in mind,
// if there's no mapping for the host build just use the Windows Server 2022 image.
if b > 20348 {
testImage = "mcr.microsoft.com/windows/nanoserver:ltsc2022"
return
}
fmt.Println("No test image defined for Windows build version:", b)
panic("No windows test image found for this Windows build")
}

View File

@ -81,7 +81,7 @@ func TestImagePullWithDistSourceLabel(t *testing.T) {
var (
source = "k8s.gcr.io"
repoName = "pause"
tag = "3.5"
tag = "3.6"
)
ctx, cancel := testContext(t)

View File

@ -48,12 +48,14 @@ func TestDefault(t *testing.T) {
}
func TestMatchComparerMatch(t *testing.T) {
major, minor, build := windows.RtlGetNtVersionNumbers()
buildStr := fmt.Sprintf("%d.%d.%d", major, minor, build)
m := matchComparer{
defaults: Only(imagespec.Platform{
Architecture: "amd64",
OS: "windows",
}),
osVersionPrefix: "10.0.17763",
osVersionPrefix: buildStr,
}
for _, test := range []struct {
platform imagespec.Platform
@ -67,7 +69,7 @@ func TestMatchComparerMatch(t *testing.T) {
platform: imagespec.Platform{
Architecture: "amd64",
OS: "windows",
OSVersion: "10.0.17763.1",
OSVersion: buildStr + ".1",
},
match: true,
},
@ -75,7 +77,7 @@ func TestMatchComparerMatch(t *testing.T) {
platform: imagespec.Platform{
Architecture: "amd64",
OS: "windows",
OSVersion: "10.0.17763.2",
OSVersion: buildStr + ".2",
},
match: true,
},
@ -83,7 +85,8 @@ func TestMatchComparerMatch(t *testing.T) {
platform: imagespec.Platform{
Architecture: "amd64",
OS: "windows",
OSVersion: "10.0.17762.1",
// Use an nonexistent Windows build so we don't get a match. Ws2019's build is 17763/
OSVersion: "10.0.17762.1",
},
match: false,
},
@ -91,7 +94,8 @@ func TestMatchComparerMatch(t *testing.T) {
platform: imagespec.Platform{
Architecture: "amd64",
OS: "windows",
OSVersion: "10.0.17764.1",
// Use an nonexistent Windows build so we don't get a match. Ws2019's build is 17763/
OSVersion: "10.0.17764.1",
},
match: false,
},