name: Build K3s

on: 
  workflow_call:
   inputs:
    upload-repo:
      type: boolean
      required: false
      default: false
    upload-image:
      type: boolean
      required: false
      default: false

permissions:
  contents: read

jobs:
  build:
    name: Build
    runs-on: ubuntu-latest
    timeout-minutes: 20
    steps:
    - name: Checkout K3s
      uses: actions/checkout@v4
    - name: Build K3s binary
      run: |
        DOCKER_BUILDKIT=1 SKIP_IMAGE=1 SKIP_AIRGAP=1 SKIP_VALIDATE=1 GOCOVER=1 make
        sha256sum dist/artifacts/k3s | sed 's|dist/artifacts/||' > dist/artifacts/k3s.sha256sum
    - name: Build K3s image
      if: inputs.upload-image == true
      run: make package-image
    - name: bundle repo
      if: inputs.upload-repo == true
      run: |
        tar -czvf ../k3s-repo.tar.gz .
        mv ../k3s-repo.tar.gz .
    - name: "Upload K3s directory"
      if: inputs.upload-repo == true
      uses: actions/upload-artifact@v4
      with:
        name: k3s-repo.tar.gz
        path: k3s-repo.tar.gz
    - name: "Save K3s image"
      if: inputs.upload-image == true
      run: docker image save rancher/k3s -o ./dist/artifacts/k3s-image.tar
    - name: "Upload K3s binary"
      if: inputs.upload-repo == false
      uses: actions/upload-artifact@v4
      with:
        name: k3s
        path: dist/artifacts/k3s*