ci: more consistent, platform- and ghc-specific cache keys

These github caches created once and never updated; so it's important
to have keys that are specific enough that it doesn't
(a) waste time restoring cached data that we won't be able to use
(b) fail to cache new data because it thinks the old cache was used.
This commit is contained in:
Simon Michael 2025-06-13 21:00:01 -10:00
parent ccb0033e31
commit ce0cd344b5
6 changed files with 78 additions and 81 deletions

View File

@ -30,26 +30,25 @@ jobs:
run: | run: |
apk --no-cache add gmp-dev gmp-static libffi-dev zlib-dev zlib-static ncurses-dev ncurses-static binutils-gold curl gcc g++ git make xz tar perl apk --no-cache add gmp-dev gmp-static libffi-dev zlib-dev zlib-static ncurses-dev ncurses-static binutils-gold curl gcc g++ git make xz tar perl
# things to be cached/restored (needs tar) # CACHES
- name: Cache - ~/.ghcup - name: Cache - ~/.ghcup
id: ghcup id: ghcup
uses: actions/cache@v4 uses: actions/cache@v4
with: with:
path: ~/.ghcup path: ~/.ghcup
key: ${{ runner.os }}-ghcup-${{ hashFiles('**.yaml') }} key: ${{ runner.os }}-x64-ghcup-${{ env.ghc }}-${{ hashFiles('**.yaml') }}
restore-keys: | restore-keys: |
${{ runner.os }}-ghcup ${{ runner.os }}-x64-ghcup-${{ env.ghc }}
# XXX Warning: Path Validation Error: Path(s) specified in the action for caching do(es) not exist, hence no cache is being saved.
- name: Cache - ~/.cabal - name: Cache - ~/.cabal
id: cabal id: cabal
uses: actions/cache@v4 uses: actions/cache@v4
with: with:
path: ~/.cabal path: ~/.cabal
key: ${{ runner.os }}-cabal-${{ hashFiles('**.yaml') }} key: ${{ runner.os }}-x64-cabal-${{ env.ghc }}-${{ hashFiles('**.yaml') }}
restore-keys: | restore-keys: |
${{ runner.os }}-cabal ${{ runner.os }}-x64-cabal-${{ env.ghc }}
# actions: # actions:

View File

@ -34,67 +34,65 @@ jobs:
run: | run: |
tools/checkembeddedfiles tools/checkembeddedfiles
# caching # CACHES
# XXX Should some of these have ghc version in the key, as in ci.yml ?
# I think so, otherwise when ghc version changes they'll keep restoring the old data and it won't be used or updated
- name: Cache - stack-installed ~/.local/bin - name: Cache - stack-installed ~/.local/bin
id: stack-programs id: stack-programs
uses: actions/cache@v4 uses: actions/cache@v4
with: with:
path: ~/.local/bin path: ~/.local/bin
key: ${{ runner.os }}-arm64-stack-programs-${{ hashFiles('**.yaml') }} key: ${{ runner.os }}-arm64-stack-programs-${{ env.ghc }}-${{ hashFiles('**.yaml') }}
restore-keys: | restore-keys: |
${{ runner.os }}-arm64-stack-programs ${{ runner.os }}-arm64-stack-programs-${{ env.ghc }}
- name: Cache - ~/.stack - name: Cache - ~/.stack
id: stack-global id: stack-global
uses: actions/cache@v4 uses: actions/cache@v4
with: with:
path: ~/.stack path: ~/.stack
key: ${{ runner.os }}-arm64-stack-global-${{ hashFiles('**.yaml') }} key: ${{ runner.os }}-arm64-stack-global-${{ env.ghc }}-${{ hashFiles('**.yaml') }}
restore-keys: | restore-keys: |
${{ runner.os }}-arm64-stack-global ${{ runner.os }}-arm64-stack-global-${{ env.ghc }}
- name: Cache - ./.stack-work - name: Cache - ./.stack-work
uses: actions/cache@v4 uses: actions/cache@v4
with: with:
path: .stack-work path: .stack-work
key: ${{ runner.os }}-arm64-stack-work-${{ hashFiles('**.yaml') }} key: ${{ runner.os }}-arm64-stack-work-${{ env.ghc }}-${{ hashFiles('**.yaml') }}
restore-keys: | restore-keys: |
${{ runner.os }}-arm64-stack-work ${{ runner.os }}-arm64-stack-work-${{ env.ghc }}
- name: Cache - hledger-lib/.stack-work - name: Cache - hledger-lib/.stack-work
uses: actions/cache@v4 uses: actions/cache@v4
with: with:
path: hledger-lib/.stack-work path: hledger-lib/.stack-work
key: ${{ runner.os }}-arm64-hledger-lib-stack-work-${{ hashFiles('hledger-lib/package.yaml') }} key: ${{ runner.os }}-arm64-hledger-lib-stack-work-${{ env.ghc }}-${{ hashFiles('hledger-lib/package.yaml') }}
restore-keys: | restore-keys: |
${{ runner.os }}-arm64-hledger-lib-stack-work ${{ runner.os }}-arm64-hledger-lib-stack-work-${{ env.ghc }}
- name: Cache - hledger/.stack-work - name: Cache - hledger/.stack-work
uses: actions/cache@v4 uses: actions/cache@v4
with: with:
path: hledger/.stack-work path: hledger/.stack-work
key: ${{ runner.os }}-arm64-hledger-stack-work-${{ hashFiles('hledger/package.yaml') }} key: ${{ runner.os }}-arm64-hledger-stack-work-${{ env.ghc }}-${{ hashFiles('hledger/package.yaml') }}
restore-keys: | restore-keys: |
${{ runner.os }}-arm64-hledger-stack-work ${{ runner.os }}-arm64-hledger-stack-work-${{ env.ghc }}
- name: Cache - hledger-ui/.stack-work - name: Cache - hledger-ui/.stack-work
uses: actions/cache@v4 uses: actions/cache@v4
with: with:
path: hledger-ui/.stack-work path: hledger-ui/.stack-work
key: ${{ runner.os }}-arm64-hledger-ui-stack-work-${{ hashFiles('hledger-ui/package.yaml') }} key: ${{ runner.os }}-arm64-hledger-ui-stack-work-${{ env.ghc }}-${{ hashFiles('hledger-ui/package.yaml') }}
restore-keys: | restore-keys: |
${{ runner.os }}-arm64-hledger-ui-stack-work ${{ runner.os }}-arm64-hledger-ui-stack-work-${{ env.ghc }}
- name: Cache - hledger-web/.stack-work - name: Cache - hledger-web/.stack-work
uses: actions/cache@v4 uses: actions/cache@v4
with: with:
path: hledger-web/.stack-work path: hledger-web/.stack-work
key: ${{ runner.os }}-arm64-hledger-web-stack-work-${{ hashFiles('hledger-web/package.yaml') }} key: ${{ runner.os }}-arm64-hledger-web-stack-work-${{ env.ghc }}-${{ hashFiles('hledger-web/package.yaml') }}
restore-keys: | restore-keys: |
${{ runner.os }}-arm64-hledger-web-stack-work ${{ runner.os }}-arm64-hledger-web-stack-work-${{ env.ghc }}
# actions: # actions:

View File

@ -34,65 +34,65 @@ jobs:
run: | run: |
tools/checkembeddedfiles tools/checkembeddedfiles
# caching # CACHES
- name: Cache - stack-installed ~/.local/bin - name: Cache - stack-installed ~/.local/bin
id: stack-programs id: stack-programs
uses: actions/cache@v4 uses: actions/cache@v4
with: with:
path: ~/.local/bin path: ~/.local/bin
key: ${{ runner.os }}-x64-stack-programs-${{ hashFiles('**.yaml') }} key: ${{ runner.os }}-x64-stack-programs-${{ env.ghc }}-${{ hashFiles('**.yaml') }}
restore-keys: | restore-keys: |
${{ runner.os }}-x64-stack-programs ${{ runner.os }}-x64-stack-programs-${{ env.ghc }}
- name: Cache - ~/.stack - name: Cache - ~/.stack
id: stack-global id: stack-global
uses: actions/cache@v4 uses: actions/cache@v4
with: with:
path: ~/.stack path: ~/.stack
key: ${{ runner.os }}-x64-stack-global-${{ hashFiles('**.yaml') }} key: ${{ runner.os }}-x64-stack-global-${{ env.ghc }}-${{ hashFiles('**.yaml') }}
restore-keys: | restore-keys: |
${{ runner.os }}-x64-stack-global ${{ runner.os }}-x64-stack-global-${{ env.ghc }}
- name: Cache - ./.stack-work - name: Cache - ./.stack-work
uses: actions/cache@v4 uses: actions/cache@v4
with: with:
path: .stack-work path: .stack-work
key: ${{ runner.os }}-x64-stack-work-${{ hashFiles('**.yaml') }} key: ${{ runner.os }}-x64-stack-work-${{ env.ghc }}-${{ hashFiles('**.yaml') }}
restore-keys: | restore-keys: |
${{ runner.os }}-x64-stack-work ${{ runner.os }}-x64-stack-work-${{ env.ghc }}
- name: Cache - hledger-lib/.stack-work - name: Cache - hledger-lib/.stack-work
uses: actions/cache@v4 uses: actions/cache@v4
with: with:
path: hledger-lib/.stack-work path: hledger-lib/.stack-work
key: ${{ runner.os }}-x64-hledger-lib-stack-work-${{ hashFiles('hledger-lib/package.yaml') }} key: ${{ runner.os }}-x64-hledger-lib-stack-work-${{ env.ghc }}-${{ hashFiles('hledger-lib/package.yaml') }}
restore-keys: | restore-keys: |
${{ runner.os }}-x64-hledger-lib-stack-work ${{ runner.os }}-x64-hledger-lib-stack-work-${{ env.ghc }}
- name: Cache - hledger/.stack-work - name: Cache - hledger/.stack-work
uses: actions/cache@v4 uses: actions/cache@v4
with: with:
path: hledger/.stack-work path: hledger/.stack-work
key: ${{ runner.os }}-x64-hledger-stack-work-${{ hashFiles('hledger/package.yaml') }} key: ${{ runner.os }}-x64-hledger-stack-work-${{ env.ghc }}-${{ hashFiles('hledger/package.yaml') }}
restore-keys: | restore-keys: |
${{ runner.os }}-x64-hledger-stack-work ${{ runner.os }}-x64-hledger-stack-work-${{ env.ghc }}
- name: Cache - hledger-ui/.stack-work - name: Cache - hledger-ui/.stack-work
uses: actions/cache@v4 uses: actions/cache@v4
with: with:
path: hledger-ui/.stack-work path: hledger-ui/.stack-work
key: ${{ runner.os }}-x64-hledger-ui-stack-work-${{ hashFiles('hledger-ui/package.yaml') }} key: ${{ runner.os }}-x64-hledger-ui-stack-work-${{ env.ghc }}-${{ hashFiles('hledger-ui/package.yaml') }}
restore-keys: | restore-keys: |
${{ runner.os }}-x64-hledger-ui-stack-work ${{ runner.os }}-x64-hledger-ui-stack-work-${{ env.ghc }}
- name: Cache - hledger-web/.stack-work - name: Cache - hledger-web/.stack-work
uses: actions/cache@v4 uses: actions/cache@v4
with: with:
path: hledger-web/.stack-work path: hledger-web/.stack-work
key: ${{ runner.os }}-x64-hledger-web-stack-work-${{ hashFiles('hledger-web/package.yaml') }} key: ${{ runner.os }}-x64-hledger-web-stack-work-${{ env.ghc }}-${{ hashFiles('hledger-web/package.yaml') }}
restore-keys: | restore-keys: |
${{ runner.os }}-x64-hledger-web-stack-work ${{ runner.os }}-x64-hledger-web-stack-work-${{ env.ghc }}
# actions: # actions:

View File

@ -30,7 +30,7 @@ jobs:
with: with:
fetch-depth: 0 fetch-depth: 0
# caching # CACHES
# Warning: Path Validation Error: Path(s) specified in the action for caching do(es) not exist, hence no cache is being saved. # Warning: Path Validation Error: Path(s) specified in the action for caching do(es) not exist, hence no cache is being saved.
# - name: Cache - stack programs dir # ghc, ghc-included packages and their haddocks, mingw, msys2 # - name: Cache - stack programs dir # ghc, ghc-included packages and their haddocks, mingw, msys2
@ -40,58 +40,58 @@ jobs:
# path: C:\Users\runneradmin\AppData\Local\Programs\stack\ # path: C:\Users\runneradmin\AppData\Local\Programs\stack\
# # which files signal a change in stack's global db ? # # which files signal a change in stack's global db ?
# # **.yaml includes */package.yaml and stack.yaml* (too many), and hopefully no other changing yamls # # **.yaml includes */package.yaml and stack.yaml* (too many), and hopefully no other changing yamls
# key: ${{ runner.os }}-appdata-local-programs-stack-${{ hashFiles('**.yaml') }} # key: ${{ runner.os }}-x64-appdata-local-programs-stack-${{ hashFiles('**.yaml') }}
# restore-keys: | # restore-keys: |
# ${{ runner.os }}-appdata-local-programs-stack # ${{ runner.os }}-x64-appdata-local-programs-stack
- name: Cache - stack global dir - name: Cache - stack global dir
id: stack-global-package-db id: stack-global-package-db
uses: actions/cache@v4 uses: actions/cache@v4
with: with:
path: C:\Users\runneradmin\AppData\Roaming\stack\ path: C:\Users\runneradmin\AppData\Roaming\stack\
key: ${{ runner.os }}-appdata-roaming-stack-${{ hashFiles('**.yaml') }} key: ${{ runner.os }}-x64-appdata-roaming-stack-${{ env.ghc }}-${{ hashFiles('**.yaml') }}
restore-keys: | restore-keys: |
${{ runner.os }}-appdata-roaming-stack ${{ runner.os }}-x64-appdata-roaming-stack-${{ env.ghc }}
- name: Cache - ./.stack-work - name: Cache - ./.stack-work
uses: actions/cache@v4 uses: actions/cache@v4
with: with:
path: .stack-work path: .stack-work
key: ${{ runner.os }}-stack-work-${{ hashFiles('**.yaml') }} key: ${{ runner.os }}-x64-stack-work-${{ env.ghc }}-${{ hashFiles('**.yaml') }}
restore-keys: | restore-keys: |
${{ runner.os }}-stack-work ${{ runner.os }}-x64-stack-work-${{ env.ghc }}
- name: Cache - hledger-lib/.stack-work - name: Cache - hledger-lib/.stack-work
uses: actions/cache@v4 uses: actions/cache@v4
with: with:
path: hledger-lib/.stack-work path: hledger-lib/.stack-work
key: ${{ runner.os }}-hledger-lib-stack-work-${{ hashFiles('hledger-lib/package.yaml') }} key: ${{ runner.os }}-x64-hledger-lib-stack-work-${{ env.ghc }}-${{ hashFiles('hledger-lib/package.yaml') }}
restore-keys: | restore-keys: |
${{ runner.os }}-hledger-lib-stack-work ${{ runner.os }}-x64-hledger-lib-stack-work-${{ env.ghc }}
- name: Cache - hledger/.stack-work - name: Cache - hledger/.stack-work
uses: actions/cache@v4 uses: actions/cache@v4
with: with:
path: hledger/.stack-work path: hledger/.stack-work
key: ${{ runner.os }}-hledger-stack-work-${{ hashFiles('hledger/package.yaml') }} key: ${{ runner.os }}-x64-hledger-stack-work-${{ env.ghc }}-${{ hashFiles('hledger/package.yaml') }}
restore-keys: | restore-keys: |
${{ runner.os }}-hledger-stack-work ${{ runner.os }}-x64-hledger-stack-work-${{ env.ghc }}
- name: Cache - hledger-ui/.stack-work - name: Cache - hledger-ui/.stack-work
uses: actions/cache@v4 uses: actions/cache@v4
with: with:
path: hledger-ui/.stack-work path: hledger-ui/.stack-work
key: ${{ runner.os }}-hledger-ui-stack-work-${{ hashFiles('hledger-ui/package.yaml') }} key: ${{ runner.os }}-x64-hledger-ui-stack-work-${{ env.ghc }}-${{ hashFiles('hledger-ui/package.yaml') }}
restore-keys: | restore-keys: |
${{ runner.os }}-hledger-ui-stack-work ${{ runner.os }}-x64-hledger-ui-stack-work-${{ env.ghc }}
- name: Cache - hledger-web/.stack-work - name: Cache - hledger-web/.stack-work
uses: actions/cache@v4 uses: actions/cache@v4
with: with:
path: hledger-web/.stack-work path: hledger-web/.stack-work
key: ${{ runner.os }}-hledger-web-stack-work-${{ hashFiles('hledger-web/package.yaml') }} key: ${{ runner.os }}-x64-hledger-web-stack-work-${{ env.ghc }}-${{ hashFiles('hledger-web/package.yaml') }}
restore-keys: | restore-keys: |
${{ runner.os }}-hledger-web-stack-work ${{ runner.os }}-x64-hledger-web-stack-work-${{ env.ghc }}
# actions # actions

View File

@ -139,9 +139,9 @@ jobs:
# XXX if stack.yaml is a symlink, this fails with # XXX if stack.yaml is a symlink, this fails with
# Error: The template is not valid. .github/workflows/push.yml (Line: 103, Col: 14): hashFiles('**.yaml') failed. # Error: The template is not valid. .github/workflows/push.yml (Line: 103, Col: 14): hashFiles('**.yaml') failed.
# Fail to hash files under directory '/home/runner/work/hledger/hledger' # Fail to hash files under directory '/home/runner/work/hledger/hledger'
key: ${{ runner.os }}-stack-global-${{ env.ghc }}-${{ hashFiles('**.yaml') }} key: ${{ runner.os }}-x64-stack-global-${{ env.ghc }}-${{ hashFiles('**.yaml') }}
restore-keys: | restore-keys: |
${{ runner.os }}-stack-global-${{ env.ghc }} ${{ runner.os }}-x64-stack-global-${{ env.ghc }}
if: env.do-all if: env.do-all
- name: Cache - stack-installed programs in ~/.local/bin - name: Cache - stack-installed programs in ~/.local/bin
@ -149,54 +149,54 @@ jobs:
uses: actions/cache@v4 uses: actions/cache@v4
with: with:
path: ~/.local/bin path: ~/.local/bin
key: ${{ runner.os }}-stack-programs-${{ env.ghc }}-${{ hashFiles('**.yaml') }} key: ${{ runner.os }}-x64-stack-programs-${{ env.ghc }}-${{ hashFiles('**.yaml') }}
restore-keys: | restore-keys: |
${{ runner.os }}-stack-programs-${{ env.ghc }} ${{ runner.os }}-x64-stack-programs-${{ env.ghc }}
if: env.do-all if: env.do-all
- name: Cache - .stack-work - name: Cache - .stack-work
uses: actions/cache@v4 uses: actions/cache@v4
with: with:
path: .stack-work path: .stack-work
key: ${{ runner.os }}-stack-work-${{ env.ghc }}-${{ hashFiles('**.yaml') }} key: ${{ runner.os }}-x64-stack-work-${{ env.ghc }}-${{ hashFiles('**.yaml') }}
restore-keys: | restore-keys: |
${{ runner.os }}-stack-work-${{ env.ghc }} ${{ runner.os }}-x64-stack-work-${{ env.ghc }}
if: env.do-all if: env.do-all
- name: Cache - hledger-lib/.stack-work - name: Cache - hledger-lib/.stack-work
uses: actions/cache@v4 uses: actions/cache@v4
with: with:
path: hledger-lib/.stack-work path: hledger-lib/.stack-work
key: ${{ runner.os }}-hledger-lib-stack-work-${{ env.ghc }}-${{ hashFiles('hledger-lib/package.yaml') }} key: ${{ runner.os }}-x64-hledger-lib-stack-work-${{ env.ghc }}-${{ hashFiles('hledger-lib/package.yaml') }}
restore-keys: | restore-keys: |
${{ runner.os }}-hledger-lib-stack-work-${{ env.ghc }} ${{ runner.os }}-x64-hledger-lib-stack-work-${{ env.ghc }}
if: env.do-all if: env.do-all
- name: Cache - hledger/.stack-work - name: Cache - hledger/.stack-work
uses: actions/cache@v4 uses: actions/cache@v4
with: with:
path: hledger/.stack-work path: hledger/.stack-work
key: ${{ runner.os }}-hledger-stack-work-${{ env.ghc }}-${{ hashFiles('hledger/package.yaml') }} key: ${{ runner.os }}-x64-hledger-stack-work-${{ env.ghc }}-${{ hashFiles('hledger/package.yaml') }}
restore-keys: | restore-keys: |
${{ runner.os }}-hledger-stack-work-${{ env.ghc }} ${{ runner.os }}-x64-hledger-stack-work-${{ env.ghc }}
if: env.do-all if: env.do-all
- name: Cache - hledger-ui/.stack-work - name: Cache - hledger-ui/.stack-work
uses: actions/cache@v4 uses: actions/cache@v4
with: with:
path: hledger-ui/.stack-work path: hledger-ui/.stack-work
key: ${{ runner.os }}-hledger-ui-stack-work-${{ env.ghc }}-${{ hashFiles('hledger-ui/package.yaml') }} key: ${{ runner.os }}-x64-hledger-ui-stack-work-${{ env.ghc }}-${{ hashFiles('hledger-ui/package.yaml') }}
restore-keys: | restore-keys: |
${{ runner.os }}-hledger-ui-stack-work-${{ env.ghc }} ${{ runner.os }}-x64-hledger-ui-stack-work-${{ env.ghc }}
if: env.do-all if: env.do-all
- name: Cache - hledger-web/.stack-work - name: Cache - hledger-web/.stack-work
uses: actions/cache@v4 uses: actions/cache@v4
with: with:
path: hledger-web/.stack-work path: hledger-web/.stack-work
key: ${{ runner.os }}-hledger-web-stack-work-${{ env.ghc }}-${{ hashFiles('hledger-web/package.yaml') }} key: ${{ runner.os }}-x64-hledger-web-stack-work-${{ env.ghc }}-${{ hashFiles('hledger-web/package.yaml') }}
restore-keys: | restore-keys: |
${{ runner.os }}-hledger-web-stack-work-${{ env.ghc }} ${{ runner.os }}-x64-hledger-web-stack-work-${{ env.ghc }}
if: env.do-all if: env.do-all
# Ensure the ghc version we need is installed. # Ensure the ghc version we need is installed.

View File

@ -39,58 +39,58 @@ jobs:
# XXX if stack.yaml is a symlink, this fails with # XXX if stack.yaml is a symlink, this fails with
# Error: The template is not valid. .github/workflows/push.yml (Line: 103, Col: 14): hashFiles('**.yaml') failed. # Error: The template is not valid. .github/workflows/push.yml (Line: 103, Col: 14): hashFiles('**.yaml') failed.
# Fail to hash files under directory '/home/runner/work/hledger/hledger' # Fail to hash files under directory '/home/runner/work/hledger/hledger'
key: ${{ runner.os }}-stack-global-${{ env.ghc }}-${{ hashFiles('**.yaml') }} key: ${{ runner.os }}-x64-stack-global-${{ env.ghc }}-${{ hashFiles('**.yaml') }}
restore-keys: | restore-keys: |
${{ runner.os }}-stack-global-${{ env.ghc }} ${{ runner.os }}-x64-stack-global-${{ env.ghc }}
- name: Cache - stack-installed programs in ~/.local/bin - name: Cache - stack-installed programs in ~/.local/bin
id: stack-programs id: stack-programs
uses: actions/cache@v4 uses: actions/cache@v4
with: with:
path: ~/.local/bin path: ~/.local/bin
key: ${{ runner.os }}-stack-programs-${{ env.ghc }}-${{ hashFiles('**.yaml') }} key: ${{ runner.os }}-x64-stack-programs-${{ env.ghc }}-${{ hashFiles('**.yaml') }}
restore-keys: | restore-keys: |
${{ runner.os }}-stack-programs-${{ env.ghc }} ${{ runner.os }}-x64-stack-programs-${{ env.ghc }}
- name: Cache - .stack-work - name: Cache - .stack-work
uses: actions/cache@v4 uses: actions/cache@v4
with: with:
path: .stack-work path: .stack-work
key: ${{ runner.os }}-stack-work-${{ env.ghc }}-${{ hashFiles('**.yaml') }} key: ${{ runner.os }}-x64-stack-work-${{ env.ghc }}-${{ hashFiles('**.yaml') }}
restore-keys: | restore-keys: |
${{ runner.os }}-stack-work-${{ env.ghc }} ${{ runner.os }}-x64-stack-work-${{ env.ghc }}
- name: Cache - hledger-lib/.stack-work - name: Cache - hledger-lib/.stack-work
uses: actions/cache@v4 uses: actions/cache@v4
with: with:
path: hledger-lib/.stack-work path: hledger-lib/.stack-work
key: ${{ runner.os }}-hledger-lib-stack-work-${{ env.ghc }}-${{ hashFiles('hledger-lib/package.yaml') }} key: ${{ runner.os }}-x64-hledger-lib-stack-work-${{ env.ghc }}-${{ hashFiles('hledger-lib/package.yaml') }}
restore-keys: | restore-keys: |
${{ runner.os }}-hledger-lib-stack-work-${{ env.ghc }} ${{ runner.os }}-x64-hledger-lib-stack-work-${{ env.ghc }}
- name: Cache - hledger/.stack-work - name: Cache - hledger/.stack-work
uses: actions/cache@v4 uses: actions/cache@v4
with: with:
path: hledger/.stack-work path: hledger/.stack-work
key: ${{ runner.os }}-hledger-stack-work-${{ env.ghc }}-${{ hashFiles('hledger/package.yaml') }} key: ${{ runner.os }}-x64-hledger-stack-work-${{ env.ghc }}-${{ hashFiles('hledger/package.yaml') }}
restore-keys: | restore-keys: |
${{ runner.os }}-hledger-stack-work-${{ env.ghc }} ${{ runner.os }}-x64-hledger-stack-work-${{ env.ghc }}
- name: Cache - hledger-ui/.stack-work - name: Cache - hledger-ui/.stack-work
uses: actions/cache@v4 uses: actions/cache@v4
with: with:
path: hledger-ui/.stack-work path: hledger-ui/.stack-work
key: ${{ runner.os }}-hledger-ui-stack-work-${{ env.ghc }}-${{ hashFiles('hledger-ui/package.yaml') }} key: ${{ runner.os }}-x64-hledger-ui-stack-work-${{ env.ghc }}-${{ hashFiles('hledger-ui/package.yaml') }}
restore-keys: | restore-keys: |
${{ runner.os }}-hledger-ui-stack-work-${{ env.ghc }} ${{ runner.os }}-x64-hledger-ui-stack-work-${{ env.ghc }}
- name: Cache - hledger-web/.stack-work - name: Cache - hledger-web/.stack-work
uses: actions/cache@v4 uses: actions/cache@v4
with: with:
path: hledger-web/.stack-work path: hledger-web/.stack-work
key: ${{ runner.os }}-hledger-web-stack-work-${{ env.ghc }}-${{ hashFiles('hledger-web/package.yaml') }} key: ${{ runner.os }}-x64-hledger-web-stack-work-${{ env.ghc }}-${{ hashFiles('hledger-web/package.yaml') }}
restore-keys: | restore-keys: |
${{ runner.os }}-hledger-web-stack-work-${{ env.ghc }} ${{ runner.os }}-x64-hledger-web-stack-work-${{ env.ghc }}
# ACTIONS # ACTIONS