name: Build Linux SpacetimeDB CLI

on:
  push:
    tags:
      - '**'
    branches:
      - master
      - release/*

jobs:
  linux-amd64-cli:
    runs-on: bare-metal

    steps:
      - name: Checkout
        uses: actions/checkout@v3

      - name: Compile x86
        run: |
          export PATH=$HOME/.cargo/bin:$PATH
          cargo build --release -p spacetimedb-cli
          mkdir build
          cp --sparse=never target/release/spacetime build/spacetime
          cd build && tar -czf spacetime.linux-amd64.tar.gz spacetime
          rm spacetime

      - name: Extract branch name
        shell: bash
        run: echo "branch=${GITHUB_HEAD_REF:-${GITHUB_REF#refs/heads/}}" >> $GITHUB_OUTPUT
        id: extract_branch

      - name: Upload to DO Spaces
        uses: shallwefootball/s3-upload-action@master
        with:
          aws_key_id: ${{ secrets.AWS_KEY_ID }}
          aws_secret_access_key: ${{ secrets.AWS_SECRET_ACCESS_KEY}}
          aws_bucket: ${{ vars.AWS_BUCKET }}
          source_dir: build
          endpoint: https://nyc3.digitaloceanspaces.com
          destination_dir: ${{ steps.extract_branch.outputs.branch }}

  linux-arm64-cli:
    runs-on: arm-runner

    steps:
      - name: Checkout
        uses: actions/checkout@v3

      - name: Compile ARM64
        run: |
          export PATH=$HOME/.cargo/bin:$PATH
          cargo build --release -p spacetimedb-cli
          mkdir build
          cp --sparse=never target/release/spacetime build/spacetime
          cd build && tar -czf spacetime.linux-arm64.tar.gz spacetime
          rm spacetime

      - name: Extract branch name
        shell: bash
        run: echo "branch=${GITHUB_HEAD_REF:-${GITHUB_REF#refs/heads/}}" >> $GITHUB_OUTPUT
        id: extract_branch

      - name: Upload to DO Spaces
        uses: shallwefootball/s3-upload-action@master
        with:
          aws_key_id: ${{ secrets.AWS_KEY_ID }}
          aws_secret_access_key: ${{ secrets.AWS_SECRET_ACCESS_KEY}}
          aws_bucket: ${{ vars.AWS_BUCKET }}
          source_dir: build
          endpoint: https://nyc3.digitaloceanspaces.com
          destination_dir: ${{ steps.extract_branch.outputs.branch }}