Skip to content

Commit

Permalink
CI: avoid mixing caches from different OSes
Browse files Browse the repository at this point in the history
This is a bug in setup-ocaml@v3 ocaml/setup-ocaml#839

Work it around by defining our own cache prefix based on runner OS version.

Unfortunately the version itself doesn't seem to be available as a variable in GH actions.
There is 'runner.os', but that is just a generic Linux, there is 'matrix.os', but that is only present when using a matrix,
and there is '..container' which is only present when containers are used.

Signed-off-by: Edwin Török <[email protected]>
  • Loading branch information
edwintorok committed Aug 5, 2024
1 parent cb3cd2d commit 9efab52
Showing 1 changed file with 6 additions and 0 deletions.
6 changes: 6 additions & 0 deletions .github/workflows/setup-xapi-environment/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ runs:
shell: bash
run: |
curl --fail --silent https://raw.githubusercontent.com/xapi-project/xs-opam/master/tools/xs-opam-ci.env | cut -f2 -d " " > .env
cat /etc/os-release
- name: Download XE_SR_ERRORCODES.xml
shell: bash
Expand Down Expand Up @@ -42,6 +43,10 @@ runs:
echo "TMPDIR=${TMPDIR}" >>"$GITHUB_ENV"
echo "XDG_CACHE_HOME=${XDG_CACHE_HOME}" >>"$GITHUB_ENV"
- name: Get runner OS info
uses: kenchan0130/actions-system-info@master
id: system-info

# We set DUNE_CACHE_STORAGE_MODE, it is required for dune cache to work inside opam for now,
# otherwise it gets EXDEV and considers it a cache miss
- name: Use ocaml
Expand All @@ -52,6 +57,7 @@ runs:
xs-opam: ${{ steps.dotenv.outputs.repository }}
dune-cache: true
opam-pin: false
cache-prefix: v3-${{ steps.system-info.outputs.name }}-${{ steps.system-info.outputs.release }}
env:
DUNE_CACHE_STORAGE_MODE: copy

Expand Down

0 comments on commit 9efab52

Please sign in to comment.