Skip to content

friendly and idiomatic Haskell API (#16) #65

friendly and idiomatic Haskell API (#16)

friendly and idiomatic Haskell API (#16) #65

Workflow file for this run

name: CI
on:
push:
branches:
- main
pull_request:
branches:
- main
concurrency:
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
jobs:
build-and-test:
strategy:
fail-fast: false
matrix:
runner: [ubuntu-latest, warp-macos-latest-arm64-6x]
runs-on: ${{ matrix.runner }}
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Install go
uses: actions/setup-go@v5
with:
go-version: '1.22'
cache-dependency-path: "**/go.sum"
# Step 1: Set up Rust and build with Cargo
- name: Set up Rust
uses: dtolnay/rust-toolchain@stable
- uses: Swatinem/rust-cache@v2
- name: Build with Cargo
run: |
if [[ "${{ matrix.runner }}" == "warp-macos-latest-arm64-6x" ]]; then
cargo rustc --release --crate-type cdylib
else
cargo build --release
fi
# Step 2: Set up Haskell and build with Cabal
- name: Set up Haskell
uses: haskell-actions/setup@v2
with:
ghc-version: '9.10.1'
cabal-version: 'latest'
- name: Build with Cabal
run: cabal build
# Install and run nextest
- name: Install nextest
uses: taiki-e/install-action@nextest
- name: Run tests with nextest
run: cargo nextest run --release --no-fail-fast
# Run the Haskell test
- name: Run the cabal test program
run: cabal run test
- name: Run the Haskell test suite
run: cabal test