From 09393f6aaeacccac241f2090465ab527ff892285 Mon Sep 17 00:00:00 2001 From: skymanbp <57272723+skymanbp@users.noreply.github.com> Date: Tue, 18 Aug 2026 22:25:26 -0400 Subject: [PATCH] ci: add Windows and macOS test lanes The suite passes on Windows since #212; these lanes keep it that way. Runs the cabal.project.ci subset on windows-latest and macos-14 at the ends of the tested GHC range (9.6.7, 9.12.2). --- .github/workflows/ci-windows-macos.yml | 44 ++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 .github/workflows/ci-windows-macos.yml diff --git a/.github/workflows/ci-windows-macos.yml b/.github/workflows/ci-windows-macos.yml new file mode 100644 index 00000000..cc997d13 --- /dev/null +++ b/.github/workflows/ci-windows-macos.yml @@ -0,0 +1,44 @@ +# Windows + macOS lanes over the portable subset in cabal.project.ci +# (skips packages needing libtorch, system C libs, or foreign-library). + +name: CI (Windows + macOS) + +on: + push: + branches: [main] + pull_request: + +jobs: + build: + name: ${{ matrix.os }} / GHC ${{ matrix.ghc }} + strategy: + fail-fast: false + matrix: + os: [windows-latest, macos-14] + ghc: ["9.6.7", "9.12.2"] + runs-on: ${{ matrix.os }} + steps: + - uses: actions/checkout@v4 + + - name: Set up GHC ${{ matrix.ghc }} + id: setup + uses: haskell-actions/setup@v2 + with: + ghc-version: ${{ matrix.ghc }} + cabal-version: latest + + - name: Freeze + run: cabal freeze --project-file=cabal.project.ci + + - name: Cache cabal store + uses: actions/cache@v4 + with: + path: ${{ steps.setup.outputs.cabal-store }} + key: ${{ runner.os }}-ghc-${{ matrix.ghc }}-${{ hashFiles('cabal.project.ci.freeze') }} + restore-keys: ${{ runner.os }}-ghc-${{ matrix.ghc }}- + + - name: Build (cabal.project.ci subset) + run: cabal build all --project-file=cabal.project.ci + + - name: Test (cabal.project.ci subset) + run: cabal test all --project-file=cabal.project.ci