name: Runs E2E Tests description: Runs E2E tests using chainsaw inputs: k8s-version: description: Kubernetes version required: true config: description: Chainsaw config required: true tests: description: Test regex required: true token: description: GH token required: true runs: using: composite steps: # install tools - name: Install helm id: helm uses: azure/setup-helm@fe7b79cd5ee1e45176fcad797de68ecaf3ca4814 # v4.2.0 - name: Install chainsaw uses: kyverno/action-install-chainsaw@82d8e747037f840e0ef9bdd97ecdc617f5535bdc # v0.2.8 # 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: ./scripts/config/kind/default.yaml # deploy kyverno - 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 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=standard 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.tests }}' --config ../../../.chainsaw.yaml # debug - name: Debug failure if: failure() uses: ./.github/actions/kyverno-logs