Bump actions/cache from 4.1.2 to 4.2.0 #1117
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Haskell Cabal | |
on: | |
push: | |
branches: [master] | |
pull_request: | |
branches: [master] | |
types: [opened, synchronize] | |
permissions: {} | |
jobs: | |
test: | |
name: CI | |
runs-on: ${{ matrix.os }} | |
strategy: | |
fail-fast: false # don't cancel other jobs if one fails | |
matrix: | |
os: [ubuntu-latest, macos-latest, windows-latest] | |
ghc: [9.2.8, 9.4.8, 9.6.6, 9.8.2, 9.10.1] | |
defaults: | |
run: | |
# The default shell on Windows is `pwsh`. However, it doesn't expand | |
# asterisks. That's why we always use `bash`. | |
shell: bash | |
steps: | |
# Without this, self-validation will fail on Windows because HIndent converts | |
# newlines to LF while the cloned source code contains CRLF. | |
- name: Modify the git setting not to convert LF to CRLF | |
run: git config --global core.autocrlf input | |
- name: Checkout code | |
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 | |
with: | |
persist-credentials: false | |
- name: Setup Haskell Compiler (cabal) | |
id: setup-haskell | |
uses: haskell-actions/setup@dd344bc1cec854a369df8814ce17ef337d6e6170 # v2.7.6 | |
with: | |
ghc-version: ${{ matrix.ghc }} | |
- name: Cache dist-newstyle | |
uses: actions/cache@1bd1e32a3bdc45362d1e726936510720a7c30a57 # v4.2.0 | |
with: | |
path: dist-newstyle | |
key: dist-newstyle-${{ matrix.os }}-${{ matrix.ghc }}-${{ hashFiles('**/*.cabal') }}-${{ hashFiles('internal/**','src/**','app/**','tests/**','benchmarks/**') }} | |
restore-keys: | | |
dist-newstyle-${{ matrix.os }}-${{ matrix.ghc }}-${{ hashFiles('**/*.cabal') }}- | |
dist-newstyle-${{ matrix.os }}-${{ matrix.ghc }}- | |
- name: Cache ~/.cabal/store | |
uses: actions/cache@1bd1e32a3bdc45362d1e726936510720a7c30a57 # v4.2.0 | |
with: | |
path: ${{ steps.setup-haskell.outputs.cabal-store }} | |
key: cabal-store-${{ matrix.os }}-${{ matrix.ghc }}-${{ hashFiles('**/*.cabal') }} | |
restore-keys: cabal-store-${{ matrix.os }}-${{ matrix.ghc }}- | |
- name: Configure to run tests and benchmarks | |
run: cabal configure --enable-tests --enable-benchmarks | |
- name: Build code | |
run: cabal build | |
- name: Test code | |
run: cabal test | |
- name: Benchmark code | |
run: cabal bench | |
- name: Generate documentation | |
run: cabal haddock all | |
# TODO(mihaimaruseac): Move to using a custom action that can be reused | |
- name: Validate code formatting (self-validate) | |
run: git ls-files -z '*.hs' | xargs -0 cabal run hindent -- --validate |