Spin up a local Github artifact cache server to be used with act Github actions that uses actions/cache
- Linux & Mac:
export ACT_CACHE_AUTH_KEY=foo
- Windows Powershell:
$env:ACT_CACHE_AUTH_KEY = 'foo'
- Windows CMD:
setx ACT_CACHE_AUTH_KEY foo
docker compose up --build
Ensure you add the following configuration to your ~/.actrc
file:
--env ACTIONS_CACHE_URL=http://127.0.0.1:8080/
--env ACTIONS_RUNTIME_URL=http://127.0.0.1:8080/
--env ACTIONS_RUNTIME_TOKEN=foo
- You can set
ACT_CACHE_AUTH_KEY
andACTIONS_RUNTIME_TOKEN
to the value you want, but they must be the same - The cache is persisted in Docker's named volumes(when using
docker-compose
) so it will survive between containers - To purge the cache use the endpoint
/_apis/artifactcache/clean
. ie- Linux & Mac:
curl -X POST -H 'Authorization: Bearer foo' 'http://127.0.0.1:8080/_apis/artifactcache/clean'
- Windows Powershell:
Invoke-WebRequest -Method POST -Headers @{"Authorization"="Bearer foo"} -Uri "http://127.0.0.1:8080/_apis/artifactcache/clean"
- Windows CMD:
curl -X POST -H "Authorization: Bearer foo" "http://127.0.0.1:8080/_apis/artifactcache/clean"
- Linux & Mac:
- The caching is global, meaning that it's shared across git projects and branches. As the container lacks the information of the Github context the action is running on it does not have access to
GITHUB_REPOSITORY
,GITHUB_REF
orGITHUB_BASE_REF
so it can do a better job restoring fallback caches or switching branches
- This project started off the awesome https://github.com/anthonykawa/artifact-server and https://github.com/JEFuller/artifact-server (with docker support).