Nix flake #61
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: CI | |
# Trigger the workflow on push or pull request, but only for the master branch | |
on: | |
pull_request: | |
push: | |
branches: [master] | |
jobs: | |
cabal: | |
name: ${{ matrix.os }} / ghc ${{ matrix.ghc }} | |
runs-on: ${{ matrix.os }} | |
strategy: | |
matrix: | |
os: [ubuntu-latest, macOS-latest, windows-latest] | |
cabal: ["3.12"] | |
ghc: | |
# GHC versions listed as current stable releases | |
- "9.2.8" | |
- "9.4.8" | |
- "9.6.6" | |
- "9.8.2" | |
- "9.10.1" | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: haskell-actions/setup@v2 | |
id: setup-haskell-cabal | |
name: Setup GHC and cabal-install | |
with: | |
ghc-version: ${{ matrix.ghc }} | |
cabal-version: ${{ matrix.cabal }} | |
- name: Configure | |
run: | | |
cabal configure --enable-tests --enable-benchmarks --test-show-details=direct | |
- name: Freeze | |
run: | | |
cabal freeze | |
- uses: actions/cache@v4 | |
name: Cache ~/.cabal/store | |
with: | |
path: ${{ steps.setup-haskell-cabal.outputs.cabal-store }} | |
key: ${{ runner.os }}-${{ matrix.ghc }}-cabal-${{ hashFiles('cabal.project.freeze') }} | |
- name: Install dependencies | |
run: | | |
cabal build all --only-dependencies | |
- name: Build | |
run: | | |
cabal build all | |
- name: Test the test-suite test | |
run: | | |
cabal test path:test | |
# - name: Test the test-suite validity-test | |
# run: | | |
# cabal test path:validity-test | |
# As of 2024-07-29, the GitHub-hosted runner on ubuntu-latest comes with | |
# Stack 2.15.7 and GHC 9.10.1. | |
stack: | |
name: "stack / ghc ${{ matrix.ghc }} (${{ matrix.stack-yaml }})" | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
ghc: ["9.10.1"] | |
stack-yaml: | |
- "stack.yaml" | |
- "stack.os-string.yaml" | |
steps: | |
- name: Clone project | |
uses: actions/checkout@v4 | |
- name: Cache Stack root | |
uses: actions/cache@v4 | |
with: | |
path: ~/.stack | |
key: ${{ runner.os }}-${{ matrix.ghc }}-stack-${{ hashFiles(format('{0}.lock', matrix.stack-yaml)) }} | |
- name: Install dependencies | |
run: | | |
stack --stack-yaml "${{ matrix.stack-yaml }}" build --system-ghc --test --bench --no-run-tests --no-run-benchmarks --only-dependencies | |
- name: Build | |
run: | | |
stack --stack-yaml "${{ matrix.stack-yaml }}" build --system-ghc --test --bench --no-run-tests --no-run-benchmarks | |
- name: Test the test-suite test | |
run: | | |
stack --stack-yaml "${{ matrix.stack-yaml }}" test path:test:test --system-ghc | |
# - name: Test the test-suite validity-test | |
# run: | | |
# stack test path:test:validity-test --system-ghc |