From 51e48c943d55b52048ec2dabdb17585e39379a42 Mon Sep 17 00:00:00 2001 From: fengmk2 Date: Mon, 30 Mar 2026 13:48:52 +0000 Subject: [PATCH 1/2] chore(ci): update GitHub Actions to latest versions (#1212) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - actions/checkout: v6.0.1/v4 → v6.0.2 - actions/setup-node: v5/v6.2.0 → v6.3.0 - oxc-project/setup-node: v1.0.4 → v1.2.0 - oxc-project/setup-rust: v1.0.0/v1.0.2 → v1.0.16 --- .github/actions/build-upstream/action.yml | 18 ++++++--- .github/actions/clone/action.yml | 4 +- .github/workflows/ci.yml | 40 +++++++++---------- .github/workflows/deny.yml | 6 +-- .github/workflows/e2e-test.yml | 14 +++---- .github/workflows/release.yml | 12 +++--- .github/workflows/test-standalone-install.yml | 16 ++++---- .github/workflows/upgrade-deps.yml | 6 +-- .github/workflows/zizmor.yml | 2 +- packages/tools/src/install-global-cli.ts | 36 +++++++++++------ 10 files changed, 85 insertions(+), 69 deletions(-) diff --git a/.github/actions/build-upstream/action.yml b/.github/actions/build-upstream/action.yml index 4b0342d406..242c2fb164 100644 --- a/.github/actions/build-upstream/action.yml +++ b/.github/actions/build-upstream/action.yml @@ -27,6 +27,12 @@ runs: run: | echo "key=napi-binding-v3-${{ inputs.target }}-${{ env.RELEASE_BUILD }}-${{ env.DEBUG }}-${{ env.VERSION }}-${{ env.NPM_TAG }}-${{ hashFiles('packages/tools/.upstream-versions.json', 'Cargo.lock', 'crates/**/*.rs', 'crates/*/Cargo.toml', 'packages/cli/binding/**/*.rs', 'packages/cli/binding/Cargo.toml', 'Cargo.toml', '.cargo/config.toml', 'packages/cli/package.json', 'packages/cli/build.ts') }}" >> $GITHUB_OUTPUT + # Resolve the Rust target directory (CARGO_TARGET_DIR from setup-rust, or default "target") + - name: Resolve Rust target directory + id: rust-target + shell: bash + run: echo "dir=${CARGO_TARGET_DIR:-target}" >> $GITHUB_OUTPUT + # Cache NAPI bindings and Rust CLI binary (the slow parts, especially on Windows) - name: Restore NAPI binding cache id: cache-restore @@ -38,9 +44,9 @@ runs: packages/cli/binding/index.d.ts packages/cli/binding/index.cjs packages/cli/binding/index.d.cts - target/${{ inputs.target }}/release/vp - target/${{ inputs.target }}/release/vp.exe - target/${{ inputs.target }}/release/vp-shim.exe + ${{ steps.rust-target.outputs.dir }}/${{ inputs.target }}/release/vp + ${{ steps.rust-target.outputs.dir }}/${{ inputs.target }}/release/vp.exe + ${{ steps.rust-target.outputs.dir }}/${{ inputs.target }}/release/vp-shim.exe key: ${{ steps.cache-key.outputs.key }} # Apply Vite+ branding patches to vite source (CI checks out @@ -147,9 +153,9 @@ runs: packages/cli/binding/index.d.ts packages/cli/binding/index.cjs packages/cli/binding/index.d.cts - target/${{ inputs.target }}/release/vp - target/${{ inputs.target }}/release/vp.exe - target/${{ inputs.target }}/release/vp-shim.exe + ${{ steps.rust-target.outputs.dir }}/${{ inputs.target }}/release/vp + ${{ steps.rust-target.outputs.dir }}/${{ inputs.target }}/release/vp.exe + ${{ steps.rust-target.outputs.dir }}/${{ inputs.target }}/release/vp-shim.exe key: ${{ steps.cache-key.outputs.key }} # Build vite-plus TypeScript after native bindings are ready diff --git a/.github/actions/clone/action.yml b/.github/actions/clone/action.yml index 8c98b3147f..c10333217d 100644 --- a/.github/actions/clone/action.yml +++ b/.github/actions/clone/action.yml @@ -31,13 +31,13 @@ runs: node -e "console.log('ECOSYSTEM_CI_PROJECT_REPOSITORY=' + require('./ecosystem-ci/repo.json')['${{ inputs.ecosystem-ci-project }}'].repository.replace('https://github.com/', '').replace('.git', ''))" >> $GITHUB_OUTPUT echo "ECOSYSTEM_CI_PROJECT_PATH=${{ runner.temp }}/vite-plus-ecosystem-ci/${{ inputs.ecosystem-ci-project }}" >> $GITHUB_OUTPUT - - uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1 + - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 with: repository: rolldown/rolldown path: rolldown ref: ${{ steps.upstream-versions.outputs.ROLLDOWN_HASH }} - - uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1 + - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 with: repository: vitejs/vite path: vite diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index b66460c4ab..7a8885c4d4 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -44,7 +44,7 @@ jobs: outputs: code-changed: ${{ steps.filter.outputs.code }} steps: - - uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1 + - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2 id: filter with: @@ -60,7 +60,7 @@ jobs: contents: read packages: read steps: - - uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1 + - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - uses: ./.github/actions/download-rolldown-binaries with: github-token: ${{ secrets.GITHUB_TOKEN }} @@ -80,7 +80,7 @@ jobs: target: aarch64-apple-darwin runs-on: ${{ matrix.os }} steps: - - uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1 + - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - uses: ./.github/actions/clone - name: Setup Dev Drive @@ -93,7 +93,7 @@ jobs: CARGO_HOME,{{ DEV_DRIVE }}/.cargo RUSTUP_HOME,{{ DEV_DRIVE }}/.rustup - - uses: oxc-project/setup-rust@d286d43bc1f606abbd98096666ff8be68c8d5f57 # v1.0.0 + - uses: oxc-project/setup-rust@23f38cfb0c04af97a055f76acee94d5be71c7c82 # v1.0.16 with: save-cache: ${{ github.ref_name == 'main' }} cache-key: test @@ -126,7 +126,7 @@ jobs: shell: sh {0} run: apk add --no-cache bash curl git musl-dev gcc g++ python3 cmake make - - uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1 + - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - uses: ./.github/actions/clone - name: Install rustup @@ -152,10 +152,10 @@ jobs: name: Lint runs-on: namespace-profile-linux-x64-default steps: - - uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1 + - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - uses: ./.github/actions/clone - - uses: oxc-project/setup-rust@d286d43bc1f606abbd98096666ff8be68c8d5f57 # v1.0.0 + - uses: oxc-project/setup-rust@23f38cfb0c04af97a055f76acee94d5be71c7c82 # v1.0.16 with: save-cache: ${{ github.ref_name == 'main' }} cache-key: lint @@ -172,7 +172,7 @@ jobs: with: files: . - - uses: oxc-project/setup-node@fdbf0dfd334c4e6d56ceeb77d91c76339c2a0885 # v1.0.4 + - uses: oxc-project/setup-node@4c26e7cb3605b6bdef5450dacd02c434b10fd8ba # v1.2.0 - name: Install docs dependencies run: pnpm -C docs install --frozen-lockfile @@ -196,7 +196,7 @@ jobs: target: x86_64-pc-windows-msvc runs-on: ${{ matrix.os }} steps: - - uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1 + - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - uses: ./.github/actions/clone - name: Setup Dev Drive @@ -209,13 +209,13 @@ jobs: CARGO_HOME,{{ DEV_DRIVE }}/.cargo RUSTUP_HOME,{{ DEV_DRIVE }}/.rustup - - uses: oxc-project/setup-rust@d286d43bc1f606abbd98096666ff8be68c8d5f57 # v1.0.0 + - uses: oxc-project/setup-rust@23f38cfb0c04af97a055f76acee94d5be71c7c82 # v1.0.16 with: save-cache: ${{ github.ref_name == 'main' }} cache-key: cli-e2e-test-${{ matrix.target }} target-dir: ${{ runner.os == 'Windows' && format('{0}/target', env.DEV_DRIVE) || '' }} - - uses: oxc-project/setup-node@fdbf0dfd334c4e6d56ceeb77d91c76339c2a0885 # v1.0.4 + - uses: oxc-project/setup-node@4c26e7cb3605b6bdef5450dacd02c434b10fd8ba # v1.2.0 - name: Install docs dependencies run: pnpm -C docs install --frozen-lockfile @@ -608,7 +608,7 @@ jobs: shardTotal: 3 runs-on: ${{ matrix.os }} steps: - - uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1 + - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - uses: ./.github/actions/clone - name: Setup Dev Drive @@ -621,13 +621,13 @@ jobs: CARGO_HOME,{{ DEV_DRIVE }}/.cargo RUSTUP_HOME,{{ DEV_DRIVE }}/.rustup - - uses: oxc-project/setup-rust@d286d43bc1f606abbd98096666ff8be68c8d5f57 # v1.0.0 + - uses: oxc-project/setup-rust@23f38cfb0c04af97a055f76acee94d5be71c7c82 # v1.0.16 with: save-cache: ${{ github.ref_name == 'main' }} cache-key: cli-snap-test-${{ matrix.target }} target-dir: ${{ runner.os == 'Windows' && format('{0}/target', env.DEV_DRIVE) || '' }} - - uses: oxc-project/setup-node@fdbf0dfd334c4e6d56ceeb77d91c76339c2a0885 # v1.0.4 + - uses: oxc-project/setup-node@4c26e7cb3605b6bdef5450dacd02c434b10fd8ba # v1.2.0 - name: Install docs dependencies run: pnpm -C docs install --frozen-lockfile @@ -666,15 +666,15 @@ jobs: - download-previous-rolldown-binaries runs-on: namespace-profile-linux-x64-default steps: - - uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1 + - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - uses: ./.github/actions/clone - - uses: oxc-project/setup-rust@d286d43bc1f606abbd98096666ff8be68c8d5f57 # v1.0.0 + - uses: oxc-project/setup-rust@23f38cfb0c04af97a055f76acee94d5be71c7c82 # v1.0.16 with: save-cache: ${{ github.ref_name == 'main' }} cache-key: cli-e2e-test-musl - - uses: oxc-project/setup-node@fdbf0dfd334c4e6d56ceeb77d91c76339c2a0885 # v1.0.4 + - uses: oxc-project/setup-node@4c26e7cb3605b6bdef5450dacd02c434b10fd8ba # v1.2.0 - uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4.3.0 with: @@ -745,15 +745,15 @@ jobs: github.event_name != 'pull_request' || contains(github.event.pull_request.labels.*.name, 'test: install-e2e') steps: - - uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1 + - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - uses: ./.github/actions/clone - - uses: oxc-project/setup-rust@d286d43bc1f606abbd98096666ff8be68c8d5f57 # v1.0.0 + - uses: oxc-project/setup-rust@23f38cfb0c04af97a055f76acee94d5be71c7c82 # v1.0.16 with: save-cache: ${{ github.ref_name == 'main' }} cache-key: install-e2e-test - - uses: oxc-project/setup-node@fdbf0dfd334c4e6d56ceeb77d91c76339c2a0885 # v1.0.4 + - uses: oxc-project/setup-node@4c26e7cb3605b6bdef5450dacd02c434b10fd8ba # v1.2.0 - uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4.3.0 with: diff --git a/.github/workflows/deny.yml b/.github/workflows/deny.yml index b06f5a0b45..cd551f041c 100644 --- a/.github/workflows/deny.yml +++ b/.github/workflows/deny.yml @@ -27,7 +27,7 @@ jobs: name: Cargo Deny runs-on: ubuntu-latest steps: - - uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1 + - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 with: persist-credentials: false @@ -35,13 +35,13 @@ jobs: id: upstream-versions run: node -e "console.log('ROLLDOWN_HASH=' + require('./packages/tools/.upstream-versions.json').rolldown.hash)" >> $GITHUB_OUTPUT - - uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1 + - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 with: repository: rolldown/rolldown path: rolldown ref: ${{ steps.upstream-versions.outputs.ROLLDOWN_HASH }} - - uses: oxc-project/setup-rust@d286d43bc1f606abbd98096666ff8be68c8d5f57 # v1.0.0 + - uses: oxc-project/setup-rust@23f38cfb0c04af97a055f76acee94d5be71c7c82 # v1.0.16 with: restore-cache: false # Pinned to 0.18.6+ for CVSS 4.0 support (EmbarkStudios/cargo-deny#805) diff --git a/.github/workflows/e2e-test.yml b/.github/workflows/e2e-test.yml index e80ef8b0ee..147a8ba3ec 100644 --- a/.github/workflows/e2e-test.yml +++ b/.github/workflows/e2e-test.yml @@ -32,7 +32,7 @@ jobs: outputs: related-files-changed: ${{ steps.filter.outputs.related-files }} steps: - - uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1 + - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2 id: filter with: @@ -55,7 +55,7 @@ jobs: contents: read packages: read steps: - - uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1 + - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - uses: ./.github/actions/download-rolldown-binaries with: github-token: ${{ secrets.GITHUB_TOKEN }} @@ -77,7 +77,7 @@ jobs: - os: windows-latest target: x86_64-pc-windows-msvc steps: - - uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1 + - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - uses: ./.github/actions/clone # Disable Windows Defender real-time scanning to speed up I/O-heavy builds (~30-50% faster) @@ -86,12 +86,12 @@ jobs: shell: powershell run: Set-MpPreference -DisableRealtimeMonitoring $true - - uses: oxc-project/setup-rust@d286d43bc1f606abbd98096666ff8be68c8d5f57 # v1.0.0 + - uses: oxc-project/setup-rust@23f38cfb0c04af97a055f76acee94d5be71c7c82 # v1.0.16 with: save-cache: ${{ github.ref_name == 'main' }} cache-key: e2e-build-${{ matrix.os }} - - uses: oxc-project/setup-node@fdbf0dfd334c4e6d56ceeb77d91c76339c2a0885 # v1.0.4 + - uses: oxc-project/setup-node@4c26e7cb3605b6bdef5450dacd02c434b10fd8ba # v1.2.0 - uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4.3.0 with: @@ -322,7 +322,7 @@ jobs: name: npmx.dev steps: - - uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1 + - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - uses: ./.github/actions/clone with: ecosystem-ci-project: ${{ matrix.project.name }} @@ -333,7 +333,7 @@ jobs: shell: powershell run: Set-MpPreference -DisableRealtimeMonitoring $true - - uses: actions/setup-node@a0853c24544627f65ddf259abe73b1d18a591444 # v5 + - uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6.3.0 with: node-version: ${{ matrix.project.node-version }} package-manager-cache: false diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index bf4b2c6b58..2a923f6b3f 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -32,7 +32,7 @@ jobs: outputs: version: ${{ steps.version.outputs.version }} steps: - - uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1 + - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 with: fetch-depth: 0 fetch-tags: true @@ -74,10 +74,10 @@ jobs: - target: aarch64-pc-windows-msvc os: windows-latest steps: - - uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1 + - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - uses: ./.github/actions/clone - uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4.3.0 - - uses: oxc-project/setup-rust@d286d43bc1f606abbd98096666ff8be68c8d5f57 # v1.0.2 + - uses: oxc-project/setup-rust@23f38cfb0c04af97a055f76acee94d5be71c7c82 # v1.0.16 with: save-cache: ${{ github.ref_name == 'main' }} cache-key: release @@ -85,7 +85,7 @@ jobs: - name: Rustup Adds Target run: rustup target add ${{ matrix.settings.target }} - - uses: oxc-project/setup-node@fdbf0dfd334c4e6d56ceeb77d91c76339c2a0885 # v1.0.4 + - uses: oxc-project/setup-node@4c26e7cb3605b6bdef5450dacd02c434b10fd8ba # v1.2.0 - name: Set binding version shell: bash @@ -170,12 +170,12 @@ jobs: env: VERSION: ${{ needs.prepare.outputs.version }} steps: - - uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1 + - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - uses: ./.github/actions/clone - uses: pnpm/action-setup@41ff72655975bd51cab0327fa583b6e92b6d3061 # v4.2.0 - - uses: actions/setup-node@6044e13b5dc448c55e2357c09f80417699197238 # v6.2.0 + - uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6.3.0 with: node-version-file: .node-version package-manager-cache: false diff --git a/.github/workflows/test-standalone-install.yml b/.github/workflows/test-standalone-install.yml index 2149b3b6ba..9e3d29c1cd 100644 --- a/.github/workflows/test-standalone-install.yml +++ b/.github/workflows/test-standalone-install.yml @@ -38,7 +38,7 @@ jobs: - os: macos-latest name: macOS ARM64 steps: - - uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1 + - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - name: Run install.sh run: cat packages/cli/install.sh | bash @@ -120,7 +120,7 @@ jobs: permissions: contents: read steps: - - uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1 + - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - name: Make shell config files read-only run: | @@ -155,7 +155,7 @@ jobs: permissions: contents: read steps: - - uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1 + - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - name: Set up QEMU uses: docker/setup-qemu-action@29109295f81e9208d7d86ff1c6c12d2833863392 # v3.6.0 @@ -219,7 +219,7 @@ jobs: permissions: contents: read steps: - - uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1 + - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - name: Run install.sh in Alpine container run: | @@ -272,7 +272,7 @@ jobs: permissions: contents: read steps: - - uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1 + - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - name: Set up QEMU uses: docker/setup-qemu-action@29109295f81e9208d7d86ff1c6c12d2833863392 # v3.6.0 @@ -331,7 +331,7 @@ jobs: permissions: contents: read steps: - - uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1 + - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - name: Assert PowerShell 5.x shell: powershell @@ -413,7 +413,7 @@ jobs: permissions: contents: read steps: - - uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1 + - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - name: Run install.ps1 shell: pwsh @@ -480,7 +480,7 @@ jobs: permissions: contents: read steps: - - uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1 + - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - name: Run install.ps1 shell: pwsh diff --git a/.github/workflows/upgrade-deps.yml b/.github/workflows/upgrade-deps.yml index 0b6821a69a..00fa8aea3a 100644 --- a/.github/workflows/upgrade-deps.yml +++ b/.github/workflows/upgrade-deps.yml @@ -16,16 +16,16 @@ jobs: actions: read id-token: write steps: - - uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1 + - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - uses: ./.github/actions/clone - - uses: oxc-project/setup-rust@d286d43bc1f606abbd98096666ff8be68c8d5f57 # v1.0.0 + - uses: oxc-project/setup-rust@23f38cfb0c04af97a055f76acee94d5be71c7c82 # v1.0.16 with: save-cache: ${{ github.ref_name == 'main' }} cache-key: upgrade-deps tools: just,cargo-shear - - uses: oxc-project/setup-node@fdbf0dfd334c4e6d56ceeb77d91c76339c2a0885 # v1.0.4 + - uses: oxc-project/setup-node@4c26e7cb3605b6bdef5450dacd02c434b10fd8ba # v1.2.0 - name: Rustup Adds Target run: rustup target add x86_64-unknown-linux-gnu diff --git a/.github/workflows/zizmor.yml b/.github/workflows/zizmor.yml index 476977bc92..c7c603d530 100644 --- a/.github/workflows/zizmor.yml +++ b/.github/workflows/zizmor.yml @@ -23,7 +23,7 @@ jobs: security-events: write steps: - name: Checkout repository - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4 + uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 with: persist-credentials: false submodules: true diff --git a/packages/tools/src/install-global-cli.ts b/packages/tools/src/install-global-cli.ts index 3d6d7f75e5..de9a48c1b8 100644 --- a/packages/tools/src/install-global-cli.ts +++ b/packages/tools/src/install-global-cli.ts @@ -84,7 +84,7 @@ export function installGlobalCli() { const binaryName = isWindows ? 'vp.exe' : 'vp'; const binaryPath = findVpBinary(binaryName); if (!binaryPath) { - console.error(`Error: vp binary not found in ${path.join(repoRoot, 'target')}`); + console.error(`Error: vp binary not found in ${getTargetDirs().join(', ')}`); console.error('Run "cargo build -p vite_global_cli --release" first.'); process.exit(1); } @@ -161,23 +161,33 @@ export function installGlobalCli() { } } +// Returns target directories to search, with CARGO_TARGET_DIR (e.g., Windows Dev Drive) first if set. +function getTargetDirs(): string[] { + const dirs = [path.join(repoRoot, 'target')]; + if (process.env.CARGO_TARGET_DIR) { + dirs.unshift(process.env.CARGO_TARGET_DIR); + } + return dirs; +} + // Find the vp binary in the target directory. // Checks target/release/ first (local builds), then target//release/ (cross-compiled CI builds). function findVpBinary(binaryName: string) { - // 1. Direct release build: target/release/vp - const directPath = path.join(repoRoot, 'target', 'release', binaryName); - if (existsSync(directPath)) { - return directPath; - } + for (const targetDir of getTargetDirs()) { + const directPath = path.join(targetDir, 'release', binaryName); + if (existsSync(directPath)) { + return directPath; + } - // 2. Cross-compiled build: target//release/vp (CI builds with --target) - const targetDir = path.join(repoRoot, 'target'); - if (existsSync(targetDir)) { - for (const entry of readdirSync(targetDir)) { - const crossPath = path.join(targetDir, entry, 'release', binaryName); - if (existsSync(crossPath)) { - return crossPath; + try { + for (const entry of readdirSync(targetDir)) { + const crossPath = path.join(targetDir, entry, 'release', binaryName); + if (existsSync(crossPath)) { + return crossPath; + } } + } catch { + // Directory doesn't exist, continue to next } } From bf6a0dded88de4ec025914d20c73feca4f952e42 Mon Sep 17 00:00:00 2001 From: MK Date: Mon, 30 Mar 2026 22:13:17 +0800 Subject: [PATCH 2/2] fix(ci): retry vp implode on Windows to handle transient file locks Windows file locks can cause "Access is denied" errors during vp implode. Add retry logic (up to 3 attempts, 5s wait) to all three implode test variants (bash, powershell, cmd), Windows-only. --- .github/workflows/ci.yml | 28 +++++++++++++++++++++++++--- 1 file changed, 25 insertions(+), 3 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 7a8885c4d4..2641d05f79 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -521,7 +521,16 @@ jobs: - name: Test implode (bash) shell: bash run: | - vp implode --yes + # Retry on Windows — file locks can cause transient "Access is denied" errors + if [[ "$RUNNER_OS" == "Windows" ]]; then + for i in 1 2 3; do + vp implode --yes && break + echo "Retry $i: vp implode failed, waiting 5s..." + sleep 5 + done + else + vp implode --yes + fi ls -la ~/ VP_HOME="${USERPROFILE:-$HOME}/.vite-plus" if [ -d "$VP_HOME" ]; then @@ -536,7 +545,13 @@ jobs: if: ${{ matrix.os == 'windows-latest' }} shell: pwsh run: | - vp implode --yes + # Retry — Windows file locks can cause transient "Access is denied" errors + foreach ($i in 1..3) { + vp implode --yes + if ($LASTEXITCODE -eq 0) { break } + Write-Host "Retry $i`: vp implode failed, waiting 5s..." + Start-Sleep -Seconds 5 + } Start-Sleep -Seconds 5 dir "$env:USERPROFILE\" if (Test-Path "$env:USERPROFILE\.vite-plus") { @@ -550,9 +565,16 @@ jobs: if: ${{ matrix.os == 'windows-latest' }} shell: cmd run: | + REM Retry — Windows file locks can cause transient "Access is denied" errors REM vp.exe renames its own parent directory; cmd.exe may report REM "The system cannot find the path specified" on exit — ignore it. - vp implode --yes || ver >NUL + for /L %%i in (1,1,3) do ( + vp implode --yes || ver >NUL + if not exist "%USERPROFILE%\.vite-plus" goto implode_done + echo Retry %%i: vp implode failed, waiting 5s... + timeout /T 5 /NOBREAK >NUL + ) + :implode_done timeout /T 5 /NOBREAK >NUL dir "%USERPROFILE%\" if exist "%USERPROFILE%\.vite-plus" (