diff --git a/.github/workflows/haskell.yml b/.github/workflows/haskell.yml new file mode 100644 index 000000000..6aadac3c9 --- /dev/null +++ b/.github/workflows/haskell.yml @@ -0,0 +1,40 @@ +name: github-action + +on: [push, pull_request] + +jobs: + build: + strategy: + matrix: + ghc: ['8.6', '8.8', '8.10', '9.0', '9.2', '9.4', '9.6', '9.8', '9.10', '9.12'] + os: ['ubuntu-latest', 'macos-13'] # https://github.com/haskell-actions/setup/issues/77 + runs-on: ${{ matrix.os }} + + name: GHC ${{ matrix.ghc }} on ${{ matrix.os }} + steps: + - uses: actions/checkout@v4 + - uses: haskell-actions/setup@v2 + with: + ghc-version: ${{ matrix.ghc }} + - name: Cache + uses: actions/cache@v3 + env: + cache-name: cache-cabal + with: + path: ~/.cabal + key: ${{ runner.os }}-${{ matrix.ghc }}-build-${{ env.cache-name }}-${{ hashFiles('**/*.cabal') }}-${{ hashFiles('**/cabal.project') }} + restore-keys: | + ${{ runner.os }}-${{ matrix.ghc }}-build-${{ env.cache-name }}- + ${{ runner.os }}-${{ matrix.ghc }}-build- + ${{ runner.os }}-${{ matrix.ghc }}- + ${{ runner.os }} + + - name: Install dependencies + run: | + cabal update + cabal build --only-dependencies --enable-tests --enable-benchmarks all + - name: Build + run: cabal build --enable-tests --enable-benchmarks all + # Temporarily disabled until either a newer hlint is released or chrome-test-utils is released on hackage + # - name: Run tests + # run: cabal test all