mirror of
https://github.com/astral-sh/setup-uv.git
synced 2025-12-23 11:01:03 +00:00
This pull request introduces support for caching Python installs in the GitHub Action, allowing users to cache not only dependencies but also the Python interpreter itself. This works by setting the `UV_PYTHON_INSTALL_DIR` to a subdirectory of the dependency cache path so that Python installs are directed there. Fixes #135 --------- Co-authored-by: Kevin Stillhammer <kevin.stillhammer@gmail.com>
97 lines
3.1 KiB
YAML
97 lines
3.1 KiB
YAML
name: "astral-sh/setup-uv"
|
|
description:
|
|
"Set up your GitHub Actions workflow with a specific version of uv."
|
|
author: "astral-sh"
|
|
inputs:
|
|
version:
|
|
description: "The version of uv to install e.g., `0.5.0` Defaults to the version in pyproject.toml or 'latest'."
|
|
default: ""
|
|
version-file:
|
|
description: "Path to a file containing the version of uv to install. Defaults to searching for uv.toml and if not found pyproject.toml."
|
|
default: ""
|
|
python-version:
|
|
description: "The version of Python to set UV_PYTHON to"
|
|
required: false
|
|
activate-environment:
|
|
description: "Use uv venv to activate a venv ready to be used by later steps. "
|
|
default: "false"
|
|
working-directory:
|
|
description: "The directory to execute all commands in and look for files such as pyproject.toml"
|
|
default: ${{ github.workspace }}
|
|
checksum:
|
|
description: "The checksum of the uv version to install"
|
|
required: false
|
|
github-token:
|
|
description:
|
|
"Used to increase the rate limit when retrieving versions and downloading uv."
|
|
required: false
|
|
default: ${{ github.token }}
|
|
enable-cache:
|
|
description: "Enable uploading of the uv cache"
|
|
default: "auto"
|
|
cache-dependency-glob:
|
|
description:
|
|
"Glob pattern to match files relative to the repository root to control
|
|
the cache."
|
|
default: |
|
|
**/*requirements*.txt
|
|
**/*requirements*.in
|
|
**/*constraints*.txt
|
|
**/*constraints*.in
|
|
**/pyproject.toml
|
|
**/uv.lock
|
|
**/*.py.lock
|
|
restore-cache:
|
|
description: "Whether to restore the cache if found."
|
|
default: "true"
|
|
save-cache:
|
|
description: "Whether to save the cache after the run."
|
|
default: "true"
|
|
cache-suffix:
|
|
description: "Suffix for the cache key"
|
|
required: false
|
|
cache-local-path:
|
|
description: "Local path to store the cache."
|
|
default: ""
|
|
prune-cache:
|
|
description: "Prune cache before saving."
|
|
default: "true"
|
|
cache-python:
|
|
description: "Upload managed Python installations to the Github Actions cache."
|
|
default: "false"
|
|
ignore-nothing-to-cache:
|
|
description: "Ignore when nothing is found to cache."
|
|
default: "false"
|
|
ignore-empty-workdir:
|
|
description: "Ignore when the working directory is empty."
|
|
default: "false"
|
|
tool-dir:
|
|
description: "Custom path to set UV_TOOL_DIR to."
|
|
required: false
|
|
tool-bin-dir:
|
|
description: "Custom path to set UV_TOOL_BIN_DIR to."
|
|
required: false
|
|
manifest-file:
|
|
description: "URL to the manifest file containing available versions and download URLs."
|
|
required: false
|
|
add-problem-matchers:
|
|
description: "Add problem matchers."
|
|
default: "true"
|
|
outputs:
|
|
uv-version:
|
|
description: "The installed uv version. Useful when using latest."
|
|
uv-path:
|
|
description: "The path to the installed uv binary."
|
|
uvx-path:
|
|
description: "The path to the installed uvx binary."
|
|
cache-hit:
|
|
description: "A boolean value to indicate a cache entry was found"
|
|
runs:
|
|
using: "node24"
|
|
main: "dist/setup/index.js"
|
|
post: "dist/save-cache/index.js"
|
|
post-if: success()
|
|
branding:
|
|
icon: "package"
|
|
color: "black"
|