name: Kube integration tests

on:
  push:
    branches:
      - main
  pull_request:

jobs:
  check-optional-tests:
    name: Check if needs to run Kube tests
    runs-on: ubuntu-latest
    outputs:
      trigger-kube: ${{steps.runkubetest.outputs.triggered}}
    steps:
      - uses: khan/pull-request-comment-trigger@master
        name: Check if test Kube
        if: github.event_name == 'pull_request'
        id: runkubetest
        with:
          trigger: '/test-kube'


  kube-tests:
    name: Kube e2e tests
    runs-on: ubuntu-latest
    env:
      GO111MODULE: "on"
    needs: check-optional-tests
    if: github.ref == 'refs/heads/main' || needs.check-optional-tests.outputs.trigger-kube == 'true'
    steps:
      - name: Set up Go 1.16
        uses: actions/setup-go@v2
        with:
          go-version: 1.16
        id: go

      - name: Setup docker CLI
        run: |
          curl https://download.docker.com/linux/static/stable/x86_64/docker-20.10.3.tgz | tar xz
          sudo cp ./docker/docker /usr/bin/ && rm -rf docker && docker version

      - name: Setup Kube tools
        run: |
          sudo apt-get install jq && jq --version
          curl -Lo ./kind https://kind.sigs.k8s.io/dl/v0.10.0/kind-linux-amd64 && chmod +x ./kind && sudo mv ./kind /usr/bin/ && kind version
          curl -LO "https://dl.k8s.io/release/v1.20.2/bin/linux/amd64/kubectl" && sudo mv kubectl /usr/bin/ && kubectl version --client

      - name: Checkout code into the Go module directory
        uses: actions/checkout@v2

      - uses: actions/cache@v2
        with:
          path: ~/go/pkg/mod
          key: go-${{ hashFiles('**/go.sum') }}

      - name: Build for Kube e2e tests
        env:
          BUILD_TAGS: kube
        run: make -f builder.Makefile cli

      - name: Kube e2e Test
        run: make e2e-kube
