diff --git a/.github/workflows/binaries-linux-x64.yml b/.github/workflows/binaries-linux-x64.yml index e082d0a75..35be03bcf 100644 --- a/.github/workflows/binaries-linux-x64.yml +++ b/.github/workflows/binaries-linux-x64.yml @@ -30,26 +30,25 @@ jobs: 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 - # things to be cached/restored (needs tar) + # CACHES - name: Cache - ~/.ghcup id: ghcup uses: actions/cache@v4 with: path: ~/.ghcup - key: ${{ runner.os }}-ghcup-${{ hashFiles('**.yaml') }} + key: ${{ runner.os }}-x64-ghcup-${{ env.ghc }}-${{ hashFiles('**.yaml') }} 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 id: cabal uses: actions/cache@v4 with: path: ~/.cabal - key: ${{ runner.os }}-cabal-${{ hashFiles('**.yaml') }} + key: ${{ runner.os }}-x64-cabal-${{ env.ghc }}-${{ hashFiles('**.yaml') }} restore-keys: | - ${{ runner.os }}-cabal + ${{ runner.os }}-x64-cabal-${{ env.ghc }} # actions: diff --git a/.github/workflows/binaries-mac-arm64.yml b/.github/workflows/binaries-mac-arm64.yml index e32fe9e12..030e70bea 100644 --- a/.github/workflows/binaries-mac-arm64.yml +++ b/.github/workflows/binaries-mac-arm64.yml @@ -34,67 +34,65 @@ jobs: run: | tools/checkembeddedfiles - # caching - # 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 + # CACHES - name: Cache - stack-installed ~/.local/bin id: stack-programs uses: actions/cache@v4 with: path: ~/.local/bin - key: ${{ runner.os }}-arm64-stack-programs-${{ hashFiles('**.yaml') }} + key: ${{ runner.os }}-arm64-stack-programs-${{ env.ghc }}-${{ hashFiles('**.yaml') }} restore-keys: | - ${{ runner.os }}-arm64-stack-programs + ${{ runner.os }}-arm64-stack-programs-${{ env.ghc }} - name: Cache - ~/.stack id: stack-global uses: actions/cache@v4 with: path: ~/.stack - key: ${{ runner.os }}-arm64-stack-global-${{ hashFiles('**.yaml') }} + key: ${{ runner.os }}-arm64-stack-global-${{ env.ghc }}-${{ hashFiles('**.yaml') }} restore-keys: | - ${{ runner.os }}-arm64-stack-global + ${{ runner.os }}-arm64-stack-global-${{ env.ghc }} - name: Cache - ./.stack-work uses: actions/cache@v4 with: path: .stack-work - key: ${{ runner.os }}-arm64-stack-work-${{ hashFiles('**.yaml') }} + key: ${{ runner.os }}-arm64-stack-work-${{ env.ghc }}-${{ hashFiles('**.yaml') }} restore-keys: | - ${{ runner.os }}-arm64-stack-work + ${{ runner.os }}-arm64-stack-work-${{ env.ghc }} - name: Cache - hledger-lib/.stack-work uses: actions/cache@v4 with: 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: | - ${{ runner.os }}-arm64-hledger-lib-stack-work + ${{ runner.os }}-arm64-hledger-lib-stack-work-${{ env.ghc }} - name: Cache - hledger/.stack-work uses: actions/cache@v4 with: 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: | - ${{ runner.os }}-arm64-hledger-stack-work + ${{ runner.os }}-arm64-hledger-stack-work-${{ env.ghc }} - name: Cache - hledger-ui/.stack-work uses: actions/cache@v4 with: 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: | - ${{ runner.os }}-arm64-hledger-ui-stack-work + ${{ runner.os }}-arm64-hledger-ui-stack-work-${{ env.ghc }} - name: Cache - hledger-web/.stack-work uses: actions/cache@v4 with: 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: | - ${{ runner.os }}-arm64-hledger-web-stack-work + ${{ runner.os }}-arm64-hledger-web-stack-work-${{ env.ghc }} # actions: diff --git a/.github/workflows/binaries-mac-x64.yml b/.github/workflows/binaries-mac-x64.yml index a04e79472..8a2d8b3e6 100644 --- a/.github/workflows/binaries-mac-x64.yml +++ b/.github/workflows/binaries-mac-x64.yml @@ -34,65 +34,65 @@ jobs: run: | tools/checkembeddedfiles - # caching + # CACHES - name: Cache - stack-installed ~/.local/bin id: stack-programs uses: actions/cache@v4 with: path: ~/.local/bin - key: ${{ runner.os }}-x64-stack-programs-${{ hashFiles('**.yaml') }} + key: ${{ runner.os }}-x64-stack-programs-${{ env.ghc }}-${{ hashFiles('**.yaml') }} restore-keys: | - ${{ runner.os }}-x64-stack-programs + ${{ runner.os }}-x64-stack-programs-${{ env.ghc }} - name: Cache - ~/.stack id: stack-global uses: actions/cache@v4 with: path: ~/.stack - key: ${{ runner.os }}-x64-stack-global-${{ hashFiles('**.yaml') }} + key: ${{ runner.os }}-x64-stack-global-${{ env.ghc }}-${{ hashFiles('**.yaml') }} restore-keys: | - ${{ runner.os }}-x64-stack-global + ${{ runner.os }}-x64-stack-global-${{ env.ghc }} - name: Cache - ./.stack-work uses: actions/cache@v4 with: path: .stack-work - key: ${{ runner.os }}-x64-stack-work-${{ hashFiles('**.yaml') }} + key: ${{ runner.os }}-x64-stack-work-${{ env.ghc }}-${{ hashFiles('**.yaml') }} restore-keys: | - ${{ runner.os }}-x64-stack-work + ${{ runner.os }}-x64-stack-work-${{ env.ghc }} - name: Cache - hledger-lib/.stack-work uses: actions/cache@v4 with: 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: | - ${{ runner.os }}-x64-hledger-lib-stack-work + ${{ runner.os }}-x64-hledger-lib-stack-work-${{ env.ghc }} - name: Cache - hledger/.stack-work uses: actions/cache@v4 with: 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: | - ${{ runner.os }}-x64-hledger-stack-work + ${{ runner.os }}-x64-hledger-stack-work-${{ env.ghc }} - name: Cache - hledger-ui/.stack-work uses: actions/cache@v4 with: 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: | - ${{ runner.os }}-x64-hledger-ui-stack-work + ${{ runner.os }}-x64-hledger-ui-stack-work-${{ env.ghc }} - name: Cache - hledger-web/.stack-work uses: actions/cache@v4 with: 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: | - ${{ runner.os }}-x64-hledger-web-stack-work + ${{ runner.os }}-x64-hledger-web-stack-work-${{ env.ghc }} # actions: diff --git a/.github/workflows/binaries-windows-x64.yml b/.github/workflows/binaries-windows-x64.yml index 62e3f15f7..76ca84c4e 100644 --- a/.github/workflows/binaries-windows-x64.yml +++ b/.github/workflows/binaries-windows-x64.yml @@ -30,7 +30,7 @@ jobs: with: 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. # - 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\ # # 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 - # key: ${{ runner.os }}-appdata-local-programs-stack-${{ hashFiles('**.yaml') }} + # key: ${{ runner.os }}-x64-appdata-local-programs-stack-${{ hashFiles('**.yaml') }} # restore-keys: | - # ${{ runner.os }}-appdata-local-programs-stack + # ${{ runner.os }}-x64-appdata-local-programs-stack - name: Cache - stack global dir id: stack-global-package-db uses: actions/cache@v4 with: 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: | - ${{ runner.os }}-appdata-roaming-stack + ${{ runner.os }}-x64-appdata-roaming-stack-${{ env.ghc }} - name: Cache - ./.stack-work uses: actions/cache@v4 with: path: .stack-work - key: ${{ runner.os }}-stack-work-${{ hashFiles('**.yaml') }} + key: ${{ runner.os }}-x64-stack-work-${{ env.ghc }}-${{ hashFiles('**.yaml') }} restore-keys: | - ${{ runner.os }}-stack-work + ${{ runner.os }}-x64-stack-work-${{ env.ghc }} - name: Cache - hledger-lib/.stack-work uses: actions/cache@v4 with: 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: | - ${{ runner.os }}-hledger-lib-stack-work + ${{ runner.os }}-x64-hledger-lib-stack-work-${{ env.ghc }} - name: Cache - hledger/.stack-work uses: actions/cache@v4 with: 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: | - ${{ runner.os }}-hledger-stack-work + ${{ runner.os }}-x64-hledger-stack-work-${{ env.ghc }} - name: Cache - hledger-ui/.stack-work uses: actions/cache@v4 with: 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: | - ${{ runner.os }}-hledger-ui-stack-work + ${{ runner.os }}-x64-hledger-ui-stack-work-${{ env.ghc }} - name: Cache - hledger-web/.stack-work uses: actions/cache@v4 with: 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: | - ${{ runner.os }}-hledger-web-stack-work + ${{ runner.os }}-x64-hledger-web-stack-work-${{ env.ghc }} # actions diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index fb6d7dc1d..d45c7517b 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -139,9 +139,9 @@ jobs: # 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. # 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: | - ${{ runner.os }}-stack-global-${{ env.ghc }} + ${{ runner.os }}-x64-stack-global-${{ env.ghc }} if: env.do-all - name: Cache - stack-installed programs in ~/.local/bin @@ -149,54 +149,54 @@ jobs: uses: actions/cache@v4 with: path: ~/.local/bin - key: ${{ runner.os }}-stack-programs-${{ env.ghc }}-${{ hashFiles('**.yaml') }} + key: ${{ runner.os }}-x64-stack-programs-${{ env.ghc }}-${{ hashFiles('**.yaml') }} restore-keys: | - ${{ runner.os }}-stack-programs-${{ env.ghc }} + ${{ runner.os }}-x64-stack-programs-${{ env.ghc }} if: env.do-all - name: Cache - .stack-work uses: actions/cache@v4 with: path: .stack-work - key: ${{ runner.os }}-stack-work-${{ env.ghc }}-${{ hashFiles('**.yaml') }} + key: ${{ runner.os }}-x64-stack-work-${{ env.ghc }}-${{ hashFiles('**.yaml') }} restore-keys: | - ${{ runner.os }}-stack-work-${{ env.ghc }} + ${{ runner.os }}-x64-stack-work-${{ env.ghc }} if: env.do-all - name: Cache - hledger-lib/.stack-work uses: actions/cache@v4 with: 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: | - ${{ runner.os }}-hledger-lib-stack-work-${{ env.ghc }} + ${{ runner.os }}-x64-hledger-lib-stack-work-${{ env.ghc }} if: env.do-all - name: Cache - hledger/.stack-work uses: actions/cache@v4 with: 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: | - ${{ runner.os }}-hledger-stack-work-${{ env.ghc }} + ${{ runner.os }}-x64-hledger-stack-work-${{ env.ghc }} if: env.do-all - name: Cache - hledger-ui/.stack-work uses: actions/cache@v4 with: 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: | - ${{ runner.os }}-hledger-ui-stack-work-${{ env.ghc }} + ${{ runner.os }}-x64-hledger-ui-stack-work-${{ env.ghc }} if: env.do-all - name: Cache - hledger-web/.stack-work uses: actions/cache@v4 with: 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: | - ${{ runner.os }}-hledger-web-stack-work-${{ env.ghc }} + ${{ runner.os }}-x64-hledger-web-stack-work-${{ env.ghc }} if: env.do-all # Ensure the ghc version we need is installed. diff --git a/.github/workflows/oldest.yml b/.github/workflows/oldest.yml index cab7e84d9..fc26cf5d9 100644 --- a/.github/workflows/oldest.yml +++ b/.github/workflows/oldest.yml @@ -39,58 +39,58 @@ jobs: # 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. # 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: | - ${{ runner.os }}-stack-global-${{ env.ghc }} + ${{ runner.os }}-x64-stack-global-${{ env.ghc }} - name: Cache - stack-installed programs in ~/.local/bin id: stack-programs uses: actions/cache@v4 with: path: ~/.local/bin - key: ${{ runner.os }}-stack-programs-${{ env.ghc }}-${{ hashFiles('**.yaml') }} + key: ${{ runner.os }}-x64-stack-programs-${{ env.ghc }}-${{ hashFiles('**.yaml') }} restore-keys: | - ${{ runner.os }}-stack-programs-${{ env.ghc }} + ${{ runner.os }}-x64-stack-programs-${{ env.ghc }} - name: Cache - .stack-work uses: actions/cache@v4 with: path: .stack-work - key: ${{ runner.os }}-stack-work-${{ env.ghc }}-${{ hashFiles('**.yaml') }} + key: ${{ runner.os }}-x64-stack-work-${{ env.ghc }}-${{ hashFiles('**.yaml') }} restore-keys: | - ${{ runner.os }}-stack-work-${{ env.ghc }} + ${{ runner.os }}-x64-stack-work-${{ env.ghc }} - name: Cache - hledger-lib/.stack-work uses: actions/cache@v4 with: 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: | - ${{ runner.os }}-hledger-lib-stack-work-${{ env.ghc }} + ${{ runner.os }}-x64-hledger-lib-stack-work-${{ env.ghc }} - name: Cache - hledger/.stack-work uses: actions/cache@v4 with: 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: | - ${{ runner.os }}-hledger-stack-work-${{ env.ghc }} + ${{ runner.os }}-x64-hledger-stack-work-${{ env.ghc }} - name: Cache - hledger-ui/.stack-work uses: actions/cache@v4 with: 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: | - ${{ runner.os }}-hledger-ui-stack-work-${{ env.ghc }} + ${{ runner.os }}-x64-hledger-ui-stack-work-${{ env.ghc }} - name: Cache - hledger-web/.stack-work uses: actions/cache@v4 with: 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: | - ${{ runner.os }}-hledger-web-stack-work-${{ env.ghc }} + ${{ runner.os }}-x64-hledger-web-stack-work-${{ env.ghc }} # ACTIONS