Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
31 changes: 31 additions & 0 deletions .github/workflows/build-and-test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -30,3 +30,34 @@ jobs:
# running anything.
- name: Test
run: dotnet run --project test --configuration Release --no-restore

# Compile-only gate for the Fable targets. The cross-target *suites* are not green yet
# (JS 82/84, Python 79/84, BEAM 14/84 — see CLAUDE.md), so they cannot gate anything, but
# compilation is binary and already passes on all three. This keeps a change to src/ from
# silently breaking a target between manual `just test-<target>` runs.
#
# Nothing is executed, only compiled, so no Node, uv, rebar3 or erl is needed.
# fail-fast is off so one broken target does not mask the state of the others.
fable-compile:

runs-on: ubuntu-latest

strategy:
fail-fast: false
matrix:
lang: [beam, javascript, python]

steps:
- uses: actions/checkout@v5
- name: Setup .NET
uses: actions/setup-dotnet@v5
with:
dotnet-version: 10.0.x
dotnet-quality: preview
# Pulls the `fable` tool pinned in .config/dotnet-tools.json (5.13.0).
- name: Setup paket
run: dotnet tool restore
- name: Install dependencies
run: dotnet restore
- name: Compile src to ${{ matrix.lang }}
run: dotnet fable src --lang ${{ matrix.lang }} --outDir build/gate-${{ matrix.lang }}