ci: only run what a change affects, consolidate jobs (#3674)

* ci: only run what a change affects, consolidate jobs

- detect affected plugins from changed files and Cargo.lock dependency trees
- test/lint Rust per platform in shards instead of one job per plugin
- fold check-generated-files into lint-javascript, fmt into a single job
- skip fat LTO in integration test builds, single ABI in test-android

* ci: run e2e on bumps, use published tauri CLI, PR-safe pnpm cache

- trigger e2e on Cargo/pnpm lockfile and manifest changes
- install the latest 2.x tauri-cli with cargo-binstall in integration tests
- add setup-pnpm action: restore the store everywhere, save only on v2/v3

* fix clippy, ios build

* fix bumps [skip ci]
This commit is contained in:
Lucas Fernandes Nogueira authored and GitHub committed 2026-10-09 12:57:12 -03:00
1 parent 974af951a5
commit 9a74a78c71
18 files changed
+600 -630

No files matched your search

+10 -31
View File
@@ -11,7 +11,7 @@ on:
push:
branches:
- v2
paths:
paths: &paths
- '.github/workflows/test-api-e2e-mobile.yml'
- 'packages/api-e2e/**'
- 'examples/api/**'
@@ -21,19 +21,16 @@ on:
- 'plugins/*/ios/**'
- 'plugins/*/permissions/**'
- 'plugins/*/build.rs'
# dependency bumps
- 'Cargo.toml'
- 'Cargo.lock'
- 'plugins/*/Cargo.toml'
- 'pnpm-lock.yaml'
- '**/package.json'
pull_request:
branches:
- v2
paths:
- '.github/workflows/test-api-e2e-mobile.yml'
- 'packages/api-e2e/**'
- 'examples/api/**'
- 'plugins/*/guest-js/**'
- 'plugins/*/src/**'
- 'plugins/*/android/**'
- 'plugins/*/ios/**'
- 'plugins/*/permissions/**'
- 'plugins/*/build.rs'
paths: *paths
env:
RUST_BACKTRACE: 1
@@ -63,13 +60,7 @@ jobs:
with:
targets: x86_64-linux-android
- name: setup node
uses: actions/setup-node@v7
with:
node-version: 'lts/*'
- uses: pnpm/action-setup@v6
with:
cache: true # the pnpm store, keyed by OS and lockfile hash and shared by every workflow
- uses: ./.github/actions/setup-pnpm
- uses: actions/setup-java@v5
with:
@@ -122,9 +113,6 @@ jobs:
# that other runs would have hit (10 GB repository limit, LRU eviction).
save-if: ${{ github.ref == 'refs/heads/v2' || github.ref == 'refs/heads/v3' }}
- name: install dependencies
run: pnpm i --frozen-lockfile
- name: build plugins
run: pnpm build
@@ -186,13 +174,7 @@ jobs:
with:
targets: aarch64-apple-ios-sim
- name: setup node
uses: actions/setup-node@v7
with:
node-version: 'lts/*'
- uses: pnpm/action-setup@v6
with:
cache: true # the pnpm store, keyed by OS and lockfile hash and shared by every workflow
- uses: ./.github/actions/setup-pnpm
- uses: Swatinem/rust-cache@v2
with:
@@ -202,9 +184,6 @@ jobs:
# that other runs would have hit (10 GB repository limit, LRU eviction).
save-if: ${{ github.ref == 'refs/heads/v2' || github.ref == 'refs/heads/v3' }}
- name: install dependencies
run: pnpm i --frozen-lockfile
- name: build plugins
run: pnpm build