Skip to content

Update dynamiclistener for workqueue fix #2568

Update dynamiclistener for workqueue fix

Update dynamiclistener for workqueue fix #2568

Workflow file for this run

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)