name: e2e

on:
  push:
    branches: [ "*" ]
    paths:
      - '.github/workflows/e2e.yaml'
      - 'api/**'
      - 'charts/kamaji/**'
      - 'controllers/**'
      - 'e2e/*'
      - '.ko.yaml'
      - 'go.*'
      - 'main.go'
      - 'Makefile'
      - 'internal/**'
      - 'cmd/**'
  pull_request:
    branches: [ "*" ]
    paths:
      - '.github/workflows/e2e.yaml'
      - 'api/**'
      - 'charts/kamaji/**'
      - 'controllers/**'
      - 'e2e/*'
      - '.ko.yaml'
      - 'go.*'
      - 'main.go'
      - 'Makefile'
      - 'internal/**'
      - 'cmd/**'

jobs:
  kind:
    name: Kubernetes
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v6
        with:
          fetch-depth: 0
      - uses: actions/setup-go@v6
        with:
          go-version-file: go.mod
      - name: reclaim disk space from runner
        run: |
          sudo rm -rf /usr/share/dotnet /usr/local/lib/android /opt/ghc /opt/hostedtoolcache/CodeQL
      - run: |
          sudo apt-get update
          sudo apt-get install -y golang-cfssl
          sudo swapoff -a
          sudo modprobe br_netfilter
      - name: install required Go tools
        run: make kind ko helm ginkgo
      - name: cleaning up go mod
        run: go clean -modcache
      - name: e2e testing
        run: make e2e
