cache
cache copied to clipboard
Cache Save/Restore is not working between GitHub Runner and Container, even with the same absolute path.
I'm trying to cache files in a standard runner and then access them in a container, but the files aren't being restored as expected.
I noticed the issue mentioned in #1444 (which would be great to have fixed) and read through the guidance in the cross-os-cache docs. From what I understand, the full absolute path for saving and restoring the cache must be identical across environments. In an attempt to address this, I tried placing the files in /tmp/
, but even when the full absolute path matches and I've set enableCrossOsArchive: 'true'
, it still doesn't work. You can see the failure in this run: https://github.com/sabbott1877/cache-issues/actions/runs/10608423120/job/29402474270.
name: Cache Issue Testing
on:
push:
branches:
- '**'
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
permissions:
contents: read
jobs:
create-cache:
name: Setup Cache
runs-on: ubuntu-latest
steps:
- run: |
echo ~
echo $PWD
# Trying to use /tmp to avoid issues with absolute paths, but still seems to be failing.
- name: Create files
run: |
mkdir -p /tmp/cache-path/
echo "test" > /tmp/cache-path/file.txt
- name: Cache Files
uses: actions/cache/save@v4
with:
path: /tmp/cache-path
key: cache-path-${{ github.run_id }}
enableCrossOsArchive: 'true'
read-cache:
name: Read Cache
needs: create-cache
runs-on: ubuntu-latest
container:
image: rockylinux:9
options: -u root
steps:
- run: |
echo ~
echo $PWD
- name: Get Cached Files
uses: actions/cache/restore@v4
with:
path: /tmp/cache-path
key: cache-path-${{ github.run_id }}
enableCrossOsArchive: 'true'
fail-on-cache-miss: 'true'