Skip to content

Running tests in parallel with a matrix strategy #451

Running tests in parallel with a matrix strategy

Running tests in parallel with a matrix strategy #451

name: test( cluster )
on:
pull_request:
branches-ignore:
- 'gh-pages'
jobs:
test-list:
runs-on: ubuntu-22.04
outputs:
tests: ${{ steps.listTests.outputs.tests }}
steps:
- name: Checkout
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
with:
fetch-depth: 1
- id: listTests
run: |
echo "tests=$(ls charts/cluster/test -1 | jq -cRn '{ include: [inputs | { test: "\(.)" }]}')" >> $GITHUB_OUTPUT
test:
needs: test-list
runs-on: ubuntu-22.04
strategy:
fail-fast: false
matrix: ${{ fromJson(needs.test-list.outputs.tests) }}
name: ${{matrix.test}}
steps:
- name: Checkout
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
fetch-depth: 0
- name: Install Cosign
uses: sigstore/cosign-installer@dc72c7d5c4d10cd6bcb8cf6e3fd625a9e5e537da # v3.7.0
- name: Setup kind
uses: ./.github/actions/setup-kind
- name: Deploy the operator
uses: ./.github/actions/deploy-operator
- name: Install Prometheus CRDs
run: |
helm repo add prometheus-community https://prometheus-community.github.io/helm-charts
helm install prometheus-crds prometheus-community/prometheus-operator-crds
- name: Install Chainsaw
uses: kyverno/action-install-chainsaw@f2b47b97dc889c12702113753d713f01ec268de5 # v0.2.12
with:
verify: true
- name: Setup MinIO
run: |
helm repo add minio-operator https://operator.min.io
helm upgrade \
--install \
--namespace minio-system \
--create-namespace \
--wait \
operator minio-operator/operator
helm upgrade \
--install \
--namespace minio \
--create-namespace \
--wait \
--values ./.github/minio.yaml \
tenant minio-operator/tenant
- name: Run Kyverno/Chainsaw
run: chainsaw test charts/cluster/test/${{matrix.test}}