ci: Workaround for stack/pantry caching of github archives

Turns out `commit: master` doesn't really mean latest master, because
it's cached. It sometimes works, because when the GHA cache comes from
a job that depended on xmonad-0.15, then the master archive isn't cached
and is fetched. When the cache comes from a job that previously fetched
master, it's not fetched again.

The least ugly way to fix it I found is to use the `[<refname>]@{<date>}`
git revision format, and substitute current date/time before invoking
stack. To make stack-master.yaml valid without the substitution, we use
`master@{today}` which is a valid git revision that GitHub understands.
This commit is contained in:
Tomas Janousek 2021-05-24 17:35:50 +01:00
parent cef324795e
commit 17ef2b95db
2 changed files with 5 additions and 1 deletions

View File

@ -96,6 +96,10 @@ jobs:
- name: Build and test - name: Build and test
run: | run: |
set -ex set -ex
# workaround for stack/pantry caching of github archives
sed -e "s/@{today}/@{$(date -u --iso-8601=seconds)}/" -i ${{ matrix.yaml }}
stack test \ stack test \
--fast --no-terminal \ --fast --no-terminal \
--stack-yaml=${{ matrix.yaml }} \ --stack-yaml=${{ matrix.yaml }} \

View File

@ -8,4 +8,4 @@ packages:
extra-deps: extra-deps:
- github: xmonad/xmonad - github: xmonad/xmonad
commit: master commit: master@{today}