mirror of
https://github.com/astral-sh/setup-uv.git
synced 2025-12-15 11:07:14 +00:00
Compare commits
7 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
c7f87aa956 | ||
|
|
aadfaf08d6 | ||
|
|
a0f9da6273 | ||
|
|
ec4c691628 | ||
|
|
aa1290542e | ||
|
|
fcaddda076 | ||
|
|
fb3a0a97fa |
53
.github/workflows/test.yml
vendored
53
.github/workflows/test.yml
vendored
@@ -115,7 +115,7 @@ jobs:
|
||||
id: setup-uv
|
||||
uses: ./
|
||||
with:
|
||||
pyproject-file: "__tests__/fixtures/pyproject-toml-project/pyproject.toml"
|
||||
working-directory: "__tests__/fixtures/pyproject-toml-project"
|
||||
- name: Correct version gets installed
|
||||
run: |
|
||||
if [ "$(uv --version)" != "uv 0.5.14" ]; then
|
||||
@@ -131,9 +131,8 @@ jobs:
|
||||
id: setup-uv
|
||||
uses: ./
|
||||
with:
|
||||
pyproject-file: "__tests__/fixtures/malformed-pyproject-toml-project/pyproject.toml"
|
||||
- run: uv sync
|
||||
working-directory: __tests__/fixtures/uv-project
|
||||
working-directory: "__tests__/fixtures/malformed-pyproject-toml-project"
|
||||
- run: uv --help
|
||||
|
||||
test-uv-file-version:
|
||||
runs-on: ubuntu-latest
|
||||
@@ -143,8 +142,7 @@ jobs:
|
||||
id: setup-uv
|
||||
uses: ./
|
||||
with:
|
||||
pyproject-file: "__tests__/fixtures/uv-toml-project/pyproject.toml"
|
||||
uv-file: "__tests__/fixtures/uv-toml-project/uv.toml"
|
||||
working-directory: "__tests__/fixtures/uv-toml-project"
|
||||
- name: Correct version gets installed
|
||||
run: |
|
||||
if [ "$(uv --version)" != "uv 0.5.15" ]; then
|
||||
@@ -229,7 +227,7 @@ jobs:
|
||||
fi
|
||||
|
||||
test-python-version:
|
||||
runs-on: ubuntu-latest
|
||||
runs-on: ${{ matrix.os }}
|
||||
strategy:
|
||||
matrix:
|
||||
os: [ubuntu-latest, macos-latest, windows-latest]
|
||||
@@ -246,8 +244,21 @@ jobs:
|
||||
exit 1
|
||||
fi
|
||||
shell: bash
|
||||
|
||||
test-activate-environment:
|
||||
runs-on: ${{ matrix.os }}
|
||||
strategy:
|
||||
matrix:
|
||||
os: [ ubuntu-latest, macos-latest, windows-latest ]
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- name: Install latest version
|
||||
uses: ./
|
||||
with:
|
||||
python-version: 3.13.1t
|
||||
activate-environment: true
|
||||
- name: Verify packages can be installed
|
||||
run: uv pip install --python=3.13.1t pip
|
||||
run: uv pip install pip
|
||||
shell: bash
|
||||
- name: Verify python version is correct
|
||||
run: |
|
||||
@@ -397,6 +408,30 @@ jobs:
|
||||
env:
|
||||
CACHE_HIT: ${{ steps.restore.outputs.cache-hit }}
|
||||
|
||||
test-cache-local:
|
||||
strategy:
|
||||
matrix:
|
||||
inputs:
|
||||
- os: ubuntu-latest
|
||||
expected-cache-dir: "/home/runner/work/_temp/setup-uv-cache"
|
||||
- os: windows-latest
|
||||
expected-cache-dir: "D:\\a\\_temp\\setup-uv-cache"
|
||||
- os: selfhosted-ubuntu-arm64
|
||||
expected-cache-dir: "/home/ubuntu/.cache/uv"
|
||||
runs-on: ${{ matrix.inputs.os }}
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- name: Setup with cache
|
||||
uses: ./
|
||||
with:
|
||||
cache-suffix: ${{ github.run_id }}-${{ github.run_attempt }}-test-cache-local
|
||||
- run: |
|
||||
if [ "$UV_CACHE_DIR" != "${{ matrix.inputs.expected-cache-dir }}" ]; then
|
||||
echo "UV_CACHE_DIR is not set to the expected value: $UV_CACHE_DIR"
|
||||
exit 1
|
||||
fi
|
||||
shell: bash
|
||||
|
||||
test-setup-cache-local:
|
||||
runs-on: selfhosted-ubuntu-arm64
|
||||
steps:
|
||||
@@ -508,7 +543,9 @@ jobs:
|
||||
- test-tool-install
|
||||
- test-tilde-expansion-tool-dirs
|
||||
- test-python-version
|
||||
- test-activate-environment
|
||||
- test-musl
|
||||
- test-cache-local
|
||||
- test-restore-cache
|
||||
- test-restore-cache-requirements-txt
|
||||
- test-restore-cache-dependency-glob
|
||||
|
||||
111
README.md
111
README.md
@@ -15,8 +15,9 @@ Set up your GitHub Actions workflow with a specific version of [uv](https://docs
|
||||
- [Install the latest version](#install-the-latest-version)
|
||||
- [Install a specific version](#install-a-specific-version)
|
||||
- [Install a version by supplying a semver range or pep440 specifier](#install-a-version-by-supplying-a-semver-range-or-pep440-specifier)
|
||||
- [Install a required-version](#install-a-required-version)
|
||||
- [Python version](#python-version)
|
||||
- [Activate environment](#activate-environment)
|
||||
- [Working directory](#working-directory)
|
||||
- [Validate checksum](#validate-checksum)
|
||||
- [Enable Caching](#enable-caching)
|
||||
- [Cache dependency glob](#cache-dependency-glob)
|
||||
@@ -36,7 +37,7 @@ Set up your GitHub Actions workflow with a specific version of [uv](https://docs
|
||||
|
||||
```yaml
|
||||
- name: Install the latest version of uv
|
||||
uses: astral-sh/setup-uv@v5
|
||||
uses: astral-sh/setup-uv@v6
|
||||
```
|
||||
|
||||
If you do not specify a version, this action will look for a [required-version](https://docs.astral.sh/uv/reference/settings/#required-version)
|
||||
@@ -49,7 +50,7 @@ For an example workflow, see
|
||||
|
||||
```yaml
|
||||
- name: Install the latest version of uv
|
||||
uses: astral-sh/setup-uv@v5
|
||||
uses: astral-sh/setup-uv@v6
|
||||
with:
|
||||
version: "latest"
|
||||
```
|
||||
@@ -58,7 +59,7 @@ For an example workflow, see
|
||||
|
||||
```yaml
|
||||
- name: Install a specific version of uv
|
||||
uses: astral-sh/setup-uv@v5
|
||||
uses: astral-sh/setup-uv@v6
|
||||
with:
|
||||
version: "0.4.4"
|
||||
```
|
||||
@@ -71,57 +72,34 @@ to install the latest version that satisfies the range.
|
||||
|
||||
```yaml
|
||||
- name: Install a semver range of uv
|
||||
uses: astral-sh/setup-uv@v5
|
||||
uses: astral-sh/setup-uv@v6
|
||||
with:
|
||||
version: ">=0.4.0"
|
||||
```
|
||||
|
||||
```yaml
|
||||
- name: Pinning a minor version of uv
|
||||
uses: astral-sh/setup-uv@v5
|
||||
uses: astral-sh/setup-uv@v6
|
||||
with:
|
||||
version: "0.4.x"
|
||||
```
|
||||
|
||||
```yaml
|
||||
- name: Install a pep440-specifier-satisfying version of uv
|
||||
uses: astral-sh/setup-uv@v5
|
||||
uses: astral-sh/setup-uv@v6
|
||||
with:
|
||||
version: ">=0.4.25,<0.5"
|
||||
```
|
||||
|
||||
### Install a required-version
|
||||
|
||||
You can specify a [required-version](https://docs.astral.sh/uv/reference/settings/#required-version)
|
||||
in either a `uv.toml` or `pyproject.toml` file:
|
||||
|
||||
```yaml
|
||||
- name: Install required-version defined in uv.toml
|
||||
uses: astral-sh/setup-uv@v5
|
||||
with:
|
||||
uv-file: "path/to/uv.toml"
|
||||
```
|
||||
|
||||
```yaml
|
||||
- name: Install required-version defined in pyproject.toml
|
||||
uses: astral-sh/setup-uv@v5
|
||||
with:
|
||||
pyproject-file: "path/to/pyproject.toml"
|
||||
```
|
||||
|
||||
### Python version
|
||||
|
||||
You can use the input `python-version` to
|
||||
|
||||
- set the environment variable `UV_PYTHON` for the rest of your workflow
|
||||
- create a new virtual environment with the specified python version
|
||||
- activate the virtual environment for the rest of your workflow
|
||||
You can use the input `python-version` to set the environment variable `UV_PYTHON` for the rest of your workflow
|
||||
|
||||
This will override any python version specifications in `pyproject.toml` and `.python-version`
|
||||
|
||||
```yaml
|
||||
- name: Install the latest version of uv and set the python version to 3.13t
|
||||
uses: astral-sh/setup-uv@v5
|
||||
uses: astral-sh/setup-uv@v6
|
||||
with:
|
||||
python-version: 3.13t
|
||||
- run: uv pip install --python=3.13t pip
|
||||
@@ -139,13 +117,41 @@ jobs:
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- name: Install the latest version of uv and set the python version
|
||||
uses: astral-sh/setup-uv@v5
|
||||
uses: astral-sh/setup-uv@v6
|
||||
with:
|
||||
python-version: ${{ matrix.python-version }}
|
||||
- name: Test with python ${{ matrix.python-version }}
|
||||
run: uv run --frozen pytest
|
||||
```
|
||||
|
||||
### Activate environment
|
||||
|
||||
You can set `activate-environment` to `true` to automatically activate a venv.
|
||||
This allows directly using it in later steps:
|
||||
|
||||
```yaml
|
||||
- name: Install the latest version of uv and activate the environment
|
||||
uses: astral-sh/setup-uv@v6
|
||||
with:
|
||||
activate-environment: true
|
||||
- run: uv pip install pip
|
||||
```
|
||||
|
||||
### Working directory
|
||||
|
||||
You can set the working directory with the `working-directory` input.
|
||||
This controls where we look for `pyproject.toml`, `uv.toml` and `.python-version` files
|
||||
which are used to determine the version of uv and python to install.
|
||||
|
||||
It also controls where [the venv gets created](#activate-environment).
|
||||
|
||||
```yaml
|
||||
- name: Install uv based on the config files in the working-directory
|
||||
uses: astral-sh/setup-uv@v6
|
||||
with:
|
||||
working-directory: my/subproject/dir
|
||||
```
|
||||
|
||||
### Validate checksum
|
||||
|
||||
You can specify a checksum to validate the downloaded executable. Checksums up to the default version
|
||||
@@ -154,7 +160,7 @@ are automatically verified by this action. The sha256 hashes can be found on the
|
||||
|
||||
```yaml
|
||||
- name: Install a specific version and validate the checksum
|
||||
uses: astral-sh/setup-uv@v5
|
||||
uses: astral-sh/setup-uv@v6
|
||||
with:
|
||||
version: "0.3.1"
|
||||
checksum: "e11b01402ab645392c7ad6044db63d37e4fd1e745e015306993b07695ea5f9f8"
|
||||
@@ -176,7 +182,7 @@ You can optionally define a custom cache key suffix.
|
||||
```yaml
|
||||
- name: Enable caching and define a custom cache key suffix
|
||||
id: setup-uv
|
||||
uses: astral-sh/setup-uv@v5
|
||||
uses: astral-sh/setup-uv@v6
|
||||
with:
|
||||
enable-cache: true
|
||||
cache-suffix: "optional-suffix"
|
||||
@@ -204,13 +210,14 @@ changes. If you use relative paths, they are relative to the repository root.
|
||||
> The default is
|
||||
> ```yaml
|
||||
> cache-dependency-glob: |
|
||||
> **/requirements*.txt
|
||||
> **/*(requirements|constraints)*.(txt|in)
|
||||
> **/pyproject.toml
|
||||
> **/uv.lock
|
||||
> ```
|
||||
|
||||
```yaml
|
||||
- name: Define a cache dependency glob
|
||||
uses: astral-sh/setup-uv@v5
|
||||
uses: astral-sh/setup-uv@v6
|
||||
with:
|
||||
enable-cache: true
|
||||
cache-dependency-glob: "**/pyproject.toml"
|
||||
@@ -218,7 +225,7 @@ changes. If you use relative paths, they are relative to the repository root.
|
||||
|
||||
```yaml
|
||||
- name: Define a list of cache dependency globs
|
||||
uses: astral-sh/setup-uv@v5
|
||||
uses: astral-sh/setup-uv@v6
|
||||
with:
|
||||
enable-cache: true
|
||||
cache-dependency-glob: |
|
||||
@@ -228,7 +235,7 @@ changes. If you use relative paths, they are relative to the repository root.
|
||||
|
||||
```yaml
|
||||
- name: Define an absolute cache dependency glob
|
||||
uses: astral-sh/setup-uv@v5
|
||||
uses: astral-sh/setup-uv@v6
|
||||
with:
|
||||
enable-cache: true
|
||||
cache-dependency-glob: "/tmp/my-folder/requirements*.txt"
|
||||
@@ -236,7 +243,7 @@ changes. If you use relative paths, they are relative to the repository root.
|
||||
|
||||
```yaml
|
||||
- name: Never invalidate the cache
|
||||
uses: astral-sh/setup-uv@v5
|
||||
uses: astral-sh/setup-uv@v6
|
||||
with:
|
||||
enable-cache: true
|
||||
cache-dependency-glob: ""
|
||||
@@ -251,7 +258,7 @@ It defaults to `setup-uv-cache` in the `TMP` dir, `D:\a\_temp\uv-tool-dir` on Wi
|
||||
|
||||
```yaml
|
||||
- name: Define a custom uv cache path
|
||||
uses: astral-sh/setup-uv@v5
|
||||
uses: astral-sh/setup-uv@v6
|
||||
with:
|
||||
cache-local-path: "/path/to/cache"
|
||||
```
|
||||
@@ -270,7 +277,7 @@ input.
|
||||
|
||||
```yaml
|
||||
- name: Don't prune the cache before saving it
|
||||
uses: astral-sh/setup-uv@v5
|
||||
uses: astral-sh/setup-uv@v6
|
||||
with:
|
||||
enable-cache: true
|
||||
prune-cache: false
|
||||
@@ -283,7 +290,7 @@ If you want to ignore this, set the `ignore-nothing-to-cache` input to `true`.
|
||||
|
||||
```yaml
|
||||
- name: Ignore nothing to cache
|
||||
uses: astral-sh/setup-uv@v5
|
||||
uses: astral-sh/setup-uv@v6
|
||||
with:
|
||||
enable-cache: true
|
||||
ignore-nothing-to-cache: true
|
||||
@@ -298,7 +305,7 @@ If you want to ignore this, set the `ignore-empty-workdir` input to `true`.
|
||||
|
||||
```yaml
|
||||
- name: Ignore empty workdir
|
||||
uses: astral-sh/setup-uv@v5
|
||||
uses: astral-sh/setup-uv@v6
|
||||
with:
|
||||
ignore-empty-workdir: true
|
||||
```
|
||||
@@ -315,7 +322,7 @@ are not sufficient, you can provide a custom GitHub token with the necessary per
|
||||
|
||||
```yaml
|
||||
- name: Install the latest version of uv with a custom GitHub token
|
||||
uses: astral-sh/setup-uv@v5
|
||||
uses: astral-sh/setup-uv@v6
|
||||
with:
|
||||
github-token: ${{ secrets.CUSTOM_GITHUB_TOKEN }}
|
||||
```
|
||||
@@ -333,7 +340,7 @@ input:
|
||||
|
||||
```yaml
|
||||
- name: Install the latest version of uv with a custom tool dir
|
||||
uses: astral-sh/setup-uv@v5
|
||||
uses: astral-sh/setup-uv@v6
|
||||
with:
|
||||
tool-dir: "/path/to/tool/dir"
|
||||
```
|
||||
@@ -352,7 +359,7 @@ If you want to change this behaviour (especially on self-hosted runners) you can
|
||||
|
||||
```yaml
|
||||
- name: Install the latest version of uv with a custom tool bin dir
|
||||
uses: astral-sh/setup-uv@v5
|
||||
uses: astral-sh/setup-uv@v6
|
||||
with:
|
||||
tool-bin-dir: "/path/to/tool-bin/dir"
|
||||
```
|
||||
@@ -368,7 +375,7 @@ This action supports expanding the `~` character to the user's home directory fo
|
||||
|
||||
```yaml
|
||||
- name: Expand the tilde character
|
||||
uses: astral-sh/setup-uv@v5
|
||||
uses: astral-sh/setup-uv@v6
|
||||
with:
|
||||
cache-local-path: "~/path/to/cache"
|
||||
tool-dir: "~/path/to/tool/dir"
|
||||
@@ -383,7 +390,7 @@ This action downloads uv from the uv repo's official
|
||||
[GitHub Actions Toolkit](https://github.com/actions/toolkit) to cache it as a tool to speed up
|
||||
consecutive runs on self-hosted runners.
|
||||
|
||||
The installed version of uv is then added to the runner PATH, enabling subsequent steps to invoke it
|
||||
The installed version of uv is then added to the runner PATH, enabling later steps to invoke it
|
||||
by name (`uv`).
|
||||
|
||||
## FAQ
|
||||
@@ -401,7 +408,7 @@ For example:
|
||||
- name: Checkout the repository
|
||||
uses: actions/checkout@main
|
||||
- name: Install the latest version of uv
|
||||
uses: astral-sh/setup-uv@v5
|
||||
uses: astral-sh/setup-uv@v6
|
||||
with:
|
||||
enable-cache: true
|
||||
- name: Test
|
||||
@@ -413,7 +420,7 @@ To install a specific version of Python, use
|
||||
|
||||
```yaml
|
||||
- name: Install the latest version of uv
|
||||
uses: astral-sh/setup-uv@v5
|
||||
uses: astral-sh/setup-uv@v6
|
||||
with:
|
||||
enable-cache: true
|
||||
- name: Install Python 3.12
|
||||
@@ -432,7 +439,7 @@ output:
|
||||
uses: actions/checkout@main
|
||||
- name: Install the default version of uv
|
||||
id: setup-uv
|
||||
uses: astral-sh/setup-uv@v5
|
||||
uses: astral-sh/setup-uv@v6
|
||||
- name: Print the installed version
|
||||
run: echo "Installed uv version is ${{ steps.setup-uv.outputs.uv-version }}"
|
||||
```
|
||||
|
||||
15
action.yml
15
action.yml
@@ -6,15 +6,15 @@ inputs:
|
||||
version:
|
||||
description: "The version of uv to install e.g., `0.5.0` Defaults to the version in pyproject.toml or 'latest'."
|
||||
default: ""
|
||||
pyproject-file:
|
||||
description: "Path to a pyproject.toml"
|
||||
default: ""
|
||||
uv-file:
|
||||
description: "Path to a uv.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
|
||||
@@ -31,8 +31,9 @@ inputs:
|
||||
"Glob pattern to match files relative to the repository root to control
|
||||
the cache."
|
||||
default: |
|
||||
**/*(requirements|constraints)*.(txt|in)
|
||||
**/pyproject.toml
|
||||
**/uv.lock
|
||||
**/requirements*.txt
|
||||
cache-suffix:
|
||||
description: "Suffix for the cache key"
|
||||
required: false
|
||||
|
||||
20
dist/save-cache/index.js
generated
vendored
20
dist/save-cache/index.js
generated
vendored
@@ -88731,7 +88731,7 @@ async function getPythonVersion() {
|
||||
},
|
||||
};
|
||||
try {
|
||||
const execArgs = ["python", "find"];
|
||||
const execArgs = ["python", "find", "--directory", inputs_1.workingDirectory];
|
||||
await exec.exec("uv", execArgs, options);
|
||||
const pythonPath = output.trim();
|
||||
output = "";
|
||||
@@ -88997,13 +88997,13 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
||||
return (mod && mod.__esModule) ? mod : { "default": mod };
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
||||
exports.githubToken = exports.toolDir = exports.toolBinDir = exports.ignoreEmptyWorkdir = exports.ignoreNothingToCache = exports.pruneCache = exports.cacheDependencyGlob = exports.cacheLocalPath = exports.cacheSuffix = exports.enableCache = exports.checkSum = exports.pythonVersion = exports.uvFile = exports.pyProjectFile = exports.version = void 0;
|
||||
exports.githubToken = exports.toolDir = exports.toolBinDir = exports.ignoreEmptyWorkdir = exports.ignoreNothingToCache = exports.pruneCache = exports.cacheDependencyGlob = exports.cacheLocalPath = exports.cacheSuffix = exports.enableCache = exports.checkSum = exports.workingDirectory = exports.activateEnvironment = exports.pythonVersion = exports.version = void 0;
|
||||
const core = __importStar(__nccwpck_require__(7484));
|
||||
const node_path_1 = __importDefault(__nccwpck_require__(6760));
|
||||
exports.version = core.getInput("version");
|
||||
exports.pyProjectFile = core.getInput("pyproject-file");
|
||||
exports.uvFile = core.getInput("uv-file");
|
||||
exports.pythonVersion = core.getInput("python-version");
|
||||
exports.activateEnvironment = core.getBooleanInput("activate-environment");
|
||||
exports.workingDirectory = core.getInput("working-directory");
|
||||
exports.checkSum = core.getInput("checksum");
|
||||
exports.enableCache = getEnableCache();
|
||||
exports.cacheSuffix = core.getInput("cache-suffix") || "";
|
||||
@@ -89053,10 +89053,16 @@ function getCacheLocalPath() {
|
||||
if (cacheLocalPathInput !== "") {
|
||||
return expandTilde(cacheLocalPathInput);
|
||||
}
|
||||
if (process.env.RUNNER_TEMP !== undefined) {
|
||||
return `${process.env.RUNNER_TEMP}${node_path_1.default.sep}setup-uv-cache`;
|
||||
if (process.env.RUNNER_ENVIRONMENT === "github-hosted") {
|
||||
if (process.env.RUNNER_TEMP !== undefined) {
|
||||
return `${process.env.RUNNER_TEMP}${node_path_1.default.sep}setup-uv-cache`;
|
||||
}
|
||||
throw Error("Could not determine UV_CACHE_DIR. Please make sure RUNNER_TEMP is set or provide the cache-local-path input");
|
||||
}
|
||||
throw Error("Could not determine UV_CACHE_DIR. Please make sure RUNNER_TEMP is set or provide the cache-local-path input");
|
||||
if (process.platform === "win32") {
|
||||
return `${process.env.APPDATA}${node_path_1.default.sep}uv${node_path_1.default.sep}cache`;
|
||||
}
|
||||
return `${process.env.HOME}${node_path_1.default.sep}.cache${node_path_1.default.sep}uv`;
|
||||
}
|
||||
function expandTilde(input) {
|
||||
if (input.startsWith("~")) {
|
||||
|
||||
260
dist/setup/index.js
generated
vendored
260
dist/setup/index.js
generated
vendored
@@ -121062,7 +121062,7 @@ async function getPythonVersion() {
|
||||
},
|
||||
};
|
||||
try {
|
||||
const execArgs = ["python", "find"];
|
||||
const execArgs = ["python", "find", "--directory", inputs_1.workingDirectory];
|
||||
await exec.exec("uv", execArgs, options);
|
||||
const pythonPath = output.trim();
|
||||
output = "";
|
||||
@@ -121188,6 +121188,40 @@ Object.defineProperty(exports, "__esModule", ({ value: true }));
|
||||
exports.KNOWN_CHECKSUMS = void 0;
|
||||
// AUTOGENERATED_DO_NOT_EDIT
|
||||
exports.KNOWN_CHECKSUMS = {
|
||||
"aarch64-apple-darwin-0.6.16": "2b1ea0d5cf27375738f5f0f229587bc3590c0f501cb00bc48133a3d122d28364",
|
||||
"aarch64-pc-windows-msvc-0.6.16": "5abca187b8aecbdffef7547cb39a527168e4cb93d8d2e4ce14271f5831a4d902",
|
||||
"aarch64-unknown-linux-gnu-0.6.16": "a82f96ab5f285825f9acee6ac1563683c4940d80df2f08549cad43d37c7ba4a7",
|
||||
"aarch64-unknown-linux-musl-0.6.16": "ae3f793c62fe6ced80483d6c78cb49f06a01088bc5d86f1446a9b5988b2acecc",
|
||||
"arm-unknown-linux-musleabihf-0.6.16": "91f7f5a4eb97b7983a8e5421d5bfea8802064422ce2f535055f373726eb0aa9a",
|
||||
"armv7-unknown-linux-gnueabihf-0.6.16": "a4ffe043952bf4e757a5ca0f546bb83b055b6ee0646dd5c4f5e5f13dbc5ee8f8",
|
||||
"armv7-unknown-linux-musleabihf-0.6.16": "0237c8d9914e0d9fd2f022d6d5f91ce392d13e0ccbb7fa7ebe601296a67c3d6c",
|
||||
"i686-pc-windows-msvc-0.6.16": "f5c6400f07db2014b2b0c66770e1125fa70efe4dd99cc8351838bed0045c34f8",
|
||||
"i686-unknown-linux-gnu-0.6.16": "f46f89efcc599a6695e8378a1201e62cd4afb9a4438d65a89098ab11201f84ab",
|
||||
"i686-unknown-linux-musl-0.6.16": "afe69380a9d3592a87893d6bdc11ff33e4180b98f1e1fd4e626c0307d7598914",
|
||||
"powerpc64-unknown-linux-gnu-0.6.16": "bf455747580dbbf76cbcf616f67f825c40bd1bdec20c9ff993e03485f9eaad44",
|
||||
"powerpc64le-unknown-linux-gnu-0.6.16": "508ec561b1740a551d2b33e96671e0e8435a1bcc0e97080f3d7ba88a096bd360",
|
||||
"s390x-unknown-linux-gnu-0.6.16": "e25c5527826524f51f114388bff47871bf1ca67badbfd72d45427bdba4b46794",
|
||||
"x86_64-apple-darwin-0.6.16": "ce512b5e40a8ad2916a46df2bdba729d5541e4b3649a09aaddff6e525be012e4",
|
||||
"x86_64-pc-windows-msvc-0.6.16": "f1b4c24ec602b6c0b06b6bc64aa447bbe4cf313e93fbec326741961e80ffa8b7",
|
||||
"x86_64-unknown-linux-gnu-0.6.16": "e9ef28b675df68978a60f87192fb8c730b8bfca9bef42b121686b218ea0f6542",
|
||||
"x86_64-unknown-linux-musl-0.6.16": "25024557931d04cc34f80b818c7547c9c62b762ec6df807e30cb52f383fa2615",
|
||||
"aarch64-apple-darwin-0.6.15": "1c5b25f75c6438b6910dbc4c6903debe53f31ee14aee55d02243dfe7bf7c9f72",
|
||||
"aarch64-pc-windows-msvc-0.6.15": "317fe0b29e647aad1e9f02ffe764dcbbc6e2ef189f018c81b673884173ab98ba",
|
||||
"aarch64-unknown-linux-gnu-0.6.15": "3bf650aec162157b7e01461f41c2a9797366b6043452c6e7035c6c926d0a585b",
|
||||
"aarch64-unknown-linux-musl-0.6.15": "183cebae8c9d91bbd48219f9006a5c0c41c90a075d6724aec53a7ea0503c665a",
|
||||
"arm-unknown-linux-musleabihf-0.6.15": "d83c76e130ffb25fb6a4ba8ea5870207d810190733a14ae87084c63a417912f6",
|
||||
"armv7-unknown-linux-gnueabihf-0.6.15": "d661ec44e5fc7553cd8dd5ad5f48848c5a4d5279ba0df0036c0e2422ec9f312b",
|
||||
"armv7-unknown-linux-musleabihf-0.6.15": "6fc86a829965362f99602c47627b269c9b676731586a60ca5bb9d6069677938d",
|
||||
"i686-pc-windows-msvc-0.6.15": "7f15e3377e94fac882b33465cb8cbb24705f5c8d63d9d65c6f1b0816c1d30a0b",
|
||||
"i686-unknown-linux-gnu-0.6.15": "bfedd03be9f579a9bc10e6c25176017e514cca0500cfb9bba43794387a577661",
|
||||
"i686-unknown-linux-musl-0.6.15": "82bf8666c0a57514af4e5403f162314b710e1682e1065ab71a845ebb5d8db0b7",
|
||||
"powerpc64-unknown-linux-gnu-0.6.15": "6e9795344d61ee9ac497d6e03a447d808f2aab13925f30e44c00638abec57deb",
|
||||
"powerpc64le-unknown-linux-gnu-0.6.15": "e38f13284ed8b645b87ef07c8b549d1f1a5b746aa0411c2115dcd5cda0da13fc",
|
||||
"s390x-unknown-linux-gnu-0.6.15": "416f61249b330ea9735cda0c866c9460f87111bc9d4e040c98916fda6a45be09",
|
||||
"x86_64-apple-darwin-0.6.15": "97adf61511c0f6ea42c090443c38d8d71116b78ae626363f9f149924c91ae886",
|
||||
"x86_64-pc-windows-msvc-0.6.15": "10c75d566db1447f3bdcbcb31d6598e4b5f4ea638be5d8b73a7350929389512b",
|
||||
"x86_64-unknown-linux-gnu-0.6.15": "85d98ef282cdbfcb4020922f0c12421ecca4130f0a4570d3b827a15ffd544acc",
|
||||
"x86_64-unknown-linux-musl-0.6.15": "78289c93836cb32b8b24e3216b5b316e7fdf483365de2fc571844d308387e8a4",
|
||||
"aarch64-apple-darwin-0.6.14": "4ea4731010fbd1bc8e790e07f199f55a5c7c2c732e9b77f85e302b0bee61b756",
|
||||
"aarch64-pc-windows-msvc-0.6.14": "7b0b3367c4060c9b47b961201ceb4252e97496c890ad1bd13c664bf5b0744d57",
|
||||
"aarch64-unknown-linux-gnu-0.6.14": "ea25597354af186bdd55aee0de431e16d45d82951a4f41f065a8e4dc27885265",
|
||||
@@ -124281,7 +124315,7 @@ const platforms_1 = __nccwpck_require__(98361);
|
||||
const inputs_1 = __nccwpck_require__(9612);
|
||||
const exec = __importStar(__nccwpck_require__(95236));
|
||||
const node_fs_1 = __importDefault(__nccwpck_require__(73024));
|
||||
const pyproject_1 = __nccwpck_require__(53929);
|
||||
const config_file_1 = __nccwpck_require__(27846);
|
||||
async function run() {
|
||||
detectEmptyWorkdir();
|
||||
const platform = await (0, platforms_1.getPlatform)();
|
||||
@@ -124297,7 +124331,8 @@ async function run() {
|
||||
addToolBinToPath();
|
||||
addUvToPathAndOutput(setupResult.uvDir);
|
||||
setToolDir();
|
||||
await setupPython();
|
||||
setupPython();
|
||||
await activateEnvironment();
|
||||
addMatchers();
|
||||
setCacheDir(inputs_1.cacheLocalPath);
|
||||
core.setOutput("uv-version", setupResult.version);
|
||||
@@ -124341,20 +124376,12 @@ async function determineVersion() {
|
||||
if (inputs_1.version !== "") {
|
||||
return await (0, download_version_1.resolveVersion)(inputs_1.version, inputs_1.githubToken);
|
||||
}
|
||||
const configFile = inputs_1.uvFile !== "" ? inputs_1.uvFile : inputs_1.pyProjectFile;
|
||||
if (configFile !== "") {
|
||||
const versionFromConfigFile = (0, pyproject_1.getUvVersionFromConfigFile)(configFile);
|
||||
if (versionFromConfigFile === undefined) {
|
||||
core.warning(`Could not find required-version under [tool.uv] in ${configFile}. Falling back to latest`);
|
||||
}
|
||||
return await (0, download_version_1.resolveVersion)(versionFromConfigFile || "latest", inputs_1.githubToken);
|
||||
const versionFromUvToml = (0, config_file_1.getUvVersionFromConfigFile)(`${inputs_1.workingDirectory}${path.sep}uv.toml`);
|
||||
const versionFromPyproject = (0, config_file_1.getUvVersionFromConfigFile)(`${inputs_1.workingDirectory}${path.sep}pyproject.toml`);
|
||||
if (versionFromUvToml === undefined && versionFromPyproject === undefined) {
|
||||
core.info("Could not determine uv version from uv.toml or pyproject.toml. Falling back to latest.");
|
||||
}
|
||||
if (!node_fs_1.default.existsSync("uv.toml") && !node_fs_1.default.existsSync("pyproject.toml")) {
|
||||
return await (0, download_version_1.resolveVersion)("latest", inputs_1.githubToken);
|
||||
}
|
||||
const versionFile = node_fs_1.default.existsSync("uv.toml") ? "uv.toml" : "pyproject.toml";
|
||||
const versionFromConfigFile = (0, pyproject_1.getUvVersionFromConfigFile)(versionFile);
|
||||
return await (0, download_version_1.resolveVersion)(versionFromConfigFile || "latest", inputs_1.githubToken);
|
||||
return await (0, download_version_1.resolveVersion)(versionFromUvToml || versionFromPyproject || "latest", inputs_1.githubToken);
|
||||
}
|
||||
function addUvToPathAndOutput(cachedPath) {
|
||||
core.setOutput("uv-path", `${cachedPath}${path.sep}uv`);
|
||||
@@ -124390,22 +124417,23 @@ function setToolDir() {
|
||||
core.info(`Set UV_TOOL_DIR to ${inputs_1.toolDir}`);
|
||||
}
|
||||
}
|
||||
async function setupPython() {
|
||||
function setupPython() {
|
||||
if (inputs_1.pythonVersion !== "") {
|
||||
core.exportVariable("UV_PYTHON", inputs_1.pythonVersion);
|
||||
core.info(`Set UV_PYTHON to ${inputs_1.pythonVersion}`);
|
||||
const options = {
|
||||
silent: !core.isDebug(),
|
||||
};
|
||||
const execArgs = ["venv", "--python", inputs_1.pythonVersion];
|
||||
}
|
||||
}
|
||||
async function activateEnvironment() {
|
||||
if (inputs_1.activateEnvironment) {
|
||||
const execArgs = ["venv", ".venv", "--directory", inputs_1.workingDirectory];
|
||||
core.info("Activating python venv...");
|
||||
await exec.exec("uv", execArgs, options);
|
||||
let venvBinPath = ".venv/bin";
|
||||
await exec.exec("uv", execArgs);
|
||||
let venvBinPath = `${inputs_1.workingDirectory}${path.sep}.venv${path.sep}bin`;
|
||||
if (process.platform === "win32") {
|
||||
venvBinPath = ".venv/Scripts";
|
||||
venvBinPath = `${inputs_1.workingDirectory}${path.sep}.venv${path.sep}Scripts`;
|
||||
}
|
||||
core.addPath(path.resolve(venvBinPath));
|
||||
core.exportVariable("VIRTUAL_ENV", path.resolve(".venv"));
|
||||
core.exportVariable("VIRTUAL_ENV", path.resolve(`${inputs_1.workingDirectory}${path.sep}.venv`));
|
||||
}
|
||||
}
|
||||
function setCacheDir(cacheLocalPath) {
|
||||
@@ -124419,6 +124447,88 @@ function addMatchers() {
|
||||
run();
|
||||
|
||||
|
||||
/***/ }),
|
||||
|
||||
/***/ 27846:
|
||||
/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) {
|
||||
|
||||
"use strict";
|
||||
|
||||
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
||||
if (k2 === undefined) k2 = k;
|
||||
var desc = Object.getOwnPropertyDescriptor(m, k);
|
||||
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
||||
desc = { enumerable: true, get: function() { return m[k]; } };
|
||||
}
|
||||
Object.defineProperty(o, k2, desc);
|
||||
}) : (function(o, m, k, k2) {
|
||||
if (k2 === undefined) k2 = k;
|
||||
o[k2] = m[k];
|
||||
}));
|
||||
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
||||
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
||||
}) : function(o, v) {
|
||||
o["default"] = v;
|
||||
});
|
||||
var __importStar = (this && this.__importStar) || (function () {
|
||||
var ownKeys = function(o) {
|
||||
ownKeys = Object.getOwnPropertyNames || function (o) {
|
||||
var ar = [];
|
||||
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
||||
return ar;
|
||||
};
|
||||
return ownKeys(o);
|
||||
};
|
||||
return function (mod) {
|
||||
if (mod && mod.__esModule) return mod;
|
||||
var result = {};
|
||||
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
||||
__setModuleDefault(result, mod);
|
||||
return result;
|
||||
};
|
||||
})();
|
||||
var __importDefault = (this && this.__importDefault) || function (mod) {
|
||||
return (mod && mod.__esModule) ? mod : { "default": mod };
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
||||
exports.getUvVersionFromConfigFile = getUvVersionFromConfigFile;
|
||||
const node_fs_1 = __importDefault(__nccwpck_require__(73024));
|
||||
const core = __importStar(__nccwpck_require__(37484));
|
||||
const toml = __importStar(__nccwpck_require__(27106));
|
||||
function getUvVersionFromConfigFile(filePath) {
|
||||
core.info(`Trying to find required-version for uv in: ${filePath}`);
|
||||
if (!node_fs_1.default.existsSync(filePath)) {
|
||||
core.info(`Could not find file: ${filePath}`);
|
||||
return undefined;
|
||||
}
|
||||
let requiredVersion;
|
||||
try {
|
||||
requiredVersion = getRequiredVersion(filePath);
|
||||
}
|
||||
catch (err) {
|
||||
const message = err.message;
|
||||
core.warning(`Error while parsing ${filePath}: ${message}`);
|
||||
return undefined;
|
||||
}
|
||||
if (requiredVersion?.startsWith("==")) {
|
||||
requiredVersion = requiredVersion.slice(2);
|
||||
}
|
||||
if (requiredVersion !== undefined) {
|
||||
core.info(`Found required-version for uv in ${filePath}: ${requiredVersion}`);
|
||||
}
|
||||
return requiredVersion;
|
||||
}
|
||||
function getRequiredVersion(filePath) {
|
||||
const fileContent = node_fs_1.default.readFileSync(filePath, "utf-8");
|
||||
if (filePath.endsWith("pyproject.toml")) {
|
||||
const tomlContent = toml.parse(fileContent);
|
||||
return tomlContent?.tool?.uv?.["required-version"];
|
||||
}
|
||||
const tomlContent = toml.parse(fileContent);
|
||||
return tomlContent["required-version"];
|
||||
}
|
||||
|
||||
|
||||
/***/ }),
|
||||
|
||||
/***/ 56156:
|
||||
@@ -124477,13 +124587,13 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
||||
return (mod && mod.__esModule) ? mod : { "default": mod };
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
||||
exports.githubToken = exports.toolDir = exports.toolBinDir = exports.ignoreEmptyWorkdir = exports.ignoreNothingToCache = exports.pruneCache = exports.cacheDependencyGlob = exports.cacheLocalPath = exports.cacheSuffix = exports.enableCache = exports.checkSum = exports.pythonVersion = exports.uvFile = exports.pyProjectFile = exports.version = void 0;
|
||||
exports.githubToken = exports.toolDir = exports.toolBinDir = exports.ignoreEmptyWorkdir = exports.ignoreNothingToCache = exports.pruneCache = exports.cacheDependencyGlob = exports.cacheLocalPath = exports.cacheSuffix = exports.enableCache = exports.checkSum = exports.workingDirectory = exports.activateEnvironment = exports.pythonVersion = exports.version = void 0;
|
||||
const core = __importStar(__nccwpck_require__(37484));
|
||||
const node_path_1 = __importDefault(__nccwpck_require__(76760));
|
||||
exports.version = core.getInput("version");
|
||||
exports.pyProjectFile = core.getInput("pyproject-file");
|
||||
exports.uvFile = core.getInput("uv-file");
|
||||
exports.pythonVersion = core.getInput("python-version");
|
||||
exports.activateEnvironment = core.getBooleanInput("activate-environment");
|
||||
exports.workingDirectory = core.getInput("working-directory");
|
||||
exports.checkSum = core.getInput("checksum");
|
||||
exports.enableCache = getEnableCache();
|
||||
exports.cacheSuffix = core.getInput("cache-suffix") || "";
|
||||
@@ -124533,10 +124643,16 @@ function getCacheLocalPath() {
|
||||
if (cacheLocalPathInput !== "") {
|
||||
return expandTilde(cacheLocalPathInput);
|
||||
}
|
||||
if (process.env.RUNNER_TEMP !== undefined) {
|
||||
return `${process.env.RUNNER_TEMP}${node_path_1.default.sep}setup-uv-cache`;
|
||||
if (process.env.RUNNER_ENVIRONMENT === "github-hosted") {
|
||||
if (process.env.RUNNER_TEMP !== undefined) {
|
||||
return `${process.env.RUNNER_TEMP}${node_path_1.default.sep}setup-uv-cache`;
|
||||
}
|
||||
throw Error("Could not determine UV_CACHE_DIR. Please make sure RUNNER_TEMP is set or provide the cache-local-path input");
|
||||
}
|
||||
throw Error("Could not determine UV_CACHE_DIR. Please make sure RUNNER_TEMP is set or provide the cache-local-path input");
|
||||
if (process.platform === "win32") {
|
||||
return `${process.env.APPDATA}${node_path_1.default.sep}uv${node_path_1.default.sep}cache`;
|
||||
}
|
||||
return `${process.env.HOME}${node_path_1.default.sep}.cache${node_path_1.default.sep}uv`;
|
||||
}
|
||||
function expandTilde(input) {
|
||||
if (input.startsWith("~")) {
|
||||
@@ -124694,88 +124810,6 @@ async function isMuslOs() {
|
||||
}
|
||||
|
||||
|
||||
/***/ }),
|
||||
|
||||
/***/ 53929:
|
||||
/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) {
|
||||
|
||||
"use strict";
|
||||
|
||||
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
||||
if (k2 === undefined) k2 = k;
|
||||
var desc = Object.getOwnPropertyDescriptor(m, k);
|
||||
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
||||
desc = { enumerable: true, get: function() { return m[k]; } };
|
||||
}
|
||||
Object.defineProperty(o, k2, desc);
|
||||
}) : (function(o, m, k, k2) {
|
||||
if (k2 === undefined) k2 = k;
|
||||
o[k2] = m[k];
|
||||
}));
|
||||
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
||||
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
||||
}) : function(o, v) {
|
||||
o["default"] = v;
|
||||
});
|
||||
var __importStar = (this && this.__importStar) || (function () {
|
||||
var ownKeys = function(o) {
|
||||
ownKeys = Object.getOwnPropertyNames || function (o) {
|
||||
var ar = [];
|
||||
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
||||
return ar;
|
||||
};
|
||||
return ownKeys(o);
|
||||
};
|
||||
return function (mod) {
|
||||
if (mod && mod.__esModule) return mod;
|
||||
var result = {};
|
||||
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
||||
__setModuleDefault(result, mod);
|
||||
return result;
|
||||
};
|
||||
})();
|
||||
var __importDefault = (this && this.__importDefault) || function (mod) {
|
||||
return (mod && mod.__esModule) ? mod : { "default": mod };
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
||||
exports.getUvVersionFromConfigFile = getUvVersionFromConfigFile;
|
||||
const node_fs_1 = __importDefault(__nccwpck_require__(73024));
|
||||
const core = __importStar(__nccwpck_require__(37484));
|
||||
const toml = __importStar(__nccwpck_require__(27106));
|
||||
function getUvVersionFromConfigFile(filePath) {
|
||||
core.debug(`Trying to find required-version for uv in: ${filePath}`);
|
||||
if (!node_fs_1.default.existsSync(filePath)) {
|
||||
core.warning(`Could not find file: ${filePath}`);
|
||||
return undefined;
|
||||
}
|
||||
let requiredVersion;
|
||||
try {
|
||||
requiredVersion = getRequiredVersion(filePath);
|
||||
}
|
||||
catch (err) {
|
||||
const message = err.message;
|
||||
core.warning(`Error while parsing ${filePath}: ${message}`);
|
||||
return undefined;
|
||||
}
|
||||
if (requiredVersion?.startsWith("==")) {
|
||||
requiredVersion = requiredVersion.slice(2);
|
||||
}
|
||||
if (requiredVersion !== undefined) {
|
||||
core.info(`Found required-version for uv in ${filePath}: ${requiredVersion}`);
|
||||
}
|
||||
return requiredVersion;
|
||||
}
|
||||
function getRequiredVersion(filePath) {
|
||||
const fileContent = node_fs_1.default.readFileSync(filePath, "utf-8");
|
||||
if (filePath.endsWith("pyproject.toml")) {
|
||||
const tomlContent = toml.parse(fileContent);
|
||||
return tomlContent?.tool?.uv?.["required-version"];
|
||||
}
|
||||
const tomlContent = toml.parse(fileContent);
|
||||
return tomlContent["required-version"];
|
||||
}
|
||||
|
||||
|
||||
/***/ }),
|
||||
|
||||
/***/ 42078:
|
||||
|
||||
34
dist/update-known-checksums/index.js
generated
vendored
34
dist/update-known-checksums/index.js
generated
vendored
@@ -58847,6 +58847,40 @@ Object.defineProperty(exports, "__esModule", ({ value: true }));
|
||||
exports.KNOWN_CHECKSUMS = void 0;
|
||||
// AUTOGENERATED_DO_NOT_EDIT
|
||||
exports.KNOWN_CHECKSUMS = {
|
||||
"aarch64-apple-darwin-0.6.16": "2b1ea0d5cf27375738f5f0f229587bc3590c0f501cb00bc48133a3d122d28364",
|
||||
"aarch64-pc-windows-msvc-0.6.16": "5abca187b8aecbdffef7547cb39a527168e4cb93d8d2e4ce14271f5831a4d902",
|
||||
"aarch64-unknown-linux-gnu-0.6.16": "a82f96ab5f285825f9acee6ac1563683c4940d80df2f08549cad43d37c7ba4a7",
|
||||
"aarch64-unknown-linux-musl-0.6.16": "ae3f793c62fe6ced80483d6c78cb49f06a01088bc5d86f1446a9b5988b2acecc",
|
||||
"arm-unknown-linux-musleabihf-0.6.16": "91f7f5a4eb97b7983a8e5421d5bfea8802064422ce2f535055f373726eb0aa9a",
|
||||
"armv7-unknown-linux-gnueabihf-0.6.16": "a4ffe043952bf4e757a5ca0f546bb83b055b6ee0646dd5c4f5e5f13dbc5ee8f8",
|
||||
"armv7-unknown-linux-musleabihf-0.6.16": "0237c8d9914e0d9fd2f022d6d5f91ce392d13e0ccbb7fa7ebe601296a67c3d6c",
|
||||
"i686-pc-windows-msvc-0.6.16": "f5c6400f07db2014b2b0c66770e1125fa70efe4dd99cc8351838bed0045c34f8",
|
||||
"i686-unknown-linux-gnu-0.6.16": "f46f89efcc599a6695e8378a1201e62cd4afb9a4438d65a89098ab11201f84ab",
|
||||
"i686-unknown-linux-musl-0.6.16": "afe69380a9d3592a87893d6bdc11ff33e4180b98f1e1fd4e626c0307d7598914",
|
||||
"powerpc64-unknown-linux-gnu-0.6.16": "bf455747580dbbf76cbcf616f67f825c40bd1bdec20c9ff993e03485f9eaad44",
|
||||
"powerpc64le-unknown-linux-gnu-0.6.16": "508ec561b1740a551d2b33e96671e0e8435a1bcc0e97080f3d7ba88a096bd360",
|
||||
"s390x-unknown-linux-gnu-0.6.16": "e25c5527826524f51f114388bff47871bf1ca67badbfd72d45427bdba4b46794",
|
||||
"x86_64-apple-darwin-0.6.16": "ce512b5e40a8ad2916a46df2bdba729d5541e4b3649a09aaddff6e525be012e4",
|
||||
"x86_64-pc-windows-msvc-0.6.16": "f1b4c24ec602b6c0b06b6bc64aa447bbe4cf313e93fbec326741961e80ffa8b7",
|
||||
"x86_64-unknown-linux-gnu-0.6.16": "e9ef28b675df68978a60f87192fb8c730b8bfca9bef42b121686b218ea0f6542",
|
||||
"x86_64-unknown-linux-musl-0.6.16": "25024557931d04cc34f80b818c7547c9c62b762ec6df807e30cb52f383fa2615",
|
||||
"aarch64-apple-darwin-0.6.15": "1c5b25f75c6438b6910dbc4c6903debe53f31ee14aee55d02243dfe7bf7c9f72",
|
||||
"aarch64-pc-windows-msvc-0.6.15": "317fe0b29e647aad1e9f02ffe764dcbbc6e2ef189f018c81b673884173ab98ba",
|
||||
"aarch64-unknown-linux-gnu-0.6.15": "3bf650aec162157b7e01461f41c2a9797366b6043452c6e7035c6c926d0a585b",
|
||||
"aarch64-unknown-linux-musl-0.6.15": "183cebae8c9d91bbd48219f9006a5c0c41c90a075d6724aec53a7ea0503c665a",
|
||||
"arm-unknown-linux-musleabihf-0.6.15": "d83c76e130ffb25fb6a4ba8ea5870207d810190733a14ae87084c63a417912f6",
|
||||
"armv7-unknown-linux-gnueabihf-0.6.15": "d661ec44e5fc7553cd8dd5ad5f48848c5a4d5279ba0df0036c0e2422ec9f312b",
|
||||
"armv7-unknown-linux-musleabihf-0.6.15": "6fc86a829965362f99602c47627b269c9b676731586a60ca5bb9d6069677938d",
|
||||
"i686-pc-windows-msvc-0.6.15": "7f15e3377e94fac882b33465cb8cbb24705f5c8d63d9d65c6f1b0816c1d30a0b",
|
||||
"i686-unknown-linux-gnu-0.6.15": "bfedd03be9f579a9bc10e6c25176017e514cca0500cfb9bba43794387a577661",
|
||||
"i686-unknown-linux-musl-0.6.15": "82bf8666c0a57514af4e5403f162314b710e1682e1065ab71a845ebb5d8db0b7",
|
||||
"powerpc64-unknown-linux-gnu-0.6.15": "6e9795344d61ee9ac497d6e03a447d808f2aab13925f30e44c00638abec57deb",
|
||||
"powerpc64le-unknown-linux-gnu-0.6.15": "e38f13284ed8b645b87ef07c8b549d1f1a5b746aa0411c2115dcd5cda0da13fc",
|
||||
"s390x-unknown-linux-gnu-0.6.15": "416f61249b330ea9735cda0c866c9460f87111bc9d4e040c98916fda6a45be09",
|
||||
"x86_64-apple-darwin-0.6.15": "97adf61511c0f6ea42c090443c38d8d71116b78ae626363f9f149924c91ae886",
|
||||
"x86_64-pc-windows-msvc-0.6.15": "10c75d566db1447f3bdcbcb31d6598e4b5f4ea638be5d8b73a7350929389512b",
|
||||
"x86_64-unknown-linux-gnu-0.6.15": "85d98ef282cdbfcb4020922f0c12421ecca4130f0a4570d3b827a15ffd544acc",
|
||||
"x86_64-unknown-linux-musl-0.6.15": "78289c93836cb32b8b24e3216b5b316e7fdf483365de2fc571844d308387e8a4",
|
||||
"aarch64-apple-darwin-0.6.14": "4ea4731010fbd1bc8e790e07f199f55a5c7c2c732e9b77f85e302b0bee61b756",
|
||||
"aarch64-pc-windows-msvc-0.6.14": "7b0b3367c4060c9b47b961201ceb4252e97496c890ad1bd13c664bf5b0744d57",
|
||||
"aarch64-unknown-linux-gnu-0.6.14": "ea25597354af186bdd55aee0de431e16d45d82951a4f41f065a8e4dc27885265",
|
||||
|
||||
3
src/cache/restore-cache.ts
vendored
3
src/cache/restore-cache.ts
vendored
@@ -5,6 +5,7 @@ import {
|
||||
cacheLocalPath,
|
||||
cacheSuffix,
|
||||
pythonVersion as pythonVersionInput,
|
||||
workingDirectory,
|
||||
} from "../utils/inputs";
|
||||
import { getArch, getPlatform } from "../utils/platforms";
|
||||
import { hashFiles } from "../hash/hash-files";
|
||||
@@ -73,7 +74,7 @@ async function getPythonVersion(): Promise<string> {
|
||||
};
|
||||
|
||||
try {
|
||||
const execArgs = ["python", "find"];
|
||||
const execArgs = ["python", "find", "--directory", workingDirectory];
|
||||
await exec.exec("uv", execArgs, options);
|
||||
const pythonPath = output.trim();
|
||||
|
||||
|
||||
@@ -1,5 +1,73 @@
|
||||
// AUTOGENERATED_DO_NOT_EDIT
|
||||
export const KNOWN_CHECKSUMS: { [key: string]: string } = {
|
||||
"aarch64-apple-darwin-0.6.16":
|
||||
"2b1ea0d5cf27375738f5f0f229587bc3590c0f501cb00bc48133a3d122d28364",
|
||||
"aarch64-pc-windows-msvc-0.6.16":
|
||||
"5abca187b8aecbdffef7547cb39a527168e4cb93d8d2e4ce14271f5831a4d902",
|
||||
"aarch64-unknown-linux-gnu-0.6.16":
|
||||
"a82f96ab5f285825f9acee6ac1563683c4940d80df2f08549cad43d37c7ba4a7",
|
||||
"aarch64-unknown-linux-musl-0.6.16":
|
||||
"ae3f793c62fe6ced80483d6c78cb49f06a01088bc5d86f1446a9b5988b2acecc",
|
||||
"arm-unknown-linux-musleabihf-0.6.16":
|
||||
"91f7f5a4eb97b7983a8e5421d5bfea8802064422ce2f535055f373726eb0aa9a",
|
||||
"armv7-unknown-linux-gnueabihf-0.6.16":
|
||||
"a4ffe043952bf4e757a5ca0f546bb83b055b6ee0646dd5c4f5e5f13dbc5ee8f8",
|
||||
"armv7-unknown-linux-musleabihf-0.6.16":
|
||||
"0237c8d9914e0d9fd2f022d6d5f91ce392d13e0ccbb7fa7ebe601296a67c3d6c",
|
||||
"i686-pc-windows-msvc-0.6.16":
|
||||
"f5c6400f07db2014b2b0c66770e1125fa70efe4dd99cc8351838bed0045c34f8",
|
||||
"i686-unknown-linux-gnu-0.6.16":
|
||||
"f46f89efcc599a6695e8378a1201e62cd4afb9a4438d65a89098ab11201f84ab",
|
||||
"i686-unknown-linux-musl-0.6.16":
|
||||
"afe69380a9d3592a87893d6bdc11ff33e4180b98f1e1fd4e626c0307d7598914",
|
||||
"powerpc64-unknown-linux-gnu-0.6.16":
|
||||
"bf455747580dbbf76cbcf616f67f825c40bd1bdec20c9ff993e03485f9eaad44",
|
||||
"powerpc64le-unknown-linux-gnu-0.6.16":
|
||||
"508ec561b1740a551d2b33e96671e0e8435a1bcc0e97080f3d7ba88a096bd360",
|
||||
"s390x-unknown-linux-gnu-0.6.16":
|
||||
"e25c5527826524f51f114388bff47871bf1ca67badbfd72d45427bdba4b46794",
|
||||
"x86_64-apple-darwin-0.6.16":
|
||||
"ce512b5e40a8ad2916a46df2bdba729d5541e4b3649a09aaddff6e525be012e4",
|
||||
"x86_64-pc-windows-msvc-0.6.16":
|
||||
"f1b4c24ec602b6c0b06b6bc64aa447bbe4cf313e93fbec326741961e80ffa8b7",
|
||||
"x86_64-unknown-linux-gnu-0.6.16":
|
||||
"e9ef28b675df68978a60f87192fb8c730b8bfca9bef42b121686b218ea0f6542",
|
||||
"x86_64-unknown-linux-musl-0.6.16":
|
||||
"25024557931d04cc34f80b818c7547c9c62b762ec6df807e30cb52f383fa2615",
|
||||
"aarch64-apple-darwin-0.6.15":
|
||||
"1c5b25f75c6438b6910dbc4c6903debe53f31ee14aee55d02243dfe7bf7c9f72",
|
||||
"aarch64-pc-windows-msvc-0.6.15":
|
||||
"317fe0b29e647aad1e9f02ffe764dcbbc6e2ef189f018c81b673884173ab98ba",
|
||||
"aarch64-unknown-linux-gnu-0.6.15":
|
||||
"3bf650aec162157b7e01461f41c2a9797366b6043452c6e7035c6c926d0a585b",
|
||||
"aarch64-unknown-linux-musl-0.6.15":
|
||||
"183cebae8c9d91bbd48219f9006a5c0c41c90a075d6724aec53a7ea0503c665a",
|
||||
"arm-unknown-linux-musleabihf-0.6.15":
|
||||
"d83c76e130ffb25fb6a4ba8ea5870207d810190733a14ae87084c63a417912f6",
|
||||
"armv7-unknown-linux-gnueabihf-0.6.15":
|
||||
"d661ec44e5fc7553cd8dd5ad5f48848c5a4d5279ba0df0036c0e2422ec9f312b",
|
||||
"armv7-unknown-linux-musleabihf-0.6.15":
|
||||
"6fc86a829965362f99602c47627b269c9b676731586a60ca5bb9d6069677938d",
|
||||
"i686-pc-windows-msvc-0.6.15":
|
||||
"7f15e3377e94fac882b33465cb8cbb24705f5c8d63d9d65c6f1b0816c1d30a0b",
|
||||
"i686-unknown-linux-gnu-0.6.15":
|
||||
"bfedd03be9f579a9bc10e6c25176017e514cca0500cfb9bba43794387a577661",
|
||||
"i686-unknown-linux-musl-0.6.15":
|
||||
"82bf8666c0a57514af4e5403f162314b710e1682e1065ab71a845ebb5d8db0b7",
|
||||
"powerpc64-unknown-linux-gnu-0.6.15":
|
||||
"6e9795344d61ee9ac497d6e03a447d808f2aab13925f30e44c00638abec57deb",
|
||||
"powerpc64le-unknown-linux-gnu-0.6.15":
|
||||
"e38f13284ed8b645b87ef07c8b549d1f1a5b746aa0411c2115dcd5cda0da13fc",
|
||||
"s390x-unknown-linux-gnu-0.6.15":
|
||||
"416f61249b330ea9735cda0c866c9460f87111bc9d4e040c98916fda6a45be09",
|
||||
"x86_64-apple-darwin-0.6.15":
|
||||
"97adf61511c0f6ea42c090443c38d8d71116b78ae626363f9f149924c91ae886",
|
||||
"x86_64-pc-windows-msvc-0.6.15":
|
||||
"10c75d566db1447f3bdcbcb31d6598e4b5f4ea638be5d8b73a7350929389512b",
|
||||
"x86_64-unknown-linux-gnu-0.6.15":
|
||||
"85d98ef282cdbfcb4020922f0c12421ecca4130f0a4570d3b827a15ffd544acc",
|
||||
"x86_64-unknown-linux-musl-0.6.15":
|
||||
"78289c93836cb32b8b24e3216b5b316e7fdf483365de2fc571844d308387e8a4",
|
||||
"aarch64-apple-darwin-0.6.14":
|
||||
"4ea4731010fbd1bc8e790e07f199f55a5c7c2c732e9b77f85e302b0bee61b756",
|
||||
"aarch64-pc-windows-msvc-0.6.14":
|
||||
|
||||
@@ -14,21 +14,21 @@ import {
|
||||
type Platform,
|
||||
} from "./utils/platforms";
|
||||
import {
|
||||
activateEnvironment as activateEnvironmentInput,
|
||||
cacheLocalPath,
|
||||
checkSum,
|
||||
ignoreEmptyWorkdir,
|
||||
enableCache,
|
||||
githubToken,
|
||||
pyProjectFile,
|
||||
pythonVersion,
|
||||
toolBinDir,
|
||||
toolDir,
|
||||
uvFile,
|
||||
version as versionInput,
|
||||
workingDirectory,
|
||||
} from "./utils/inputs";
|
||||
import * as exec from "@actions/exec";
|
||||
import fs from "node:fs";
|
||||
import { getUvVersionFromConfigFile } from "./utils/pyproject";
|
||||
import { getUvVersionFromConfigFile } from "./utils/config-file";
|
||||
|
||||
async function run(): Promise<void> {
|
||||
detectEmptyWorkdir();
|
||||
@@ -47,7 +47,8 @@ async function run(): Promise<void> {
|
||||
addToolBinToPath();
|
||||
addUvToPathAndOutput(setupResult.uvDir);
|
||||
setToolDir();
|
||||
await setupPython();
|
||||
setupPython();
|
||||
await activateEnvironment();
|
||||
addMatchers();
|
||||
setCacheDir(cacheLocalPath);
|
||||
|
||||
@@ -111,22 +112,21 @@ async function determineVersion(): Promise<string> {
|
||||
if (versionInput !== "") {
|
||||
return await resolveVersion(versionInput, githubToken);
|
||||
}
|
||||
const configFile = uvFile !== "" ? uvFile : pyProjectFile;
|
||||
if (configFile !== "") {
|
||||
const versionFromConfigFile = getUvVersionFromConfigFile(configFile);
|
||||
if (versionFromConfigFile === undefined) {
|
||||
core.warning(
|
||||
`Could not find required-version under [tool.uv] in ${configFile}. Falling back to latest`,
|
||||
);
|
||||
}
|
||||
return await resolveVersion(versionFromConfigFile || "latest", githubToken);
|
||||
const versionFromUvToml = getUvVersionFromConfigFile(
|
||||
`${workingDirectory}${path.sep}uv.toml`,
|
||||
);
|
||||
const versionFromPyproject = getUvVersionFromConfigFile(
|
||||
`${workingDirectory}${path.sep}pyproject.toml`,
|
||||
);
|
||||
if (versionFromUvToml === undefined && versionFromPyproject === undefined) {
|
||||
core.info(
|
||||
"Could not determine uv version from uv.toml or pyproject.toml. Falling back to latest.",
|
||||
);
|
||||
}
|
||||
if (!fs.existsSync("uv.toml") && !fs.existsSync("pyproject.toml")) {
|
||||
return await resolveVersion("latest", githubToken);
|
||||
}
|
||||
const versionFile = fs.existsSync("uv.toml") ? "uv.toml" : "pyproject.toml";
|
||||
const versionFromConfigFile = getUvVersionFromConfigFile(versionFile);
|
||||
return await resolveVersion(versionFromConfigFile || "latest", githubToken);
|
||||
return await resolveVersion(
|
||||
versionFromUvToml || versionFromPyproject || "latest",
|
||||
githubToken,
|
||||
);
|
||||
}
|
||||
|
||||
function addUvToPathAndOutput(cachedPath: string): void {
|
||||
@@ -163,24 +163,29 @@ function setToolDir(): void {
|
||||
}
|
||||
}
|
||||
|
||||
async function setupPython(): Promise<void> {
|
||||
function setupPython(): void {
|
||||
if (pythonVersion !== "") {
|
||||
core.exportVariable("UV_PYTHON", pythonVersion);
|
||||
core.info(`Set UV_PYTHON to ${pythonVersion}`);
|
||||
const options: exec.ExecOptions = {
|
||||
silent: !core.isDebug(),
|
||||
};
|
||||
const execArgs = ["venv", "--python", pythonVersion];
|
||||
}
|
||||
}
|
||||
|
||||
async function activateEnvironment(): Promise<void> {
|
||||
if (activateEnvironmentInput) {
|
||||
const execArgs = ["venv", ".venv", "--directory", workingDirectory];
|
||||
|
||||
core.info("Activating python venv...");
|
||||
await exec.exec("uv", execArgs, options);
|
||||
await exec.exec("uv", execArgs);
|
||||
|
||||
let venvBinPath = ".venv/bin";
|
||||
let venvBinPath = `${workingDirectory}${path.sep}.venv${path.sep}bin`;
|
||||
if (process.platform === "win32") {
|
||||
venvBinPath = ".venv/Scripts";
|
||||
venvBinPath = `${workingDirectory}${path.sep}.venv${path.sep}Scripts`;
|
||||
}
|
||||
core.addPath(path.resolve(venvBinPath));
|
||||
core.exportVariable("VIRTUAL_ENV", path.resolve(".venv"));
|
||||
core.exportVariable(
|
||||
"VIRTUAL_ENV",
|
||||
path.resolve(`${workingDirectory}${path.sep}.venv`),
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -5,9 +5,9 @@ import * as toml from "smol-toml";
|
||||
export function getUvVersionFromConfigFile(
|
||||
filePath: string,
|
||||
): string | undefined {
|
||||
core.debug(`Trying to find required-version for uv in: ${filePath}`);
|
||||
core.info(`Trying to find required-version for uv in: ${filePath}`);
|
||||
if (!fs.existsSync(filePath)) {
|
||||
core.warning(`Could not find file: ${filePath}`);
|
||||
core.info(`Could not find file: ${filePath}`);
|
||||
return undefined;
|
||||
}
|
||||
let requiredVersion: string | undefined;
|
||||
@@ -2,9 +2,9 @@ import * as core from "@actions/core";
|
||||
import path from "node:path";
|
||||
|
||||
export const version = core.getInput("version");
|
||||
export const pyProjectFile = core.getInput("pyproject-file");
|
||||
export const uvFile = core.getInput("uv-file");
|
||||
export const pythonVersion = core.getInput("python-version");
|
||||
export const activateEnvironment = core.getBooleanInput("activate-environment");
|
||||
export const workingDirectory = core.getInput("working-directory");
|
||||
export const checkSum = core.getInput("checksum");
|
||||
export const enableCache = getEnableCache();
|
||||
export const cacheSuffix = core.getInput("cache-suffix") || "";
|
||||
@@ -64,12 +64,18 @@ function getCacheLocalPath(): string {
|
||||
if (cacheLocalPathInput !== "") {
|
||||
return expandTilde(cacheLocalPathInput);
|
||||
}
|
||||
if (process.env.RUNNER_TEMP !== undefined) {
|
||||
return `${process.env.RUNNER_TEMP}${path.sep}setup-uv-cache`;
|
||||
if (process.env.RUNNER_ENVIRONMENT === "github-hosted") {
|
||||
if (process.env.RUNNER_TEMP !== undefined) {
|
||||
return `${process.env.RUNNER_TEMP}${path.sep}setup-uv-cache`;
|
||||
}
|
||||
throw Error(
|
||||
"Could not determine UV_CACHE_DIR. Please make sure RUNNER_TEMP is set or provide the cache-local-path input",
|
||||
);
|
||||
}
|
||||
throw Error(
|
||||
"Could not determine UV_CACHE_DIR. Please make sure RUNNER_TEMP is set or provide the cache-local-path input",
|
||||
);
|
||||
if (process.platform === "win32") {
|
||||
return `${process.env.APPDATA}${path.sep}uv${path.sep}cache`;
|
||||
}
|
||||
return `${process.env.HOME}${path.sep}.cache${path.sep}uv`;
|
||||
}
|
||||
|
||||
function expandTilde(input: string): string {
|
||||
|
||||
Reference in New Issue
Block a user