aboutsummaryrefslogtreecommitdiff
path: root/.github/workflows/ci.yml
diff options
context:
space:
mode:
authorcydparser <cydparser@gmail.com>2022-06-05 23:48:14 -0700
committerGitHub <noreply@github.com>2022-06-06 08:48:14 +0200
commit727f24ccf6e3b367b4ff05777c64b7c9ca4debdb (patch)
tree5ae1487be7ac771b0371ac1884cfba6edc0ac57f /.github/workflows/ci.yml
parentacf8bf078f154dd5707eef0d861960207a7af77b (diff)
Fix and improve CI (#1495)
* Pin GHC version before creating the freeze file * Use newest action versions * Improve caching * Avoid unnecessarily reinstalling GHC * Use GHC 9.2.2 for CI Co-authored-by: Cyd Wise <cwise@tripshot.com>
Diffstat (limited to '.github/workflows/ci.yml')
-rw-r--r--.github/workflows/ci.yml24
1 files changed, 12 insertions, 12 deletions
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index c147cbdc..5e2e8b34 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -15,12 +15,12 @@ jobs:
os: [ubuntu-latest]
cabal: ["3.6"]
ghc:
- - "9.2.1"
+ - "9.2.2"
steps:
- - uses: actions/checkout@v2
+ - uses: actions/checkout@v3
- - uses: haskell/actions/setup@v1
+ - uses: haskell/actions/setup@v2
id: setup-haskell-cabal
name: Setup Haskell
with:
@@ -32,29 +32,29 @@ jobs:
# not include documentation, and we need documentation to run Haddock tests.
# Therefore, we reinstall GHC to ensure that we have the documentation we
# need.
-
- # TODO: Only reinstall GHC when the docs are actually missing. (If we're
- # using a GHC version that is not preinstalled by GitHub, then we will be
- # using a GHC installed by ghcup, which should have documentation.)
- name: Reinstall GHC with docs
run: |
- ghcup rm ghc ${{ matrix.ghc }}
- ghcup install ghc ${{ matrix.ghc }}
+ if [[ ! -e ~/.ghcup/ghc/${{ matrix.ghc }}/share/doc ]]; then
+ ghcup install ghc --force ${{ matrix.ghc }} --set
+ fi
- - name: Freeze
+ - name: Setup
run: |
+ cabal configure --with-compiler ghc-${{ matrix.ghc }} --enable-tests --enable-benchmarks --test-show-details=direct
cabal freeze
-
+
- uses: actions/cache@v2
name: Cache ~/.cabal/store
with:
path: |
${{ steps.setup-haskell-cabal.outputs.cabal-store }}
+ dist-newstyle
key: ${{ runner.os }}-${{ matrix.ghc }}-${{ hashFiles('cabal.project.freeze') }}
+ restore-keys: |
+ ${{ runner.os }}-cabal-${{ matrix.ghc }}
- name: Build
run: |
- cabal configure --enable-tests --enable-benchmarks --test-show-details=direct
cabal build all
- name: Test