diff options
author | cydparser <cydparser@gmail.com> | 2022-06-05 23:48:14 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-06-06 08:48:14 +0200 |
commit | 727f24ccf6e3b367b4ff05777c64b7c9ca4debdb (patch) | |
tree | 5ae1487be7ac771b0371ac1884cfba6edc0ac57f | |
parent | acf8bf078f154dd5707eef0d861960207a7af77b (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>
-rw-r--r-- | .github/workflows/ci.yml | 24 | ||||
-rw-r--r-- | .github/workflows/hlint-ci.yml | 2 |
2 files changed, 13 insertions, 13 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 diff --git a/.github/workflows/hlint-ci.yml b/.github/workflows/hlint-ci.yml index b6bdc029..692d03e8 100644 --- a/.github/workflows/hlint-ci.yml +++ b/.github/workflows/hlint-ci.yml @@ -10,7 +10,7 @@ jobs: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 with: submodules: true |