Update dynamiclistener for workqueue fix #2568
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Integration Test Coverage | |
on: | |
push: | |
paths-ignore: | |
- "**.md" | |
- "channel.yaml" | |
- "install.sh" | |
- "tests/**" | |
- "!tests/integration**" | |
- ".github/**" | |
- "!.github/workflows/integration.yaml" | |
pull_request: | |
paths-ignore: | |
- "**.md" | |
- "channel.yaml" | |
- "install.sh" | |
- "tests/**" | |
- "!tests/integration**" | |
- "!tests/e2e**" | |
- ".github/**" | |
- "!.github/workflows/integration.yaml" | |
- "!.github/workflows/build-k3s.yaml" | |
workflow_dispatch: {} | |
permissions: | |
contents: read | |
env: | |
GOCOVERDIR: /tmp/k3scov | |
jobs: | |
build: | |
uses: ./.github/workflows/build-k3s.yaml | |
with: | |
os: linux | |
build-windows: | |
uses: ./.github/workflows/build-k3s.yaml | |
with: | |
os: windows | |
itest: | |
needs: build | |
name: Integration Tests | |
runs-on: ubuntu-latest | |
timeout-minutes: 45 | |
strategy: | |
fail-fast: false | |
matrix: | |
itest: [certrotation, cacertrotation, etcdrestore, localstorage, startup, custometcdargs, etcdsnapshot, kubeflags, longhorn, secretsencryption, flannelnone] | |
max-parallel: 3 | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v5 | |
with: | |
fetch-depth: 1 | |
- name: Install Go | |
uses: ./.github/actions/setup-go | |
- name: "Download k3s binary" | |
uses: actions/download-artifact@v5 | |
with: | |
name: k3s-amd64 | |
path: ./dist/artifacts | |
- name: Run Integration Tests | |
run: | | |
chmod +x ./dist/artifacts/k3s | |
mkdir -p $GOCOVERDIR | |
cd tests/integration/${{ matrix.itest }} | |
sudo -E env "PATH=$PATH" go test -timeout=45m ./... -run Integration -ginkgo.v -test.v | |
- name: On Failure, Upload Logs | |
uses: actions/upload-artifact@v4 | |
if: ${{ failure() }} | |
with: | |
name: integration-${{ matrix.itest }}-logs | |
path: tests/integration/${{ matrix.itest }}/*log.txt | |
retention-days: 30 | |
- name: On Failure, Launch Debug Session | |
uses: lhotari/action-upterm@v1 | |
if: ${{ failure() }} | |
with: | |
## If no one connects after 5 minutes, shut down server. | |
wait-timeout-minutes: 5 | |
- name: Generate coverage report | |
run: go tool covdata textfmt -i $GOCOVERDIR -o ${{ matrix.itest }}.out | |
- name: Upload Results To Codecov | |
uses: codecov/codecov-action@v5 | |
with: | |
token: ${{ secrets.CODECOV_TOKEN }} | |
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@v5 | |
with: {fetch-depth: 1} | |
- name: Install Go | |
uses: ./.github/actions/setup-go | |
- name: Download k3s binary | |
uses: actions/download-artifact@v5 | |
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) |