name: Build Fleetbase Binaries

on:
  workflow_dispatch:
  workflow_run:
    workflows: ["Create Release"]
    types: [completed]

permissions:
  contents: write

env:
  DIST_DIR: builds/dist
  GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

jobs:
  build-linux:
    name: Linux Build
    runs-on: ubuntu-latest

    steps:
      - uses: actions/checkout@v3
      - name: Build Linux binary
        run: |
          chmod +x ./builds/linux/build-linux.sh
          ./builds/linux/build-linux.sh
      - name: Upload Linux binary
        if: github.event_name == 'workflow_run'  
        uses: softprops/action-gh-release@v2
        with:
          tag_name: ${{ github.event.workflow_run.head_branch }}
          files: |
            ${{ env.DIST_DIR }}/fleetbase-linux-x86_64
          draft: false
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

  build-macos:
    name: macOS (ARM64) Build
    needs: build-linux
    runs-on: macos-latest

    steps:
      - uses: actions/checkout@v3
      - name: Install build dependencies
        run: |
          brew update
          brew install autoconf automake coreutils asdf php@8.4
          source "$(brew --prefix asdf)/libexec/asdf.sh"
          asdf plugin add php https://github.com/asdf-community/asdf-php.git
      - name: Build macOS binary
        run: |
          chmod +x ./builds/osx/build-osx.sh
          ./builds/osx/build-osx.sh
      - name: Upload Linux binary
        if: github.event_name == 'workflow_run'
        uses: softprops/action-gh-release@v2
        with:
          tag_name: ${{ github.event.workflow_run.head_branch }}
          files: |
            ${{ env.DIST_DIR }}/fleetbase-darwin-arm64
          draft: false
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}