Merge pull request #6314 from dcantah/ws2022-ci
Add Windows Server 2022 CI runs
This commit is contained in:
		
							
								
								
									
										8
									
								
								.github/workflows/ci.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										8
									
								
								.github/workflows/ci.yml
									
									
									
									
										vendored
									
									
								
							| @@ -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 | ||||||
|   | |||||||
| @@ -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") | ||||||
| 	} | 	} | ||||||
|   | |||||||
| @@ -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) | ||||||
|   | |||||||
| @@ -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,6 +85,7 @@ func TestMatchComparerMatch(t *testing.T) { | |||||||
| 			platform: imagespec.Platform{ | 			platform: imagespec.Platform{ | ||||||
| 				Architecture: "amd64", | 				Architecture: "amd64", | ||||||
| 				OS:           "windows", | 				OS:           "windows", | ||||||
|  | 				// Use an nonexistent Windows build so we don't get a match. Ws2019's build is 17763/ | ||||||
| 				OSVersion: "10.0.17762.1", | 				OSVersion: "10.0.17762.1", | ||||||
| 			}, | 			}, | ||||||
| 			match: false, | 			match: false, | ||||||
| @@ -91,6 +94,7 @@ func TestMatchComparerMatch(t *testing.T) { | |||||||
| 			platform: imagespec.Platform{ | 			platform: imagespec.Platform{ | ||||||
| 				Architecture: "amd64", | 				Architecture: "amd64", | ||||||
| 				OS:           "windows", | 				OS:           "windows", | ||||||
|  | 				// Use an nonexistent Windows build so we don't get a match. Ws2019's build is 17763/ | ||||||
| 				OSVersion: "10.0.17764.1", | 				OSVersion: "10.0.17764.1", | ||||||
| 			}, | 			}, | ||||||
| 			match: false, | 			match: false, | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 Maksym Pavlenko
					Maksym Pavlenko