From 50d654e3c5ceb933140fb9a08c4710480db77fbb Mon Sep 17 00:00:00 2001 From: pollenjp Date: Sat, 30 Nov 2024 01:46:41 +0900 Subject: [PATCH] Add uv-cache-hit and test CI --- .github/workflows/test.yml | 27 ++++++++++++++++++++------- action.yml | 2 ++ dist/setup/index.js | 2 ++ src/setup-uv.ts | 2 ++ 4 files changed, 26 insertions(+), 7 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index e62fc62..960ec98 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -35,6 +35,25 @@ jobs: uses: ./ - run: uv sync working-directory: __tests__/fixtures/uv-project + test-default-version-cache: # https://github.com/astral-sh/setup-uv/issues/171 + runs-on: ${{ matrix.os }} + strategy: + matrix: + os: [ubuntu-latest, macos-latest, macos-14] + steps: + - uses: actions/checkout@v4 + - name: Install latest version + uses: ./ + - name: Verify cache hit + id: re-setup-uv + uses: ./ + - name: Verify uv cache hit + run: | + if [ "$UV_CACHE_HIT" != "true" ]; then + exit 1 + fi + env: + UV_CACHE_HIT: ${{ steps.re-setup-uv.outputs.uv-cache-hit }} test-specific-version: runs-on: ubuntu-latest strategy: @@ -105,13 +124,7 @@ jobs: runs-on: ${{ matrix.os }} strategy: matrix: - os: - [ - ubuntu-latest, - macos-latest, - macos-14, - windows-latest, - ] + os: [ubuntu-latest, macos-latest, macos-14, windows-latest] steps: - uses: actions/checkout@v4 - name: Install default version diff --git a/action.yml b/action.yml index fbe7e34..7dc5612 100644 --- a/action.yml +++ b/action.yml @@ -47,6 +47,8 @@ inputs: outputs: uv-version: description: "The installed uv version. Useful when using latest." + uv-cache-hit: + description: "A boolean value to indicate a cache entry for uv was found" cache-hit: description: "A boolean value to indicate a cache entry was found" runs: diff --git a/dist/setup/index.js b/dist/setup/index.js index ac48421..30db9fd 100644 --- a/dist/setup/index.js +++ b/dist/setup/index.js @@ -90010,8 +90010,10 @@ function setupUv(platform, arch, versionInput, checkSum, githubToken) { const toolCacheResult = (0, download_version_1.tryGetFromToolCache)(arch, resolvedVersion); if (toolCacheResult.installedPath) { core.info(`Found uv in tool-cache for ${resolvedVersion}`); + core.setOutput("uv-cache-hit", true); return { uvDir: toolCacheResult.installedPath, version: resolvedVersion }; } + core.setOutput("uv-cache-hit", false); const versionResult = yield (0, download_version_1.downloadVersion)(platform, arch, resolvedVersion, checkSum, githubToken); return { uvDir: versionResult.cachedToolDir, version: versionResult.version }; }); diff --git a/src/setup-uv.ts b/src/setup-uv.ts index 40e1e3a..3cc2337 100644 --- a/src/setup-uv.ts +++ b/src/setup-uv.ts @@ -80,8 +80,10 @@ async function setupUv( const toolCacheResult = tryGetFromToolCache(arch, resolvedVersion); if (toolCacheResult.installedPath) { core.info(`Found uv in tool-cache for ${resolvedVersion}`); + core.setOutput("uv-cache-hit", true); return { uvDir: toolCacheResult.installedPath, version: resolvedVersion }; } + core.setOutput("uv-cache-hit", false); const versionResult = await downloadVersion( platform,