Skip to content

chore: Use get-tested GH Action to generate runner matrix #43

chore: Use get-tested GH Action to generate runner matrix

chore: Use get-tested GH Action to generate runner matrix #43

Workflow file for this run

# The present workflow was made based on the following references:
# - https://github.com/actions/cache/blob/main/examples.md#haskell---cabal
# - https://github.com/haskell/time/blob/master/.github/workflows/ci.yml
# - https://github.com/stackbuilders/stache/blob/master/.github/workflows/ci.yaml
# - https://markkarpov.com/post/github-actions-for-haskell-ci.html
---
name: Build
on: push
concurrency:
group: build-${{ github.ref }}
cancel-in-progress: true
jobs:
generate-matrix:
name: "Generate matrix from cabal"
outputs:
matrix: ${{ steps.set-matrix.outputs.matrix }}
runs-on: ubuntu-latest
steps:
- name: Extract the tested GHC versions
id: set-matrix
uses: kleidukos/get-tested@v0.1.7.0
with:
cabal-file: get-tested.cabal
ubuntu-version: latest
version: 0.1.7.0
build-and-test:
name: ${{ matrix.ghc }} on ${{ matrix.os }}
needs: generate-matrix
strategy:
matrix: ${{ fromJSON(needs.generate-matrix.outputs.matrix) }}
runs-on: ${{ matrix.os }}
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Install Haskell tooling
uses: haskell-actions/setup@v2
with:
ghc-version: ${{ matrix.ghc }}
cabal-version: "3.6"
- name: Configure project
run: cabal configure --enable-tests
- name: Build project
run: cabal build
- name: Run tests
run: cabal test --test-show-details=direct
- name: Check documentation
run: cabal haddock