name: e2e

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'

jobs:
  kind:
    name: Kubernetes
    strategy:
      fail-fast: false
      matrix:
        k8s-version: ['v1.16.15', 'v1.17.11', 'v1.18.8', 'v1.19.4', 'v1.20.7', 'v1.21.2', 'v1.22.4', 'v1.23.6', 'v1.24.7', 'v1.25.3', 'v1.26.0']
    runs-on: ubuntu-18.04
    steps:
      - uses: actions/checkout@v2
        with:
          fetch-depth: 0
      - uses: actions/setup-go@v2
        with:
          go-version: '1.18'
      - 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@v0.5.0
        with:
          skipClusterCreation: true
          version: v0.14.0
      - uses: azure/setup-helm@v1
        with:
          version: 3.3.4
      - name: e2e testing
        run: make e2e/${{ matrix.k8s-version }}
