diff --git a/.github/workflows/install.yaml b/.github/workflows/install.yaml index 10b9f7313b..54badda3f1 100644 --- a/.github/workflows/install.yaml +++ b/.github/workflows/install.yaml @@ -105,29 +105,3 @@ jobs: with: ## If no one connects after 5 minutes, shut down server. wait-timeout-minutes: 5 - test-windows: - name: "Smoke Test (windows)" - needs: build - runs-on: windows-2022 - timeout-minutes: 10 - steps: - - name: "Checkout" - uses: actions/checkout@v4 - with: {fetch-depth: 1} - - name: "Download k3s binary" - uses: actions/download-artifact@v4 - with: - name: k3s-windows - path: dist/artifacts/ - - name: "Run K3s" - timeout-minutes: 5 - run: | - $ErrorActionPreference = "Continue" - $PSNativeCommandUseErrorActionPreference = $true - $Server = Start-Job -ScriptBlock { ./dist/artifacts/k3s.exe server --token=token --embedded-registry --disable=metrics-server } - Start-Sleep -Seconds 15 - D:/var/lib/rancher/k3s/data/current/bin/k3s.exe kubectl get node -o wide - D:/var/lib/rancher/k3s/data/current/bin/k3s.exe kubectl get pod -A -o wide - Stop-Job -Job $Server - Receive-Job -Wait -Job $Server - Remove-Job -Job $Server diff --git a/.github/workflows/integration.yaml b/.github/workflows/integration.yaml index 46555ce08a..9f53cf0dc0 100644 --- a/.github/workflows/integration.yaml +++ b/.github/workflows/integration.yaml @@ -78,3 +78,50 @@ jobs: files: ./${{ matrix.itest }}.out flags: inttests # optional verbose: true # optional (default = false) + itest-windows: + name: Integration Tests (windows) + needs: build-windows + runs-on: windows-2022 + timeout-minutes: 10 + env: + GOCOVERDIR: "D:/tmp/k3scov" + steps: + - name: Checkout + uses: actions/checkout@v4 + with: {fetch-depth: 1} + - name: Install Go + uses: ./.github/actions/setup-go + - name: Download k3s binary + uses: actions/download-artifact@v4 + with: + name: k3s-windows + path: dist/artifacts/ + - name: Run K3s + timeout-minutes: 5 + env: + CONTAINERD_LOG_LEVEL: "debug" + run: | + $ErrorActionPreference = "Continue" + $PSNativeCommandUseErrorActionPreference = $true + New-Item -Type Directory -Force $Env:GOCOVERDIR | Out-Null + $Server = Start-Job -ScriptBlock { ./dist/artifacts/k3s.exe server --token=token --debug --disable=metrics-server } + Start-Sleep -Seconds 15 + D:/var/lib/rancher/k3s/data/current/bin/k3s.exe kubectl apply -f ./tests/integration/startup/testdata/agnhost.yaml + D:/var/lib/rancher/k3s/data/current/bin/k3s.exe kubectl wait --for=jsonpath='{.status.phase}'=Running --timeout=5m pod/agnhost + D:/var/lib/rancher/k3s/data/current/bin/k3s.exe crictl ps + D:/var/lib/rancher/k3s/data/current/bin/k3s.exe kubectl get pod -A -o wide + D:/var/lib/rancher/k3s/data/current/bin/k3s.exe kubectl get node -o wide + $RET = $LASTEXITCODE + Stop-Job -Job $Server + Receive-Job -Wait -Job $Server + Remove-Job -Job $Server + exit $RET + - name: Generate coverage report + run: go tool covdata textfmt -i $Env:GOCOVERDIR -o windows.out + - name: Upload Results To Codecov + uses: codecov/codecov-action@v5 + with: + token: ${{ secrets.CODECOV_TOKEN }} + files: ./windows.out + flags: inttests # optional + verbose: true # optional (default = false) diff --git a/tests/integration/startup/testdata/agnhost.yaml b/tests/integration/startup/testdata/agnhost.yaml new file mode 100644 index 0000000000..99e1c55bfc --- /dev/null +++ b/tests/integration/startup/testdata/agnhost.yaml @@ -0,0 +1,16 @@ +apiVersion: v1 +kind: Pod +metadata: + name: agnhost +spec: + containers: + - name: agnhost + image: registry.k8s.io/e2e-test-images/agnhost:2.53 + args: + - inclusterclient + - -v=9 + - --poll-interval=5 + dnsConfig: + nameservers: + - 8.8.8.8 + dnsPolicy: None