git.iko.soy/rowtype-yoga/purescript-yoga-actions
on main help sign in

Reusable GitHub Actions for PureScript Yoga packages

git clone ssh://git.iko.soy/rowtype-yoga/purescript-yoga-actions

PureScript Yoga GitHub Actions

Reusable GitHub Actions for PureScript Yoga packages.

Actions

setup - Complete PureScript Yoga Stack Setup

Sets up everything needed to build and test PureScript Yoga packages:

Usage

- uses: rowtype-yoga/purescript-yoga-actions/setup@main

With Custom Versions

- uses: rowtype-yoga/purescript-yoga-actions/setup@main
  with:
    purescript-version: '0.15.15'
    spago-version: 'unstable'
    node-version: '22'
    bun-version: 'latest'
    install-deps: 'true'

Inputs

InputDescriptionDefault
purescript-versionPureScript compiler version0.15.15
spago-versionSpago version (latest or semver)latest
bun-versionBun versionlatest
install-depsAuto-run bun installtrue

Example Workflows

Basic Build

name: CI

on: [push, pull_request]

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: rowtype-yoga/purescript-yoga-actions/setup@main
      - run: spago build

With Tests

name: CI

on: [push, pull_request]

jobs:
  test:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: rowtype-yoga/purescript-yoga-actions/setup@main
      - run: spago build
      - run: spago test

With Redis Service

name: CI

on: [push, pull_request]

jobs:
  test:
    runs-on: ubuntu-latest
    
    services:
      redis:
        image: redis:7-alpine
        ports:
          - 6380:6379
        options: >-
          --health-cmd "redis-cli ping"
          --health-interval 10s
          --health-timeout 5s
          --health-retries 5

    steps:
      - uses: actions/checkout@v4
      - uses: rowtype-yoga/purescript-yoga-actions/setup@main
      - run: spago test

Why Node 22 + Bun?

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.

Bun is used for incredibly fast npm package installation (bun install is much faster than npm install).

License

MIT