name: Release

on:
  push:
    branches:
      - release

permissions:
  contents: write

jobs:
  release:
    name: Build, Bundle, & Release
    runs-on: ubuntu-latest

    steps:
      - name: Checkout
        uses: actions/checkout@v6.0.1

      - name: Setup Bun
        uses: oven-sh/setup-bun@v2.0.2
        with:
          bun-version: 1.3.5

      - name: Install Dependencies
        run: bun ci

      - name: Setup Rokit
        uses: CompeyDev/setup-rokit@v0.1.2
        with:
          version: v1.2.0

      - name: Install Rokit Dependencies
        run: rokit install --no-trust-check

      - name: ESLint Check
        run: bun run lint

      - name: Build & Bundle
        run: bun run build

      - name: Get Version
        uses: saionaro/extract-package-version@v1.3.0
        id: version

      - name: Release
        uses: softprops/action-gh-release@v2.5.0
        with:
          make_latest: true
          overwrite_files: true
          generate_release_notes: true
          name: 📦 Release ${{ steps.version.outputs.version }}
          tag_name: ${{ steps.version.outputs.version }}
          working_directory: "out"
          files: "*.luau"
