66 pull_request :
77 branches : [main]
88
9+ # Cancel in-progress runs when a new commit is pushed to the same PR.
10+ # PR: same group per PR so new push cancels previous run. Push to main: unique group so no cancel.
911concurrency :
10- group : ${{ github.workflow }}-${{ github.ref }}
11- cancel-in-progress : true
12+ group : ${{ github.workflow }}-${{ github.event.pull_request.number || github.sha }}
13+ cancel-in-progress : ${{ github.event_name == 'pull_request' }}
1214
1315env :
1416 CARGO_TERM_COLOR : always
1517 RUST_BACKTRACE : 1
1618 # Cache keys for better hit rates
1719 RUST_CACHE_KEY : v1
1820 PLAYWRIGHT_BROWSERS_PATH : ${{ github.workspace }}/.cache/ms-playwright
21+ # Linux: pkg-config must find glib-2.0.pc (set before any cargo step; only used on Linux)
22+ PKG_CONFIG_PATH : /usr/lib/x86_64-linux-gnu/pkgconfig:/usr/lib/pkgconfig:/usr/share/pkgconfig
1923
2024jobs :
2125 # ─────────────────────────────────────────────────────────────
@@ -28,12 +32,13 @@ jobs:
2832 - uses : dtolnay/rust-toolchain@stable
2933 with :
3034 components : rustfmt, clippy
31- - uses : Swatinem/rust-cache@v2
3235
3336 - name : Install Linux deps
3437 run : |
3538 sudo apt-get update
36- sudo apt-get install -y libwebkit2gtk-4.1-dev libappindicator3-dev librsvg2-dev patchelf libsecret-1-dev
39+ sudo apt-get install -y pkg-config libglib2.0-dev libwebkit2gtk-4.1-dev libappindicator3-dev librsvg2-dev patchelf libsecret-1-dev
40+
41+ - uses : Swatinem/rust-cache@v2
3742
3843 - name : Format check
3944 run : cargo fmt --all --check
@@ -85,16 +90,17 @@ jobs:
8590 - uses : dtolnay/rust-toolchain@stable
8691 with :
8792 targets : ${{ matrix.target }}
88- - uses : Swatinem/rust-cache@v2
89- with :
90- key : ${{ matrix.target }}
9193
92- # Linux dependencies for Tauri
94+ # Linux dependencies for Tauri (before rust-cache so cargo can find glib)
9395 - name : Install Linux deps
9496 if : matrix.os == 'ubuntu-latest'
9597 run : |
9698 sudo apt-get update
97- sudo apt-get install -y libwebkit2gtk-4.1-dev libappindicator3-dev librsvg2-dev patchelf libsecret-1-dev
99+ sudo apt-get install -y pkg-config libglib2.0-dev libwebkit2gtk-4.1-dev libappindicator3-dev librsvg2-dev patchelf libsecret-1-dev
100+
101+ - uses : Swatinem/rust-cache@v2
102+ with :
103+ key : ${{ matrix.target }}
98104
99105 # Install cargo-nextest
100106 - name : Install nextest
@@ -134,6 +140,13 @@ jobs:
134140 - uses : dtolnay/rust-toolchain@stable
135141 with :
136142 targets : ${{ matrix.target }}
143+
144+ - name : Install Linux deps
145+ if : matrix.os == 'ubuntu-latest'
146+ run : |
147+ sudo apt-get update
148+ sudo apt-get install -y pkg-config libglib2.0-dev libwebkit2gtk-4.1-dev libappindicator3-dev librsvg2-dev patchelf libsecret-1-dev
149+
137150 - uses : Swatinem/rust-cache@v2
138151 with :
139152 key : ${{ matrix.target }}-build
@@ -143,12 +156,6 @@ jobs:
143156 node-version : 20
144157 cache : ' pnpm'
145158
146- - name : Install Linux deps
147- if : matrix.os == 'ubuntu-latest'
148- run : |
149- sudo apt-get update
150- sudo apt-get install -y libwebkit2gtk-4.1-dev libappindicator3-dev librsvg2-dev patchelf libsecret-1-dev
151-
152159 - run : pnpm install --frozen-lockfile
153160 - run : pnpm build
154161 env :
@@ -216,9 +223,6 @@ jobs:
216223 steps :
217224 - uses : actions/checkout@v4
218225 - uses : dtolnay/rust-toolchain@stable
219- - uses : Swatinem/rust-cache@v2
220- with :
221- key : ${{ matrix.os }}-e2e
222226 - uses : pnpm/action-setup@v4
223227 - uses : actions/setup-node@v4
224228 with :
@@ -229,7 +233,11 @@ jobs:
229233 if : matrix.os == 'ubuntu-latest'
230234 run : |
231235 sudo apt-get update
232- sudo apt-get install -y libwebkit2gtk-4.1-dev libappindicator3-dev librsvg2-dev patchelf libsecret-1-dev webkit2gtk-driver xvfb
236+ sudo apt-get install -y pkg-config libglib2.0-dev libwebkit2gtk-4.1-dev libappindicator3-dev librsvg2-dev patchelf libsecret-1-dev webkit2gtk-driver xvfb
237+
238+ - uses : Swatinem/rust-cache@v2
239+ with :
240+ key : ${{ matrix.os }}-e2e
233241
234242 # Cache tauri-driver binary
235243 - name : Cache tauri-driver
0 commit comments