diff --git a/.github/workflows/haskell.yml b/.github/workflows/haskell.yml new file mode 100644 index 0000000..4d954c5 --- /dev/null +++ b/.github/workflows/haskell.yml @@ -0,0 +1,45 @@ +name: github-action + +on: [push, pull_request] + +jobs: + build: + strategy: + matrix: + ghc: ['8.6.5', '8.8.4'] + os: ['ubuntu-latest', 'macos-latest'] + exclude: + # There are some linker warnings in 802 on darwin that + # cause compilation to fail + # See https://github.com/NixOS/nixpkgs/issues/25139 + - ghc: '8.0.2' + os: 'macos-latest' + runs-on: ${{ matrix.os }} + + name: GHC ${{ matrix.ghc }} on ${{ matrix.os }} + steps: + - uses: actions/checkout@v2 + - uses: actions/setup-haskell@v1 + with: + ghc-version: ${{ matrix.ghc }} + - name: Cache + uses: actions/cache@v1 + 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 + - name: Run tests + run: cabal test all diff --git a/cabal.project b/cabal.project new file mode 100644 index 0000000..b3a7351 --- /dev/null +++ b/cabal.project @@ -0,0 +1,4 @@ +packages: + class/ + groundhog/ + obelisk/ diff --git a/class/database-id-class.cabal b/class/database-id-class.cabal index 8edd7bd..24ead3c 100644 --- a/class/database-id-class.cabal +++ b/class/database-id-class.cabal @@ -16,7 +16,7 @@ extra-source-files: CHANGELOG.md library exposed-modules: Database.Id.Class - build-depends: base >=4.11 && <4.14 + build-depends: base >=4.11 && <4.15 , aeson hs-source-dirs: src default-language: Haskell2010 diff --git a/groundhog/database-id-groundhog.cabal b/groundhog/database-id-groundhog.cabal index 460f1fa..a996a4c 100644 --- a/groundhog/database-id-groundhog.cabal +++ b/groundhog/database-id-groundhog.cabal @@ -18,7 +18,7 @@ library , Database.Id.Groundhog.TH other-extensions: QuasiQuotes , TemplateHaskell - build-depends: base >=4.11 && <4.13 + build-depends: base >=4.11 && <4.15 , aeson , database-id-class , groundhog <= 0.7.0.3 diff --git a/obelisk/database-id-obelisk.cabal b/obelisk/database-id-obelisk.cabal index 9bfbe79..ca5d1c4 100644 --- a/obelisk/database-id-obelisk.cabal +++ b/obelisk/database-id-obelisk.cabal @@ -15,7 +15,7 @@ extra-source-files: CHANGELOG.md library exposed-modules: Database.Id.Obelisk.Route - build-depends: base >=4.11 && <4.13 + build-depends: base >=4.11 && <4.15 , obelisk-route , database-id-class , mtl