name: Conformance tests on: pull_request: branches: - 'main' - 'release*' concurrency: group: ${{ github.workflow }}-${{ github.ref }} cancel-in-progress: true jobs: prepare-images: runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@8f4b7f84864484a7bf31766abe9204da3cbe65b3 # v3.5.0 - name: Setup build env uses: ./.github/actions/setup-build-env with: build-cache-key: build-images - name: ko build run: make docker-save-image-all - name: upload images archive uses: actions/upload-artifact@0b7f8abb1508181956e8e162db84b466c27e18ce # v3.1.2 with: name: kyverno.tar path: kyverno.tar retention-days: 1 if-no-files-found: error run-conformance: strategy: fail-fast: false matrix: k8s-version: - v1.24.7 - v1.25.3 - v1.26.0 tests: - autogen - cleanup - events - exceptions - generate - mutate - policy-validation - rangeoperators - rbac - reports - validate - verify-manifests - verifyImages - webhooks runs-on: ubuntu-latest needs: prepare-images steps: - name: Checkout uses: actions/checkout@8f4b7f84864484a7bf31766abe9204da3cbe65b3 # v3.5.0 - name: Setup build env uses: ./.github/actions/setup-build-env with: build-cache-key: run-conformance - name: Create kind cluster run: | export KIND_IMAGE=kindest/node:${{ matrix.k8s-version }} make kind-create-cluster - name: Download kyverno images archive uses: actions/download-artifact@9bc31d5ccc31df68ecc42ccf4149144866c47d8a # v3.0.2 with: name: kyverno.tar - name: Load kyverno images archive in kind cluster run: make kind-load-image-archive - name: Install kyverno run: make kind-install-kyverno - name: Wait for kyverno ready uses: ./.github/actions/kyverno-wait-ready - name: Test with kuttl run: | ./.tools/kubectl-kuttl test ./test/conformance/kuttl/${{ matrix.tests }} \ --config ./test/conformance/kuttl/_config/common.yaml - name: Debug failure if: failure() uses: ./.github/actions/kyverno-logs