git.iko.soy/rowtype-yoga/purescript-yoga-actions
on main help sign in
Drop Node.js entirely! Use 'bunx spago' to run with Bun runtime
commit2f5528bbff4a4906e9e75d117e64d84b1f7fe27d authorMark <mark.eibes@gmail.com> dateWed 4 Feb 2026, 20:35 (8 months ago) parenteccbb54
2 files changed+14−25
.github/actions/setup/action.yml−9 README.md+14−16
.github/actions/setup/action.yml−9
@@ -25,11 +25,6 @@ inputs:
2525runs:
2626 using: 'composite'
2727 steps:
28− - name: Setup Node.js 22 (required for Spago's node:sqlite)
29− uses: actions/setup-node@v4
30− with:
31− node-version: '22'
32−
3328 - name: Setup Bun
3429 uses: oven-sh/setup-bun@v1
3530 with:
@@ -39,10 +34,6 @@ runs:
3934 shell: bash
4035 run: bun install --global purescript@${{ inputs.purescript-version }}
4136
42− - name: Install Spago
43− shell: bash
44− run: bun install --global spago@${{ inputs.spago-version }}
45−
4637 - name: Install dependencies
4738 if: inputs.install-deps == 'true'
4839 shell: bash
README.md+14−16
@@ -7,10 +7,10 @@ Reusable GitHub Actions for PureScript Yoga packages.
77### `setup` - Complete PureScript Yoga Stack Setup
88
99Sets up everything needed to build and test PureScript Yoga packages:
10−- Node.js 22+ (required for Spago's `node:sqlite` dependency)
11−- Bun (for fast package installation)
10+- Bun (JavaScript runtime + fast package manager)
1211- PureScript compiler
13−- Spago package manager
12+
13+**Note**: Use `bunx spago` instead of `spago` in your workflows to run Spago with Bun's runtime.
1414
1515#### Usage
1616
@@ -21,11 +21,9 @@ Sets up everything needed to build and test PureScript Yoga packages:
2121#### With Custom Versions
2222
2323```yaml
24−- uses: rowtype-yoga/purescript-yoga-actions/setup@main
24+- uses: rowtype-yoga/purescript-yoga-actions/.github/actions/setup@main
2525 with:
2626 purescript-version: '0.15.15'
27− spago-version: 'unstable'
28− node-version: '22'
2927 bun-version: 'latest'
3028 install-deps: 'true'
3129```
@@ -35,7 +33,6 @@ Sets up everything needed to build and test PureScript Yoga packages:
3533| Input | Description | Default |
3634|-------|-------------|---------|
3735| `purescript-version` | PureScript compiler version | `0.15.15` |
38−| `spago-version` | Spago version (`latest` or semver) | `latest` |
3936| `bun-version` | Bun version | `latest` |
4037| `install-deps` | Auto-run `bun install` | `true` |
4138
@@ -69,9 +66,9 @@ jobs:
6966 runs-on: ubuntu-latest
7067 steps:
7168 - uses: actions/checkout@v4
72− - uses: rowtype-yoga/purescript-yoga-actions/setup@main
73− - run: spago build
74− - run: spago test
69+ - uses: rowtype-yoga/purescript-yoga-actions/.github/actions/setup@main
70+ - run: bunx spago build
71+ - run: bunx spago test
7572```
7673
7774### With Redis Service
@@ -98,15 +95,16 @@ jobs:
9895
9996 steps:
10097 - uses: actions/checkout@v4
101− - uses: rowtype-yoga/purescript-yoga-actions/setup@main
102− - run: spago test
98+ - uses: rowtype-yoga/purescript-yoga-actions/.github/actions/setup@main
99+ - run: bunx spago test
103100```
104101
105−## Why Node 22 + Bun?
106−
107−**Node.js 22** is required because Spago 1.x uses the `node:sqlite` built-in module (only available in Node 22+). When you run `spago`, it executes with the system Node.js.
102+## Why Bun?
108103
109−**Bun** is used for incredibly fast npm package installation (`bun install` is much faster than `npm install`).
104+**Bun** is a fast all-in-one JavaScript runtime that:
105+- Can run Spago 1.x (including its `node:sqlite` dependency) via `bunx`
106+- Provides incredibly fast package installation
107+- No separate Node.js installation needed!
110108
111109## License
112110