name: Runs E2E Tests description: Runs E2E tests using chainsaw inputs: k8s-version: description: Kubernetes version required: true kind-config: description: Kind cluster config default: ./scripts/config/kind/default.yaml kyverno-configs: description: Kyverno configs default: standard token: description: GH token required: true chainsaw-config: description: Chainsaw config default: ../../../.chainsaw.yaml chainsaw-tests: description: Test regex required: true runs: using: composite steps: # install tools - name: Install helm id: helm uses: azure/setup-helm@fe7b79cd5ee1e45176fcad797de68ecaf3ca4814 # v4.2.0 - name: Install Cosign uses: sigstore/cosign-installer@4959ce089c160fddf62f7b42464195ba1a56d382 # v3.6.0 - name: Install chainsaw uses: kyverno/action-install-chainsaw@b2f61a8d0459a65c476ac802514d88e1612b3396 # v0.2.9 with: verify: true # create cluster - name: Create kind cluster uses: helm/kind-action@0025e74a8c7512023d06dc019c617aa3cf561fde # v1.10.0 with: node_image: kindest/node:${{ inputs.k8s-version }} cluster_name: kind config: ${{ inputs.kind-config }} # deploy kyverno - name: Download kyverno images archive uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4.1.8 with: name: kyverno.tar - name: Load kyverno images archive in kind cluster shell: bash run: | set -e kind load image-archive kyverno.tar --name kind - name: Install kyverno shell: bash run: | set -e export HELM=${{ steps.helm.outputs.helm-path }} export USE_CONFIG=${{ inputs.kyverno-configs }} make kind-install-kyverno - name: Wait for kyverno ready uses: ./.github/actions/kyverno-wait-ready # run tests - name: Test with Chainsaw shell: bash env: GITHUB_TOKEN: ${{ inputs.token }} run: | set -e cd ./test/conformance/chainsaw && chainsaw test --include-test-regex '^chainsaw$/${{ inputs.chainsaw-tests }}' --config ${{ inputs.chainsaw-config }} # debug - name: Debug failure if: failure() uses: ./.github/actions/kyverno-logs