Skip to content

Mac CI: use macos-13 for GHC 7.10 #33

Mac CI: use macos-13 for GHC 7.10

Mac CI: use macos-13 for GHC 7.10 #33

Workflow file for this run

# modified from https://github.com/agda/agda/blob/8b7c6d886b835f5dfcf1e5052dd83ebabac73592/src/github/workflows/cabal.yml
name: Cabal build (Windows/macOS)
on:
push:
branches:
- master
pull_request:
branches:
- master
defaults:
run:
shell: bash
jobs:
cabal:
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [windows-latest, macos-latest]
ghc: ['9.8', '9.6', '9.4']
# Minor versions are determined by setup-haskell.
# Use quotes so that the version numbers are not interpreted as floats.
include:
- os: macos-13
ghc: '7.10'
- os: windows-latest
ghc: '8.4'
# 2022-05-26: GHC 7.10.3 is broken on Windows (Chocolatey)
# 2023-02-10: GHCs 8.0 and 8.2 fail to build hsc2hs-0.68.10 on Windows
# see https://github.com/haskell/hsc2hs/issues/81
steps:
- uses: actions/checkout@v4
- uses: haskell-actions/setup@v2
id: setup-haskell
with:
ghc-version: ${{ matrix.ghc }}
cabal-version: latest
cabal-update: true
# # How would you get something like steps.setup-haskell.outputs.cabal-store
# # when installing with ghcup?
# - name: Install ghc and cabal with ghcup
# run: |
# ghcup install --set ghc ${{ matrix.ghc }}
# ghcup install cabal ${{ matrix.cabal }}
#
# - name: Environment settings based on the Haskell setup
# run: |
# export GHC_VER=$(ghc --numeric-version)
# export CABAL_VER=$(cabal --numeric-version)
# echo "GHC_VER = ${GHC_VER}"
# echo "CABAL_VER = ${CABAL_VER}"
# echo "GHC_VER=${GHC_VER}" >> ${GITHUB_ENV}
# echo "CABAL_VER=${CABAL_VER}" >> ${GITHUB_ENV}
# # From now on, use env.{GHC|CABAL}_VER rather than matrix.{ghc|cabal}!
- name: Configure the build plan
run: |
cabal configure -O0 --enable-tests --enable-benchmarks
- uses: actions/cache@v4
name: Cache dependencies
id: cache
env:
key: ${{ runner.os }}-cabal-${{ steps.setup-haskell.outputs.cabal-version }}-ghc-${{ steps.setup-haskell.outputs.ghc-version }}
with:
path: |
${{ steps.setup-haskell.outputs.cabal-store }}
# The file `plan.json` contains the build information.
key: ${{ env.key }}-${{ hashFiles('**/plan.json') }}
restore-keys: ${{ env.key }}-
- name: Install dependencies
if: ${{ steps.cache.outputs.cache-hit != 'true' }}
run: |
cabal build --only-dependencies
- name: Build
run: |
cabal build
- name: Test
run: |
cabal test
- name: Haddock
run: |
cabal haddock
- name: Check cabal file
run: |
cabal check