name: Release

on:
  push:
    tags: ["v*"]

jobs:
  build:
    name: Build
    runs-on: ubuntu-latest
    steps:
      - name: Checkout Project
        uses: actions/checkout@v4

      - name: Install Rokit
        uses: CompeyDev/setup-rokit@v0.1.2

      - name: Install Dependencies
        run: wally install

      - name: Build
        run: rojo build --output build.rbxm default.project.json

      - name: Upload Build Artifact
        uses: actions/upload-artifact@v3
        with:
          name: build
          path: build.rbxm

  release:
    name: Release
    needs: [build]
    runs-on: ubuntu-latest
    permissions:
      contents: write
    steps:
      - name: Checkout Project
        uses: actions/checkout@v4

      - name: Download Jecs Build
        uses: actions/download-artifact@v3
        with:
          name: build
          path: build

      - name: Rename Build
        run: mv build/build.rbxm jecs.rbxm

      - name: Create Release
        uses: softprops/action-gh-release@v1
        with:
          name: Jecs ${{ github.ref_name }}
          files: |
            jecs.rbxm

  publish:
    name: Publish
    needs: [release]
    runs-on: ubuntu-latest
    steps:
      - name: Checkout Project
        uses: actions/checkout@v4

      - name: Install Rokit
        uses: CompeyDev/setup-rokit@v0.1.2

      - name: Wally Login
        run: wally login --token ${{ secrets.WALLY_AUTH_TOKEN }}

      - name: Publish
        run: wally publish
