mirror of
https://github.com/clash-verge-rev/clash-verge-rev.git
synced 2026-10-29 18:12:10 +08:00
The paths-filter output in lint-clippy.yml only gated two echo steps; checkout, toolchain setup and clippy itself ran unconditionally, so frontend-only PRs still burned a 3-runner matrix on a full clippy build plus the logging-check tool install. - lint-clippy/rustfmt/frontend-check: move path filters to workflow level so irrelevant PRs spawn no runner at all - split contract-parity into its own workflow; its trigger set spans both sides and workflow paths cannot vary per job - clippy paths now cover crates/** and workspace Cargo files, which the old src-tauri/** filter missed dev has no required status checks, so path-filtered workflows cannot get stuck in "Expected".
81 lines
2.1 KiB
YAML
81 lines
2.1 KiB
YAML
name: Contract Parity
|
|
|
|
on:
|
|
pull_request:
|
|
paths:
|
|
- "src-tauri/**/*.rs"
|
|
- "crates/**/*.rs"
|
|
- "Cargo.toml"
|
|
- "Cargo.lock"
|
|
- "src-tauri/Cargo.toml"
|
|
- "crates/**/Cargo.toml"
|
|
- "rust-toolchain.toml"
|
|
- "src-tauri/tauri.conf*.json"
|
|
- "src/services/bindings.ts"
|
|
- "scripts/gen-contract.mjs"
|
|
- "scripts/check-contract-changes.mjs"
|
|
- "biome.json"
|
|
- "biome.jsonc"
|
|
- "package.json"
|
|
- "pnpm-lock.yaml"
|
|
- "pnpm-workspace.yaml"
|
|
- "scripts/contract-inputs.json"
|
|
- ".github/workflows/contract-parity.yml"
|
|
- ".husky/pre-push"
|
|
workflow_dispatch:
|
|
|
|
permissions:
|
|
contents: read
|
|
|
|
env:
|
|
HUSKY: 0
|
|
|
|
jobs:
|
|
contract-parity:
|
|
runs-on: ubuntu-26.04
|
|
steps:
|
|
- uses: actions/checkout@v7
|
|
|
|
- name: Install Rust Stable
|
|
uses: dtolnay/rust-toolchain@master
|
|
with:
|
|
toolchain: stable
|
|
|
|
- name: Rust Cache
|
|
uses: Swatinem/rust-cache@v2
|
|
with:
|
|
prefix-key: 'v1-rust'
|
|
key: 'rust-shared-stable-ubuntu-22.04-x86_64-unknown-linux-gnu-contract'
|
|
workspaces: |
|
|
. -> target
|
|
cache-all-crates: true
|
|
cache-workspace-crates: true
|
|
|
|
- name: Install dependencies
|
|
run: |
|
|
sudo apt-get update
|
|
sudo apt-get install -y libxslt1.1 libwebkit2gtk-4.1-dev libayatana-appindicator3-dev librsvg2-dev patchelf
|
|
|
|
- name: Install pnpm
|
|
uses: pnpm/action-setup@v6
|
|
with:
|
|
run_install: false
|
|
|
|
- uses: actions/setup-node@v7
|
|
with:
|
|
node-version: '24.22.1'
|
|
cache: 'pnpm'
|
|
|
|
- run: pnpm install --frozen-lockfile
|
|
|
|
- name: Provision sidecar placeholders for tauri-build
|
|
run: |
|
|
mkdir -p src-tauri/sidecar src-tauri/resources dist
|
|
touch dist/index.html
|
|
for bin in clash-verge-service clash-verge-service-install clash-verge-service-uninstall verge-mihomo verge-mihomo-alpha; do
|
|
touch "src-tauri/sidecar/${bin}-x86_64-unknown-linux-gnu"
|
|
done
|
|
|
|
- name: Check generated contract without changing the checkout
|
|
run: pnpm gen:contract --check
|