name: Package builds (stable)

on:
  workflow_dispatch:
  # release:
  #   types: [published]

permissions:
  contents: write
  actions: write

jobs:
  package_builds:
    #runs-on: alrest-techarohq
    runs-on: ubuntu-24.04
    steps:
      - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
        with:
          persist-credentials: false
          fetch-tags: true
          fetch-depth: 0

      - name: build essential
        run: |
          sudo apt-get update
          sudo apt-get install -y build-essential

      - name: Set up Homebrew
        uses: Homebrew/actions/setup-homebrew@main

      - name: Setup Homebrew cellar cache
        uses: actions/cache@5a3ec84eff668545956fd18022155c47e93e2684 # v4.2.3
        with:
          path: |
            /home/linuxbrew/.linuxbrew/Cellar
            /home/linuxbrew/.linuxbrew/bin
            /home/linuxbrew/.linuxbrew/etc
            /home/linuxbrew/.linuxbrew/include
            /home/linuxbrew/.linuxbrew/lib
            /home/linuxbrew/.linuxbrew/opt
            /home/linuxbrew/.linuxbrew/sbin
            /home/linuxbrew/.linuxbrew/share
            /home/linuxbrew/.linuxbrew/var
          key: ${{ runner.os }}-go-homebrew-cellar-${{ hashFiles('go.sum') }}
          restore-keys: |
            ${{ runner.os }}-go-homebrew-cellar-

      - name: Install Brew dependencies
        run: |
          brew bundle

      - name: Setup Golang caches
        uses: actions/cache@5a3ec84eff668545956fd18022155c47e93e2684 # v4.2.3
        with:
          path: |
            ~/.cache/go-build
            ~/go/pkg/mod
          key: ${{ runner.os }}-golang-${{ hashFiles('**/go.sum') }}
          restore-keys: |
            ${{ runner.os }}-golang-

      - name: install node deps
        run: |
          npm ci

      - name: Build Packages
        run: |
          go tool yeet

      - name: Upload released artifacts
        env:
          GITHUB_TOKEN: ${{ github.TOKEN }}
          RELEASE_VERSION: ${{github.event.release.tag_name}}
        shell: bash
        run: |
          RELEASE="${RELEASE_VERSION}"
          cd var
          for file in *; do
            gh release upload $RELEASE $file
          done
