From 65b8f4e9331f8fa2bf10525e759528cc366f829c Mon Sep 17 00:00:00 2001 From: Chandan-DK Date: Mon, 29 Jul 2024 17:49:42 +0000 Subject: [PATCH] clean commit to get E2E Tests for CEL and non CEL Signed-off-by: Chandan-DK --- .github/actions/run-tests/action.yaml | 14 ++++ .github/actions/setup-env/action.yaml | 56 ++++++++++++++ .github/workflows/cel-test.yml | 63 ++++++++++++++++ .github/workflows/test copy.yml | 102 -------------------------- .github/workflows/test.yml | 49 ++----------- 5 files changed, 138 insertions(+), 146 deletions(-) create mode 100644 .github/actions/run-tests/action.yaml create mode 100644 .github/actions/setup-env/action.yaml create mode 100644 .github/workflows/cel-test.yml delete mode 100644 .github/workflows/test copy.yml diff --git a/.github/actions/run-tests/action.yaml b/.github/actions/run-tests/action.yaml new file mode 100644 index 000000000..8ea8c49b7 --- /dev/null +++ b/.github/actions/run-tests/action.yaml @@ -0,0 +1,14 @@ +name: "Runs E2E Tests" +description: "Runs E2E tests using chainsaw" +inputs: + tests: + description: "Test regex" + required: true +runs: + using: "composite" + steps: + - name: Test with Chainsaw + shell: bash + run: | + set -e + chainsaw test --config .chainsaw.yaml --include-test-regex '^chainsaw$/${{ inputs.tests }}' --no-color=false diff --git a/.github/actions/setup-env/action.yaml b/.github/actions/setup-env/action.yaml new file mode 100644 index 000000000..c3dde1fc1 --- /dev/null +++ b/.github/actions/setup-env/action.yaml @@ -0,0 +1,56 @@ +name: "Setup Environment for E2E Tests" +description: "Sets up the environment for the E2E workflows" +inputs: + k8s-version: + description: "Kubernetes version" + required: true + tests: + description: "Test regex" + required: true +runs: + using: "composite" + steps: + - name: Setup Go + uses: actions/setup-go@0a12ed9d6a96ab950c8f026ed9f722fe0da7ef32 # v5.0.2 + with: + go-version: ~1.21.1 + - name: Install Tools + shell: bash + run: | + set -e + curl -LO "https://dl.k8s.io/release/${{ inputs.k8s-version }}/bin/linux/amd64/kubectl" + sudo install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl + - name: Install kind + shell: bash + run: | + set -e + # For AMD64 / x86_64 + [ $(uname -m) = x86_64 ] && curl -Lo ./kind https://kind.sigs.k8s.io/dl/v0.20.0/kind-linux-amd64 + # For ARM64 + [ $(uname -m) = aarch64 ] && curl -Lo ./kind https://kind.sigs.k8s.io/dl/v0.20.0/kind-linux-arm64 + chmod +x ./kind + sudo mv ./kind /usr/local/bin/kind + - name: Install latest Kyverno CLI + uses: kyverno/action-install-cli@fcee92fca5c883169ef9927acf543e0b5fc58289 # v0.2.0 + - name: Create kind cluster + shell: bash + run: | + set -e + kind create cluster --image kindest/node:${{ inputs.k8s-version }} --config ./.github/kind.yml + - name: Install latest kyverno + shell: bash + run: | + set -e + kubectl create -f https://github.com/kyverno/kyverno/raw/main/config/install-latest-testing.yaml + - name: Wait for kyverno ready + shell: bash + run: | + set -e + kubectl wait --namespace kyverno --for=condition=ready pod --selector '!job-name' --timeout=60s + - name: Install CRDs + shell: bash + run: | + set -e + kubectl apply -f ./.chainsaw/crds + - name: Install Chainsaw + uses: kyverno/action-install-chainsaw@5d00c353f61f44f3b492c673420202d1b1374c3f # v0.2.6 diff --git a/.github/workflows/cel-test.yml b/.github/workflows/cel-test.yml new file mode 100644 index 000000000..4bf3a25aa --- /dev/null +++ b/.github/workflows/cel-test.yml @@ -0,0 +1,63 @@ +name: E2E Tests - CEL + +permissions: {} + +on: + workflow_dispatch: {} + pull_request: + branches: + - 'main' + +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + +jobs: + chainsaw: + strategy: + fail-fast: false + matrix: + k8s-version: + - name: v1.25 + version: v1.25.16 + - name: v1.26 + version: v1.26.14 + - name: v1.27 + version: v1.27.11 + - name: v1.28 + version: v1.28.7 + - name: v1.29 + version: v1.29.2 + tests: + - ^argo-cel$ + - ^aws-cel$ + - ^best-practices-cel$ + - ^consul-cel$ + - ^flux-cel$ + - ^istio-cel$ + - ^kasten-cel$ + - ^kubecost-cel$ + - ^linkerd-cel$ + - ^nginx-ingress-cel$ + - ^openshift-cel$ + - ^other-cel$/^a + - ^other-cel$/^[b-d] + - ^other-cel$/^[e-l] + - ^other-cel$/^[m-q] + - ^other-cel$/^re[c-q] + - ^other-cel$/^res + - ^other-cel$/^[s-z] + - ^pod-security-cel$ + - ^psa-cel$ + - ^traefik-cel$ + runs-on: ubuntu-latest + name: ${{ matrix.k8s-version.name }} - ${{ matrix.tests }} + steps: + - name: Checkout + uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 + - name: Setup Environment + uses: ./.github/actions/setup-env + with: + k8s-version: ${{ matrix.k8s-version.version }} + - name: Run CEL Tests + uses: ./.github/actions/run-tests diff --git a/.github/workflows/test copy.yml b/.github/workflows/test copy.yml deleted file mode 100644 index a5f602d8f..000000000 --- a/.github/workflows/test copy.yml +++ /dev/null @@ -1,102 +0,0 @@ -name: E2E Tests - CEL - -permissions: {} - -on: - workflow_dispatch: {} - pull_request: - branches: - - 'main' - -concurrency: - group: ${{ github.workflow }}-${{ github.ref }} - cancel-in-progress: true - -jobs: - chainsaw: - strategy: - fail-fast: false - matrix: - k8s-version: - - name: v1.25 - version: v1.25.16 - - name: v1.26 - version: v1.26.14 - - name: v1.27 - version: v1.27.11 - - name: v1.28 - version: v1.28.7 - - name: v1.29 - version: v1.29.2 - tests: - - ^argo-cel$ - - ^aws-cel$ - - ^best-practices-cel$ - - ^consul-cel$ - - ^flux-cel$ - - ^istio-cel$ - - ^kasten-cel$ - - ^kubecost-cel$ - - ^linkerd-cel$ - - ^nginx-ingress-cel$ - - ^openshift-cel$ - - ^other-cel$/^a - - ^other-cel$/^[b-d] - - ^other-cel$/^[e-l] - - ^other-cel$/^[m-q] - - ^other-cel$/^re[c-q] - - ^other-cel$/^res - - ^other-cel$/^[s-z] - - ^pod-security-cel$ - - ^psa-cel$ - - ^traefik-cel$ - runs-on: ubuntu-latest - name: ${{ matrix.k8s-version.name }} - ${{ matrix.tests }} - steps: - - name: Checkout - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 - - name: Setup Go - uses: actions/setup-go@0a12ed9d6a96ab950c8f026ed9f722fe0da7ef32 # v5.0.2 - with: - go-version: ~1.21.1 - - name: Install Tools - run: | - set -e - curl -LO "https://dl.k8s.io/release/${{ matrix.k8s-version.version }}/bin/linux/amd64/kubectl" - sudo install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl - - name: Install kind - shell: bash - run: | - set -e - # For AMD64 / x86_64 - [ $(uname -m) = x86_64 ] && curl -Lo ./kind https://kind.sigs.k8s.io/dl/v0.20.0/kind-linux-amd64 - # For ARM64 - [ $(uname -m) = aarch64 ] && curl -Lo ./kind https://kind.sigs.k8s.io/dl/v0.20.0/kind-linux-arm64 - chmod +x ./kind - sudo mv ./kind /usr/local/bin/kind - - name: Install latest Kyverno CLI - uses: kyverno/action-install-cli@fcee92fca5c883169ef9927acf543e0b5fc58289 # v0.2.0 - - name: Create kind cluster - run: | - set -e - kind create cluster --image kindest/node:${{ matrix.k8s-version.version }} --config ./.github/kind.yml - - name: Install latest kyverno - run: | - set -e - kubectl create -f https://github.com/kyverno/kyverno/raw/main/config/install-latest-testing.yaml - - name: Wait for kyverno ready - run: | - set -e - kubectl wait --namespace kyverno --for=condition=ready pod --selector '!job-name' --timeout=60s - - name: Install CRDs - run: | - set -e - kubectl apply -f ./.chainsaw/crds - - name: Install Chainsaw - uses: kyverno/action-install-chainsaw@5d00c353f61f44f3b492c673420202d1b1374c3f # v0.2.6 - - name: Test with Chainsaw - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - run: | - set -e - chainsaw test --config .chainsaw.yaml --include-test-regex '^chainsaw$/${{ matrix.tests }}' --no-color=false diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index fa33a89fd..6fba344de 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -65,48 +65,9 @@ jobs: steps: - name: Checkout uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 - - name: Setup Go - uses: actions/setup-go@0a12ed9d6a96ab950c8f026ed9f722fe0da7ef32 # v5.0.2 + - name: Setup Environment + uses: ./.github/actions/setup-env with: - go-version: ~1.21.1 - - name: Install Tools - run: | - set -e - curl -LO "https://dl.k8s.io/release/${{ matrix.k8s-version.version }}/bin/linux/amd64/kubectl" - sudo install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl - - name: Install kind - shell: bash - run: | - set -e - # For AMD64 / x86_64 - [ $(uname -m) = x86_64 ] && curl -Lo ./kind https://kind.sigs.k8s.io/dl/v0.20.0/kind-linux-amd64 - # For ARM64 - [ $(uname -m) = aarch64 ] && curl -Lo ./kind https://kind.sigs.k8s.io/dl/v0.20.0/kind-linux-arm64 - chmod +x ./kind - sudo mv ./kind /usr/local/bin/kind - - name: Install latest Kyverno CLI - uses: kyverno/action-install-cli@fcee92fca5c883169ef9927acf543e0b5fc58289 # v0.2.0 - - name: Create kind cluster - run: | - set -e - kind create cluster --image kindest/node:${{ matrix.k8s-version.version }} --config ./.github/kind.yml - - name: Install latest kyverno - run: | - set -e - kubectl create -f https://github.com/kyverno/kyverno/raw/main/config/install-latest-testing.yaml - - name: Wait for kyverno ready - run: | - set -e - kubectl wait --namespace kyverno --for=condition=ready pod --selector '!job-name' --timeout=60s - - name: Install CRDs - run: | - set -e - kubectl apply -f ./.chainsaw/crds - - name: Install Chainsaw - uses: kyverno/action-install-chainsaw@5d00c353f61f44f3b492c673420202d1b1374c3f # v0.2.6 - - name: Test with Chainsaw - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - run: | - set -e - chainsaw test --config .chainsaw.yaml --include-test-regex '^chainsaw$/${{ matrix.tests }}' --no-color=false + k8s-version: ${{ matrix.k8s-version.version }} + - name: Run Tests + uses: ./.github/actions/run-tests \ No newline at end of file