Skip to content

A whole lot of changes #97

A whole lot of changes

A whole lot of changes #97

Workflow file for this run

name: PR
on: [pull_request]
jobs:
# Formatting, linting and the docs build say the same thing on every OS, so they run once.
# `fmt:check` in particular has nothing to gain from a second opinion and something to lose to
# line endings.
checks:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v7
with:
fetch-depth: 0
- uses: oven-sh/setup-bun@v2
- name: Setup dotnet
uses: actions/setup-dotnet@v6
with:
global-json-file: global.json
- name: Restore tools
run: dotnet tool restore
- name: Restore solution
run: dotnet restore
- name: Install node_modules
run: bun install --frozen-lockfile
- name: Check formatting
run: bun run fmt:check
- name: Lint
run: bun run lint
- name: Build docs
run: dotnet fsdocs build --noapidocs --projects "$(pwd)/packages/vite-plugin-fable/Fable.Daemon/Fable.Daemon.fsproj"
# The plugin spawns a child process, normalises paths and shells out to MSBuild, so what it does
# is not the same on every OS. `fail-fast: false` because "it broke on Windows only" is the
# answer worth having, and it is lost when the first failure cancels the rest.
test:
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, macos-latest, windows-latest]
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v7
with:
fetch-depth: 0
- uses: oven-sh/setup-bun@v2
- name: Setup dotnet
uses: actions/setup-dotnet@v6
with:
global-json-file: global.json
- name: Restore solution
run: dotnet restore
- name: Install node_modules
run: bun install --frozen-lockfile
- name: Test plugin
run: bun run test:plugin
- name: Test daemon
run: bun run test:daemon
- name: Build daemon
run: bun run build:daemon
- name: Build sample
run: bun run build
working-directory: ./sample-project