@@ -0,0 +1,112 @@
1+# PureScript Yoga GitHub Actions
2+
3+Reusable GitHub Actions for PureScript Yoga packages.
4+
5+## Actions
6+
7+### `setup` - Complete PureScript Yoga Stack Setup
8+
9+Sets up everything needed to build and test PureScript Yoga packages:
10+- Node.js 22+ (required for Spago 1.x)
11+- PureScript compiler
12+- Spago package manager
13+- Bun (for fast npm package management)
14+
15+#### Usage
16+
17+```yaml
18+- uses: rowtype-yoga/purescript-yoga-actions/setup@main
19+```
20+
21+#### With Custom Versions
22+
23+```yaml
24+- uses: rowtype-yoga/purescript-yoga-actions/setup@main
25+ with:
26+ purescript-version: '0.15.15'
27+ spago-version: 'unstable'
28+ node-version: '22'
29+ bun-version: 'latest'
30+ install-deps: 'true'
31+```
32+
33+#### Inputs
34+
35+| Input | Description | Default |
36+|-------|-------------|---------|
37+| `purescript-version` | PureScript compiler version | `0.15.15` |
38+| `spago-version` | Spago version (`latest`, `unstable`, or semver) | `unstable` |
39+| `node-version` | Node.js version (required for Spago 1.x) | `22` |
40+| `bun-version` | Bun version | `latest` |
41+| `install-deps` | Auto-run `bun install` | `true` |
42+
43+## Example Workflows
44+
45+### Basic Build
46+
47+```yaml
48+name: CI
49+
50+on: [push, pull_request]
51+
52+jobs:
53+ build:
54+ runs-on: ubuntu-latest
55+ steps:
56+ - uses: actions/checkout@v4
57+ - uses: rowtype-yoga/purescript-yoga-actions/setup@main
58+ - run: spago build
59+```
60+
61+### With Tests
62+
63+```yaml
64+name: CI
65+
66+on: [push, pull_request]
67+
68+jobs:
69+ test:
70+ runs-on: ubuntu-latest
71+ steps:
72+ - uses: actions/checkout@v4
73+ - uses: rowtype-yoga/purescript-yoga-actions/setup@main
74+ - run: spago build
75+ - run: spago test
76+```
77+
78+### With Redis Service
79+
80+```yaml
81+name: CI
82+
83+on: [push, pull_request]
84+
85+jobs:
86+ test:
87+ runs-on: ubuntu-latest
88+
89+ services:
90+ redis:
91+ image: redis:7-alpine
92+ ports:
93+ - 6380:6379
94+ options: >-
95+ --health-cmd "redis-cli ping"
96+ --health-interval 10s
97+ --health-timeout 5s
98+ --health-retries 5
99+
100+ steps:
101+ - uses: actions/checkout@v4
102+ - uses: rowtype-yoga/purescript-yoga-actions/setup@main
103+ - run: spago test
104+```
105+
106+## Why Node.js 22?
107+
108+Spago 1.x requires Node.js 22+ because it uses the `node:sqlite` built-in module. Even though we use Bun for package management, Spago itself runs on the Node.js runtime.
109+
110+## License
111+
112+MIT