From ecdeadfe1e7a68c4b8167fc9fbe079ad4b7a2837 Mon Sep 17 00:00:00 2001 From: Tunglies <77394545+Tunglies@users.noreply.github.com> Date: Mon, 29 Sep 2025 20:11:55 +0800 Subject: [PATCH] feat: enhance CI workflows with paths filtering for Rust and web changes --- .github/workflows/fmt.yml | 41 ++++++++++++++++++++++++++++++- .github/workflows/lint-clippy.yml | 16 ++++++++++++ src-tauri/Cargo.lock | 38 ++++++++++++++-------------- 3 files changed, 76 insertions(+), 19 deletions(-) diff --git a/.github/workflows/fmt.yml b/.github/workflows/fmt.yml index 3320cba1..5ec2ca9a 100644 --- a/.github/workflows/fmt.yml +++ b/.github/workflows/fmt.yml @@ -10,28 +10,67 @@ on: jobs: rustfmt: runs-on: ubuntu-latest - steps: - uses: actions/checkout@v4 + - name: Check Rust changes + id: check_rust + uses: dorny/paths-filter@v3 + with: + filters: | + rust: + - 'src-tauri/**' + - '**/*.rs' + + - name: Skip if no Rust changes + if: steps.check_rust.outputs.rust != 'true' + run: echo "No Rust changes, skipping rustfmt." + - name: install Rust stable and rustfmt + if: steps.check_rust.outputs.rust == 'true' uses: dtolnay/rust-toolchain@stable with: components: rustfmt - name: run cargo fmt + if: steps.check_rust.outputs.rust == 'true' run: cargo fmt --manifest-path ./src-tauri/Cargo.toml --all -- --check prettier: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 + + - name: Check Web changes + id: check_web + uses: dorny/paths-filter@v3 + with: + filters: | + web: + - 'src/**' + - '**/*.js' + - '**/*.ts' + - '**/*.tsx' + - '**/*.css' + - '**/*.scss' + - '**/*.json' + - '**/*.md' + - '**/*.json' + + - name: Skip if no Web changes + if: steps.check_web.outputs.web != 'true' + run: echo "No web changes, skipping prettier." + - uses: actions/setup-node@v4 + if: steps.check_web.outputs.web == 'true' with: node-version: "lts/*" - run: corepack enable + if: steps.check_web.outputs.web == 'true' - run: pnpm install --frozen-lockfile + if: steps.check_web.outputs.web == 'true' - run: pnpm format:check + if: steps.check_web.outputs.web == 'true' # taplo: # name: taplo (.toml files) diff --git a/.github/workflows/lint-clippy.yml b/.github/workflows/lint-clippy.yml index 1161faa5..6bc0bf33 100644 --- a/.github/workflows/lint-clippy.yml +++ b/.github/workflows/lint-clippy.yml @@ -19,6 +19,22 @@ jobs: runs-on: ${{ matrix.os }} steps: + - name: Check src-tauri changes + id: check_changes + uses: dorny/paths-filter@v3 + with: + filters: | + rust: + - 'src-tauri/**' + + - name: Skip if src-tauri not changed + if: steps.check_changes.outputs.rust != 'true' + run: echo "No src-tauri changes, skipping clippy lint." + + - name: Continue if src-tauri changed + if: steps.check_changes.outputs.rust == 'true' + run: echo "src-tauri changed, running clippy lint." + - name: Checkout Repository uses: actions/checkout@v4 diff --git a/src-tauri/Cargo.lock b/src-tauri/Cargo.lock index 4e143907..ca49513d 100644 --- a/src-tauri/Cargo.lock +++ b/src-tauri/Cargo.lock @@ -2223,9 +2223,9 @@ dependencies = [ [[package]] name = "flexi_logger" -version = "0.31.3" +version = "0.31.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce93582299e89591bcb298db76e75498a9372eaef42c9cbedfc57d670176a3cd" +checksum = "ff38b61724dd492b5171d5dbb0921dfc8e859022c5993b22f80f74e9afe6d573" dependencies = [ "chrono", "log", @@ -3775,15 +3775,16 @@ dependencies = [ [[package]] name = "kode-bridge" -version = "0.2.1" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e80a61472dcdfbd60624634f257c592d513b8df2991bd0946e4d54ccb24ea568" +checksum = "368479099245d8ecd5b74e6b2b6279a69b38556a442aefbbaadd3ecf8246ffc3" dependencies = [ "bytes", "futures", "http 1.3.1", "httparse", "interprocess", + "libc", "parking_lot 0.12.4", "pin-project-lite", "rand 0.9.2", @@ -3795,6 +3796,7 @@ dependencies = [ "tokio-util", "toml 0.9.7", "tracing", + "widestring", ] [[package]] @@ -3847,9 +3849,9 @@ checksum = "2c4a545a15244c7d945065b5d392b2d2d7f21526fba56ce51467b06ed445e8f7" [[package]] name = "libc" -version = "0.2.175" +version = "0.2.176" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a82ae493e598baaea5209805c49bbf2ea7de956d50d7da0da1164f9c6d28543" +checksum = "58f929b4d672ea937a23a1ab494143d968337a5f47e56d0815df1e0890ddf174" [[package]] name = "libloading" @@ -5837,9 +5839,9 @@ dependencies = [ [[package]] name = "regex" -version = "1.11.2" +version = "1.11.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23d7fd106d8c02486a8d64e778353d1cffe08ce79ac2e82f540c86d0facf6912" +checksum = "8b5288124840bee7b386bc413c487869b360b2b4ec421ea56425128692f2a82c" dependencies = [ "aho-corasick", "memchr", @@ -5849,9 +5851,9 @@ dependencies = [ [[package]] name = "regex-automata" -version = "0.4.10" +version = "0.4.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6b9458fa0bfeeac22b5ca447c63aaf45f28439a709ccd244698632f9aa6394d6" +checksum = "833eb9ce86d40ef33cb1306d8accf7bc8ec2bfea4355cbdebb3df68b40925cad" dependencies = [ "aho-corasick", "memchr", @@ -6311,9 +6313,9 @@ dependencies = [ [[package]] name = "serde" -version = "1.0.226" +version = "1.0.228" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0dca6411025b24b60bfa7ec1fe1f8e710ac09782dca409ee8237ba74b51295fd" +checksum = "9a8e94ea7f378bd32cbbd37198a4a91436180c5bb472411e48b5ec2e2124ae9e" dependencies = [ "serde_core", "serde_derive", @@ -6345,18 +6347,18 @@ dependencies = [ [[package]] name = "serde_core" -version = "1.0.226" +version = "1.0.228" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba2ba63999edb9dac981fb34b3e5c0d111a69b0924e253ed29d83f7c99e966a4" +checksum = "41d385c7d4ca58e59fc732af25c3983b67ac852c1a25000afe1175de458b67ad" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.226" +version = "1.0.228" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8db53ae22f34573731bafa1db20f04027b2d25e02d8205921b569171699cdb33" +checksum = "d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79" dependencies = [ "proc-macro2", "quote", @@ -6877,9 +6879,9 @@ dependencies = [ [[package]] name = "sysinfo" -version = "0.37.0" +version = "0.37.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07cec4dc2d2e357ca1e610cfb07de2fa7a10fc3e9fe89f72545f3d244ea87753" +checksum = "3bddd368fda2f82ead69c03d46d351987cfa0c2a57abfa37a017f3aa3e9bf69a" dependencies = [ "libc", "memchr",