diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index efbe852..41437ec 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -5,32 +5,65 @@ on: - cron: '0 3 * * 6' # 3am Saturday workflow_dispatch: jobs: - test: + build: + name: ghc ${{ matrix.ghc }} runs-on: ${{ matrix.os }} strategy: fail-fast: false matrix: os: [ubuntu-latest] - ghc: ['9.6', '9.4', '9.2', '9.0', '8.10', '8.8'] + ghc: + - "8.6.5" + - "8.8.3" + - "8.10.7" + - "9.0.2" + - "9.2.4" + - "9.4.7" + - "9.6.3" + - "9.8.1" + - "9.10.1" + - "9.12.1" include: - os: windows-latest - os: macOS-latest steps: - - run: git config --global core.autocrlf false - - uses: actions/checkout@v2 - - uses: haskell-actions/setup@v2.5 - id: setup-haskell + - uses: actions/checkout@v4 + + - uses: haskell-actions/setup@v2.7 + id: setup-haskell-cabal + name: Setup Haskell with: ghc-version: ${{ matrix.ghc }} - - run: cabal v2-freeze --enable-tests - - uses: actions/cache@v2 + cabal-version: ${{ matrix.cabal }} + + - name: Configure + run: | + cabal configure --enable-tests --enable-benchmarks --enable-documentation --test-show-details=direct --write-ghc-environment-files=always + + - name: Freeze + run: | + cabal freeze + + - uses: actions/cache@v3 + name: Cache ~/.cabal/3tore with: path: ${{ steps.setup-haskell.outputs.cabal-store }} key: ${{ runner.os }}-${{ matrix.ghc }}-${{ hashFiles('cabal.project.freeze') }} - restore-keys: ${{ runner.os }}-${{ matrix.ghc }}- - - uses: tomjaguarpaw/neil@tag-ac7e72e - with: - github-user: tomjaguarpaw - branch: tag-4459934 + + - name: Install dependencies + run: | + cabal build all --only-dependencies + + - name: Build + run: | + cabal build all + + - name: Test + run: | + cabal test all + +# - name: Documentation +# run: | +# cabal haddock all