Update tests.yml
diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml
index bd0a2fa..4b8006b 100644
--- a/.github/workflows/tests.yml
+++ b/.github/workflows/tests.yml
@@ -3,126 +3,77 @@
   push:
 
 jobs:
-  # -------------------- Linux --------------------
+  # ---------- Linux ----------
   unit_linux:
     runs-on: ubuntu-latest
+    defaults: { run: { shell: bash } }
     steps:
-      - uses: actions/checkout@v2
+      - uses: actions/checkout@v4
 
-      - name: Premake
-        run: |
-          wget -q https://github.com/premake/premake-core/releases/download/v5.0.0-beta2/premake-5.0.0-beta2-linux.tar.gz
-          tar -xf premake-5.0.0-beta2-linux.tar.gz
-          sudo install -m 0755 premake5 /usr/local/bin/premake5
-
-      - name: Dependencies
+      - name: Tooling
         run: |
           sudo apt-get update
           sudo apt-get install -y build-essential uuid-dev clang llvm lld
-
-      - name: Add build scripts to PATH
-        run: echo "${{ github.workspace }}/build" >> $GITHUB_PATH
-
-      - name: Build
-        shell: bash
-        run: |
-          cd tests/unit_tests
-          ../../build_rive.sh --file=premake5_v2.lua --with_rive_audio=system --with_rive_scripting debug
-          ../../build_rive.sh --file=premake5_v2.lua --with_rive_audio=system --with_rive_scripting release
-
-      - name: Unit tests
-        run: |
-          ./test.sh
-          if [ -x ./out/debug/unit_tests ]; then
-            ./out/debug/unit_tests
-          elif [ -x ./out/release/unit_tests ]; then
-            ./out/release/unit_tests
-          else
-            echo "No unit_tests binary found!" && exit 1
-          fi
-  # -------------------- Windows (clang-cl toolset) --------------------
-  unit_windows:
-    runs-on: windows-2022
-    steps:
-      - uses: actions/checkout@v2
-      - uses: microsoft/setup-msbuild@v1.1
-
-      - name: Add build scripts to PATH
-        shell: bash
-        run: echo "${{ github.workspace }}/build" >> $GITHUB_PATH
-
-      - name: Build tests (Windows)
-        shell: cmd
-        working-directory: tests/unit_tests
-        run: .\test.bat
-  
-      - name: Unit tests (no GPU)
-        shell: cmd
-        working-directory: tests/unit_tests
-        run: |
-          set UT=
-          for /r out %%f in (unit_tests.exe) do (
-            set UT=%%f
-            goto :found
-          )
-          echo Could not find unit_tests.exe && exit /b 1
-          :found
-          echo Found: !UT!
-          rem show what factories are compiled in (for debugging)
-          "!UT!" --list-factories
-          rem run with a safe factory on CI
-          "!UT!" --factory=null || "!UT!" --factory=warp || exit /b 1
-
-  # -------------------- Windows (MSVC toolset) --------------------
-  unit_windows_msvc:
-    runs-on: windows-2022
-    steps:
-      - uses: actions/checkout@v2
-      - uses: microsoft/setup-msbuild@v1.1
-
-      - name: Add build scripts to PATH
-        shell: bash
-        run: echo "${{ github.workspace }}/build" >> $GITHUB_PATH
-
-      - name: Unit tests (MSVC, no GPU)
-        shell: cmd
-        working-directory: tests/unit_tests
-        run: .\test.bat --toolset=msc --factory=null
-
-  # -------------------- macOS --------------------
-  unit_macos:
-    runs-on: macOS-latest
-    steps:
-      - uses: actions/checkout@v3
-
-      - name: Premake
-        run: |
-          curl -L -o premake_macosx.tar.gz https://github.com/premake/premake-core/releases/download/v5.0.0-beta2/premake-5.0.0-beta2-macosx.tar.gz
-          tar -xf premake_macosx.tar.gz
+          curl -sL -o premake.tar.gz https://github.com/premake/premake-core/releases/download/v5.0.0-beta2/premake-5.0.0-beta2-linux.tar.gz
+          tar -xf premake.tar.gz
           sudo install -m 0755 premake5 /usr/local/bin/premake5
 
       - name: Add build scripts to PATH
-        run: echo "${{ github.workspace }}/build" >> $GITHUB_PATH
+        run: echo "${{ github.workspace }}/build" >> "$GITHUB_PATH"   # official way to extend PATH
+      # ^ GITHUB_PATH is the supported mechanism. :contentReference[oaicite:2]{index=2}
 
-      - name: Unit tests (no ASan)
+      - name: Unit tests
+        working-directory: tests/unit_tests
         run: |
-          cd tests/unit_tests
-          ./test.sh
+          ./test.sh                # builds and runs ./out/<cfg>/unit_tests
 
-      # Tess (kept as separate; builds and runs both variants)
-      - name: Tess tests
+  # ---------- Windows (MSVC) ----------
+  unit_windows_msvc:
+    runs-on: windows-2022
+    steps:
+      - uses: actions/checkout@v4
+      - uses: microsoft/setup-msbuild@v1.3  # puts msbuild on PATH :contentReference[oaicite:3]{index=3}
+
+      - name: Add build scripts to PATH
+        shell: bash
+        run: echo "${{ github.workspace }}/build" >> "$GITHUB_PATH"
+
+      - name: Unit tests (no GPU)
+        shell: cmd
+        working-directory: tests\unit_tests
         run: |
-          set -euo pipefail
-          cd tess
+          setlocal EnableDelayedExpansion  & rem needed if you loop over files later :contentReference[oaicite:4]{index=4}
+          call test.bat --toolset=msc --factory=null
+          endlocal
 
-          # Debug/default
-          ../build/build_rive.sh --file=premake5_tess.lua
-          DBG_BIN=$(find ./out -type f -name 'rive_tess_tests*' -perm -111 -print -quit)
-          echo "Debug tess binary: ${DBG_BIN:-<not found>}"
-          test -n "${DBG_BIN:-}" && "$DBG_BIN"
+  # ---------- Windows (clang-cl) ----------
+  unit_windows_clang:
+    runs-on: windows-2022
+    steps:
+      - uses: actions/checkout@v4
+      - uses: microsoft/setup-msbuild@v1.3
 
-          # Release
-          ../build/build_rive.sh --file=premake5_tess.lua release
-          REL_BIN=$(find ./out -type f -name 'rive_tess_tests*' -perm -111 -print -quit)
-          echo "Release tess binary: ${REL_BIN:-<not found>}"
-          test -n "${REL_BIN:-}" && "$REL_BIN"
+      - name: Add build scripts to PATH
+        shell: bash
+        run: echo "${{ github.workspace }}/build" >> "$GITHUB_PATH"
+
+      - name: Unit tests (clang-cl, no GPU)
+        shell: cmd
+        working-directory: tests\unit_tests
+        run: call test.bat --factory=null
+
+  # ---------- macOS ----------
+  unit_macos:
+    runs-on: macos-latest
+    steps:
+      - uses: actions/checkout@v4
+      - name: Tooling
+        run: |
+          curl -sL -o premake_macosx.tar.gz https://github.com/premake/premake-core/releases/download/v5.0.0-beta2/premake-5.0.0-beta2-macosx.tar.gz
+          tar -xf premake_macosx.tar.gz
+          sudo install -m 0755 premake5 /usr/local/bin/premake5
+      - name: Add build scripts to PATH
+        run: echo "${{ github.workspace }}/build" >> "$GITHUB_PATH"
+      - name: Unit tests
+        working-directory: tests/unit_tests
+        run: ./test.sh