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

View File

@ -57,7 +57,21 @@ func init() {
testImage = "mcr.microsoft.com/windows/nanoserver:2004" testImage = "mcr.microsoft.com/windows/nanoserver:2004"
case osversion.V20H2: case osversion.V20H2:
testImage = "mcr.microsoft.com/windows/nanoserver:20H2" 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: 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) fmt.Println("No test image defined for Windows build version:", b)
panic("No windows test image found for this Windows build") panic("No windows test image found for this Windows build")
} }

View File

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

View File

@ -48,12 +48,14 @@ func TestDefault(t *testing.T) {
} }
func TestMatchComparerMatch(t *testing.T) { func TestMatchComparerMatch(t *testing.T) {
major, minor, build := windows.RtlGetNtVersionNumbers()
buildStr := fmt.Sprintf("%d.%d.%d", major, minor, build)
m := matchComparer{ m := matchComparer{
defaults: Only(imagespec.Platform{ defaults: Only(imagespec.Platform{
Architecture: "amd64", Architecture: "amd64",
OS: "windows", OS: "windows",
}), }),
osVersionPrefix: "10.0.17763", osVersionPrefix: buildStr,
} }
for _, test := range []struct { for _, test := range []struct {
platform imagespec.Platform platform imagespec.Platform
@ -67,7 +69,7 @@ func TestMatchComparerMatch(t *testing.T) {
platform: imagespec.Platform{ platform: imagespec.Platform{
Architecture: "amd64", Architecture: "amd64",
OS: "windows", OS: "windows",
OSVersion: "10.0.17763.1", OSVersion: buildStr + ".1",
}, },
match: true, match: true,
}, },
@ -75,7 +77,7 @@ func TestMatchComparerMatch(t *testing.T) {
platform: imagespec.Platform{ platform: imagespec.Platform{
Architecture: "amd64", Architecture: "amd64",
OS: "windows", OS: "windows",
OSVersion: "10.0.17763.2", OSVersion: buildStr + ".2",
}, },
match: true, match: true,
}, },
@ -83,7 +85,8 @@ func TestMatchComparerMatch(t *testing.T) {
platform: imagespec.Platform{ platform: imagespec.Platform{
Architecture: "amd64", Architecture: "amd64",
OS: "windows", 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, match: false,
}, },
@ -91,7 +94,8 @@ func TestMatchComparerMatch(t *testing.T) {
platform: imagespec.Platform{ platform: imagespec.Platform{
Architecture: "amd64", Architecture: "amd64",
OS: "windows", 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, match: false,
}, },