Compare commits

...

4 commits

Author SHA1 Message Date
ed52ce502e update docs 2025-07-16 01:16:09 -04:00
f05f233626 fix cache hit output 2025-07-16 01:08:29 -04:00
dac7f7aea0 fixed type in step id 2025-07-16 01:01:56 -04:00
0d5ceb4786 Added cache-hit output 2025-07-16 00:55:54 -04:00
2 changed files with 39 additions and 0 deletions

29
README.md Normal file
View file

@ -0,0 +1,29 @@
# uv-cache
This is a very simple action that sets up cache support for `uv`. It doesn't do
anything else. I wrote this to work well with
[based-alpine](https://git.ficd.sh/ficd/based-alpine).
## Requirements
All dependencies `actions/cache@v4` must be satisfied, and `uv` must be
available on the path.
## Usage
Using this action is very simple. We also provide one output: `cache-hit`, which
is either "true" or "false".
```yaml
# you should always checkout first
# otherwise there is nothing to check cache against
- name: checkout source
uses: actions/checkout@v4
- name: setup cache
# assign the id if you want to check the boolean later
id: uv-cache
uses: https://git.ficd.sh/ficd/uv-cache@v1
- name: Check cache status
run: |
echo "Cache hit? ${{ steps.uv-cache.outputs.cache-hit }}"
```

View file

@ -1,6 +1,10 @@
name: Setup uv cache name: Setup uv cache
description: Composite action to determine uv cache dir and restore cache. description: Composite action to determine uv cache dir and restore cache.
author: Daniel Fichtinger author: Daniel Fichtinger
outputs:
cache-hit:
description: "Whether the uv cache was restored"
value: ${{ steps.cache-output.outputs.cache-hit }}
runs: runs:
using: "composite" using: "composite"
steps: steps:
@ -10,9 +14,15 @@ runs:
run: | run: |
echo "dir=$(uv cache dir)" >> "$GITHUB_OUTPUT" echo "dir=$(uv cache dir)" >> "$GITHUB_OUTPUT"
- name: Restore uv cache - name: Restore uv cache
id: cache-restore
uses: actions/cache@v4 uses: actions/cache@v4
with: with:
path: ${{ steps.uv-cache.outputs.dir }} path: ${{ steps.uv-cache.outputs.dir }}
key: ${{ runner.os }}-uv-${{ hashFiles('**/*requirements*.txt', '**/*requirements*.in', '**/*constraints*.txt', '**/*constraints*.in', '**/pyproject.toml', '**/uv.lock') }} key: ${{ runner.os }}-uv-${{ hashFiles('**/*requirements*.txt', '**/*requirements*.in', '**/*constraints*.txt', '**/*constraints*.in', '**/pyproject.toml', '**/uv.lock') }}
restore-keys: | restore-keys: |
${{ runner.os }}-uv- ${{ runner.os }}-uv-
- name: Capture cache-hit output
id: cache-output
shell: bash
run: |
echo "cache-hit=${{ steps.cache-restore.outputs.cache-hit }}" >> "$GITHUB_OUTPUT"