name: build
on:
  workflow_dispatch:
  push:
    branches:
      - master
    paths:
      - "go.mod"
      - "**.go"
      - "Makefile"
      - "!deploy/kicbase/**"
      - "!deploy/iso/**"
env:
  GOPROXY: https://proxy.golang.org
  GO_VERSION: '1.22.5'
permissions:
  contents: read

jobs:
  build_minikube:
    runs-on: ubuntu-22.04
    steps:
      - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332
      - uses: actions/setup-go@0a12ed9d6a96ab950c8f026ed9f722fe0da7ef32
        with:
          go-version: ${{env.GO_VERSION}}
      - name: Download Dependencies
        run: go mod download
      - name: Build Binaries
        run: |
          make cross
          make e2e-cross
          cp -r test/integration/testdata ./out
          whoami
          echo github ref $GITHUB_REF
          echo workflow $GITHUB_WORKFLOW
          echo home $HOME
          echo event name $GITHUB_EVENT_NAME
          echo workspace $GITHUB_WORKSPACE
          echo "end of debug stuff"
          echo $(which jq)
      - uses: actions/upload-artifact@50769540e7f4bd5e21e526ee35c689e35e0d6874
        with:
          name: minikube_binaries
          path: out
  lint:
    runs-on: ubuntu-22.04
    steps:
      - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332
      - uses: actions/setup-go@0a12ed9d6a96ab950c8f026ed9f722fe0da7ef32
        with:
          go-version: ${{env.GO_VERSION}}
      - name: Install libvirt
        run: |
          sudo apt-get update
          sudo apt-get install -y libvirt-dev
      - name: Download Dependencies
        run: go mod download
      - name: Lint
        env:
          TESTSUITE: lintall
        run: make test
        continue-on-error: false
  unit_test:
    runs-on: ubuntu-22.04
    steps:
      - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332
      - uses: actions/setup-go@0a12ed9d6a96ab950c8f026ed9f722fe0da7ef32
        with:
          go-version: ${{env.GO_VERSION}}
      - name: Install libvirt
        run: |
          sudo apt-get update
          sudo apt-get install -y libvirt-dev
      - name: Download Dependencies
        run: go mod download
      - name: Unit Test
        env:
          TESTSUITE: unittest
        run: make test
        continue-on-error: false
