fix: unexpected behavior while pulling resources (#3789)

fix: unexpected behavior while pulling resources

在 commit 25cfd162f6 中引入新的 pnpm prepare 执行脚本指令,而 prepare 关键字与包管理器的生命周期脚本冲突。导致在运行 Workflow 的时候被执行两次资源拉取,并且被当做生命周期脚本的时候没有携带预期的 \`${{ matrix.target }}\`。这一行为进一步影响 macOS Intel X86 平台上的构建。

所影响的 issues: #3753, #3771
This commit is contained in:
Tunglies
2025-06-18 01:11:33 +08:00
committed by GitHub
Unverified
parent 15d3c765ac
commit a8257e8cb2
11 changed files with 34 additions and 43 deletions

View File

@@ -286,8 +286,7 @@ jobs:
uses: Swatinem/rust-cache@v2
with:
workspaces: src-tauri
cache-all-crates: true
cache-on-failure: true
save-if: false
- name: Install dependencies (ubuntu only)
if: matrix.os == 'ubuntu-22.04'
@@ -308,7 +307,7 @@ jobs:
- name: Pnpm install and check
run: |
pnpm i
pnpm prepare ${{ matrix.target }}
pnpm run prebuild ${{ matrix.target }}
# - name: Release ${{ env.TAG_CHANNEL }} Version
# run: pnpm release-version ${{ env.TAG_NAME }}
@@ -363,7 +362,7 @@ jobs:
uses: Swatinem/rust-cache@v2
with:
workspaces: src-tauri
cache-all-crates: true
save-if: false
- name: Install Node
uses: actions/setup-node@v4
@@ -378,7 +377,7 @@ jobs:
- name: Pnpm install and check
run: |
pnpm i
pnpm prepare ${{ matrix.target }}
pnpm run prebuild ${{ matrix.target }}
# - name: Release ${{ env.TAG_CHANNEL }} Version
# run: pnpm release-version ${{ env.TAG_NAME }}
@@ -491,8 +490,7 @@ jobs:
uses: Swatinem/rust-cache@v2
with:
workspaces: src-tauri
cache-all-crates: true
cache-on-failure: true
save-if: false
- name: Install Node
uses: actions/setup-node@v4
@@ -507,7 +505,7 @@ jobs:
- name: Pnpm install and check
run: |
pnpm i
pnpm prepare ${{ matrix.target }}
pnpm run prebuild ${{ matrix.target }}
# - name: Release ${{ env.TAG_CHANNEL }} Version
# run: pnpm release-version ${{ env.TAG_NAME }}

View File

@@ -183,7 +183,7 @@ jobs:
with:
workspaces: src-tauri
cache-all-crates: true
cache-on-failure: true
save-if: ${{ github.ref == 'refs/heads/dev' }}
- name: Install dependencies (ubuntu only)
if: matrix.os == 'ubuntu-22.04'
@@ -201,13 +201,10 @@ jobs:
with:
run_install: false
- name: Debug matrix
run: echo "target=${{ matrix.target }}"
- name: Pnpm install and check
run: |
pnpm i
node scripts/prepare.js "${{ matrix.target }}"
pnpm run prebuild "${{ matrix.target }}"
- name: Release ${{ env.TAG_CHANNEL }} Version
run: pnpm release-version ${{ env.TAG_NAME }}
@@ -263,6 +260,7 @@ jobs:
with:
workspaces: src-tauri
cache-all-crates: true
save-if: ${{ github.ref == 'refs/heads/dev' }}
- name: Install Node
uses: actions/setup-node@v4
@@ -277,7 +275,7 @@ jobs:
- name: Pnpm install and check
run: |
pnpm i
pnpm prepare ${{ matrix.target }}
pnpm run prebuild ${{ matrix.target }}
- name: Release ${{ env.TAG_CHANNEL }} Version
run: pnpm release-version ${{ env.TAG_NAME }}
@@ -391,7 +389,7 @@ jobs:
with:
workspaces: src-tauri
cache-all-crates: true
cache-on-failure: true
save-if: ${{ github.ref == 'refs/heads/dev' }}
- name: Install Node
uses: actions/setup-node@v4
@@ -406,7 +404,7 @@ jobs:
- name: Pnpm install and check
run: |
pnpm i
pnpm prepare ${{ matrix.target }}
pnpm run prebuild ${{ matrix.target }}
- name: Release ${{ env.TAG_CHANNEL }} Version
run: pnpm release-version ${{ env.TAG_NAME }}

View File

@@ -27,12 +27,11 @@ jobs:
- name: Add Rust Target
run: rustup target add ${{ matrix.target }}
# - name: Rust Cache
# uses: Swatinem/rust-cache@v2
# with:
# workspaces: src-tauri
# cache-all-crates: true
# cache-on-failure: true
- name: Rust Cache
uses: Swatinem/rust-cache@v2
with:
workspaces: src-tauri
save-if: false
- name: Install dependencies (ubuntu only)
if: matrix.os == 'ubuntu-22.04'
@@ -53,7 +52,7 @@ jobs:
- name: Pnpm install and check
run: |
pnpm i
pnpm prepare ${{ matrix.target }}
pnpm run prebuild ${{ matrix.target }}
- name: Build Web Assets
run: pnpm run web:build

View File

@@ -50,14 +50,13 @@ jobs:
- name: Pnpm install and check
run: |
pnpm i
pnpm prepare ${{ matrix.target }}
pnpm run prebuild ${{ matrix.target }}
- name: Rust Cache
uses: Swatinem/rust-cache@v2
with:
workspaces: src-tauri
cache-all-crates: true
cache-on-failure: true
save-if: false
- name: Cargo Check (deny warnings)
working-directory: src-tauri

View File

@@ -42,8 +42,7 @@ jobs:
uses: Swatinem/rust-cache@v2
with:
workspaces: src-tauri
cache-all-crates: true
cache-on-failure: true
save-if: false
- name: Install Node
uses: actions/setup-node@v4
@@ -58,7 +57,7 @@ jobs:
- name: Pnpm install and check
run: |
pnpm i
pnpm prepare ${{ matrix.target }}
pnpm run prebuild ${{ matrix.target }}
- name: Tauri build
uses: tauri-apps/tauri-action@v0

View File

@@ -31,6 +31,8 @@ jobs:
with:
node-version: "lts/*"
cache: "pnpm"
cache-dependency-path: |
pnpm-lock.yaml
- run: pnpm i --frozen-lockfile
- run: pnpm format:check

View File

@@ -73,8 +73,7 @@ jobs:
uses: Swatinem/rust-cache@v2
with:
workspaces: src-tauri
cache-all-crates: true
cache-on-failure: true
save-if: false
- name: Install dependencies (ubuntu only)
if: matrix.os == 'ubuntu-22.04'
@@ -95,7 +94,7 @@ jobs:
- name: Pnpm install and check
run: |
pnpm i
pnpm prepare ${{ matrix.target }}
pnpm run prebuild ${{ matrix.target }}
- name: Tauri build
uses: tauri-apps/tauri-action@v0
@@ -144,7 +143,7 @@ jobs:
uses: Swatinem/rust-cache@v2
with:
workspaces: src-tauri
cache-all-crates: true
save-if: false
- name: Install Node
uses: actions/setup-node@v4
@@ -159,7 +158,7 @@ jobs:
- name: Pnpm install and check
run: |
pnpm i
pnpm prepare ${{ matrix.target }}
pnpm run prebuild ${{ matrix.target }}
- name: "Setup for linux"
run: |-
@@ -263,8 +262,7 @@ jobs:
uses: Swatinem/rust-cache@v2
with:
workspaces: src-tauri
cache-all-crates: true
cache-on-failure: true
save-if: false
- name: Install Node
uses: actions/setup-node@v4
@@ -279,7 +277,7 @@ jobs:
- name: Pnpm install and check
run: |
pnpm i
pnpm prepare ${{ matrix.target }}
pnpm run prebuild ${{ matrix.target }}
- name: Download WebView2 Runtime
run: |

View File

@@ -52,9 +52,9 @@ You have two options for downloading the clash binary:
- Automatically download it via the provided script:
```shell
pnpm run prepare
pnpm run prebuild
# Use '--force' to force update to the latest version
# pnpm run prepare --force
# pnpm run prebuild --force
```
- Manually download it from the [Mihomo release](https://github.com/MetaCubeX/mihomo/releases). After downloading, rename the binary according to the [Tauri configuration](https://tauri.app/v1/api/config#bundleconfig.externalbin).

View File

@@ -11,7 +11,7 @@
"web:dev": "vite",
"web:build": "tsc --noEmit && vite build",
"web:serve": "vite preview",
"prepare": "node scripts/prepare.mjs",
"prebuild": "node scripts/prebuild.mjs",
"updater": "node scripts/updater.mjs",
"updater-fixed-webview2": "node scripts/updater-fixed-webview2.mjs",
"portable": "node scripts/portable.mjs",

View File

@@ -1,5 +1,3 @@
console.log('prepare.mjs argv:', process.argv)
import fs from "fs";
import fsp from "fs/promises";
import zlib from "zlib";

View File

@@ -83,7 +83,7 @@ pub async fn get_profiles() -> CmdResult<IProfiles> {
"所有获取配置策略都失败尝试fallback"
);
match tokio::task::spawn_blocking(move || IProfiles::new()).await {
match tokio::task::spawn_blocking(IProfiles::new).await {
Ok(profiles) => {
logging!(info, Type::Cmd, true, "使用fallback配置成功");
Ok(profiles)