name: e2e
permissions: {}

on:
  push:
    branches: [ "*" ]
    paths:
      - '.github/workflows/e2e.yml'
      - 'api/**'
      - 'controllers/**'
      - 'pkg/**'
      - 'e2e/*'
      - 'Dockerfile'
      - 'go.*'
      - 'main.go'
      - 'Makefile'
  pull_request:
    branches: [ "*" ]
    paths:
      - '.github/workflows/e2e.yml'
      - 'api/**'
      - 'controllers/**'
      - 'pkg/**'
      - 'e2e/*'
      - 'Dockerfile'
      - 'go.*'
      - 'main.go'
      - 'Makefile'

concurrency:
  group: ${{ github.workflow }}-${{ github.ref }}
  cancel-in-progress: true

jobs:
  kind:
    name: Kubernetes
    strategy:
      fail-fast: false
      matrix:
        k8s-version: [ 'v1.22.4', 'v1.23.6', 'v1.24.7', 'v1.25.3', 'v1.26.3', 'v1.27.2', 'v1.28.0', 'v1.29.0']
    runs-on: ubuntu-20.04
    steps:
      - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
        with:
          fetch-depth: 0
      - uses: actions/setup-go@0c52d547c9bc32b1aa3301fd7a9cb496313a4491 # v5.0.0
        with:
          go-version: '1.21'
      - run: make manifests
      - name: Checking if manifests are disaligned
        run: test -z "$(git diff 2> /dev/null)"
      - name: Checking if manifests generated untracked files
        run: test -z "$(git ls-files --others --exclude-standard 2> /dev/null)"
      - uses: engineerd/setup-kind@aa272fe2a7309878ffc2a81c56cfe3ef108ae7d0 # v0.5.0
        with:
          skipClusterCreation: true
          version: v0.14.0
      - uses: azure/setup-helm@5119fcb9089d432beecbf79bb2c7915207344b78 # v3
        with:
          version: 3.3.4
      - name: e2e testing
        run: make e2e/${{ matrix.k8s-version }}
