summaryrefslogtreecommitdiff
path: root/.github
diff options
context:
space:
mode:
authorAndreas Källberg <anka.213@gmail.com>2020-09-12 10:49:39 +0200
committerAndreas Källberg <anka.213@gmail.com>2020-09-12 10:55:18 +0200
commit340f8d9b93fe7fa9dda35ffeda0760cfeafb980a (patch)
tree713adebf23bc503f17baa5f2b2efb23ffac38e78 /.github
parent9d8cd55cd5e492ed8996fe86cc1145989f1bf51b (diff)
First attempt at github actions for stack
Diffstat (limited to '.github')
-rw-r--r--.github/workflows/build-all-versions.yml95
1 files changed, 95 insertions, 0 deletions
diff --git a/.github/workflows/build-all-versions.yml b/.github/workflows/build-all-versions.yml
new file mode 100644
index 000000000..52db74850
--- /dev/null
+++ b/.github/workflows/build-all-versions.yml
@@ -0,0 +1,95 @@
+# Based on the template here: https://kodimensional.dev/github-actions
+name: Build with stack and cabal
+
+# Trigger the workflow on push or pull request, but only for the master branch
+on:
+ pull_request:
+ push:
+ branches: [master]
+
+jobs:
+ cabal:
+ name: ${{ matrix.os }} / ghc ${{ matrix.ghc }}
+ runs-on: ${{ matrix.os }}
+ strategy:
+ matrix:
+ os: [ubuntu-latest, macOS-latest, windows-latest]
+ cabal: ["3.2"]
+ ghc:
+ - "8.6.5"
+ - "8.8.3"
+ - "8.10.1"
+ exclude:
+ - os: macOS-latest
+ ghc: 8.8.3
+ - os: macOS-latest
+ ghc: 8.6.5
+ - os: windows-latest
+ ghc: 8.8.3
+ - os: windows-latest
+ ghc: 8.6.5
+
+ steps:
+ - uses: actions/checkout@v2
+ if: github.event.action == 'opened' || github.event.action == 'synchronize' || github.event.ref == 'refs/heads/master'
+
+ - uses: actions/setup-haskell@v1.1.1
+ id: setup-haskell-cabal
+ name: Setup Haskell
+ with:
+ ghc-version: ${{ matrix.ghc }}
+ cabal-version: ${{ matrix.cabal }}
+
+ - name: Freeze
+ run: |
+ cabal freeze
+
+ - uses: actions/cache@v1
+ name: Cache ~/.cabal/store
+ with:
+ path: ${{ steps.setup-haskell-cabal.outputs.cabal-store }}
+ key: ${{ runner.os }}-${{ matrix.ghc }}
+ # key: ${{ runner.os }}-${{ matrix.ghc }}-${{ hashFiles('cabal.project.freeze') }}
+
+ - name: Build
+ run: |
+ cabal configure --enable-tests --enable-benchmarks --test-show-details=direct
+ cabal build all
+
+ # - name: Test
+ # run: |
+ # cabal test all
+
+ stack:
+ name: stack / ghc ${{ matrix.ghc }}
+ runs-on: ubuntu-latest
+ strategy:
+ matrix:
+ stack: ["2.3.3"]
+ ghc: ["7.10.3","8.0.2", "8.2.2", "8.4.4", "8.6.5", "8.8.4"]
+ # ghc: ["8.8.3"]
+
+ steps:
+ - uses: actions/checkout@v2
+ if: github.event.action == 'opened' || github.event.action == 'synchronize' || github.event.ref == 'refs/heads/master'
+
+ - uses: actions/setup-haskell@v1.1
+ name: Setup Haskell Stack
+ with:
+ # ghc-version: ${{ matrix.ghc }}
+ stack-version: ${{ matrix.stack }}
+
+ - uses: actions/cache@v1
+ name: Cache ~/.stack
+ with:
+ path: ~/.stack
+ key: ${{ runner.os }}-${{ matrix.ghc }}-stack
+
+ - name: Build
+ run: |
+ stack build --system-ghc --stack-yaml stack-ghc${{ matrix.ghc }}.yaml
+ # stack build --system-ghc --test --bench --no-run-tests --no-run-benchmarks
+
+ # - name: Test
+ # run: |
+ # stack test --system-ghc \ No newline at end of file