Fix ci
Seto Elkahfi committed
Aug 10, 2026 at 22:20 UTC
14a1d11354fc5bffd2aa888a103de48d02944e8d
2 files changed
+47
-1
.github/workflows/ci.yml
+46
@@ -18,6 +18,31 @@ permissions:
18
contents: read
19
20
jobs:
21
+ # ── Toolchain pin ─────────────────────────────────────────────────────────
22
+ # rust-toolchain.toml is the single source of truth for the Rust version, but
23
+ # dtolnay/rust-toolchain takes `toolchain` as a required input and will not
24
+ # read that file. Left implicit, the action installs plain `stable` and adds
25
+ # the requested components/targets to *it*, while bare `cargo` in this repo
26
+ # resolves to the pinned channel instead — a different toolchain that has
27
+ # none of them ("cargo-fmt is not installed for 1.94.0", "can't find crate
28
+ # for `core`"). Resolve the pin once here and feed it to every Rust job so
29
+ # the two halves agree, without restating the version in this file.
30
+ toolchain:
31
+ name: Toolchain
32
+ runs-on: ubuntu-latest
33
+ outputs:
34
+ channel: ${{ steps.read.outputs.channel }}
35
+ steps:
36
+ - uses: actions/checkout@v6
37
+ - id: read
38
+ run: |
39
+ channel="$(sed -n 's/^channel = "\(.*\)"/\1/p' rust-toolchain.toml | head -n 1)"
40
+ if [ -z "$channel" ]; then
41
+ echo "::error::Failed to read channel from rust-toolchain.toml"
42
+ exit 1
43
+ fi
44
+ echo "channel=${channel}" >> "$GITHUB_OUTPUT"
45
+
46
# ── Release metadata ─────────────────────────────────────────────────────
47
# Same gate the release workflows use, minus the tag check. Running it on
48
# ordinary pushes means version drift surfaces while you are still on a
@@ -69,10 +94,12 @@ jobs:
94
fmt:
95
name: Format
96
runs-on: macos-26
97
+ needs: toolchain
98
steps:
99
- uses: actions/checkout@v6
100
- uses: dtolnay/rust-toolchain@stable
101
with:
102
+ toolchain: ${{ needs.toolchain.outputs.channel }}
103
components: rustfmt
104
- run: cargo fmt --all -- --check
105
@@ -80,6 +107,7 @@ jobs:
107
clippy:
108
name: Clippy (macOS)
109
runs-on: macos-26
110
+ needs: toolchain
111
env:
112
GRESIQ_API_KEY_DEV: ${{ secrets.GRESIQ_API_KEY_DEV }}
113
GRESIQ_API_SECRET_DEV: ${{ secrets.GRESIQ_API_SECRET_DEV }}
@@ -90,6 +118,7 @@ jobs:
118
- uses: actions/checkout@v6
119
- uses: dtolnay/rust-toolchain@stable
120
with:
121
+ toolchain: ${{ needs.toolchain.outputs.channel }}
122
components: clippy
123
- uses: Swatinem/rust-cache@v2
124
with:
@@ -100,6 +129,7 @@ jobs:
129
test:
130
name: Test (macOS)
131
runs-on: macos-26
132
+ needs: toolchain
133
env:
134
GRESIQ_API_KEY_DEV: ${{ secrets.GRESIQ_API_KEY_DEV }}
135
GRESIQ_API_SECRET_DEV: ${{ secrets.GRESIQ_API_SECRET_DEV }}
@@ -109,6 +139,8 @@ jobs:
139
steps:
140
- uses: actions/checkout@v6
141
- uses: dtolnay/rust-toolchain@stable
142
+ with:
143
+ toolchain: ${{ needs.toolchain.outputs.channel }}
144
- uses: Swatinem/rust-cache@v2
145
with:
146
cache-bin: false
@@ -118,6 +150,7 @@ jobs:
150
check-macos-arm64:
151
name: Check (macOS arm64)
152
runs-on: macos-26
153
+ needs: toolchain
154
env:
155
GRESIQ_API_KEY_DEV: ${{ secrets.GRESIQ_API_KEY_DEV }}
156
GRESIQ_API_SECRET_DEV: ${{ secrets.GRESIQ_API_SECRET_DEV }}
@@ -128,6 +161,7 @@ jobs:
161
- uses: actions/checkout@v6
162
- uses: dtolnay/rust-toolchain@stable
163
with:
164
+ toolchain: ${{ needs.toolchain.outputs.channel }}
165
targets: aarch64-apple-darwin
166
- uses: Swatinem/rust-cache@v2
167
with:
@@ -138,6 +172,7 @@ jobs:
172
check-macos-intel:
173
name: Check (macOS x86_64)
174
runs-on: macos-26
175
+ needs: toolchain
176
env:
177
GRESIQ_API_KEY_DEV: ${{ secrets.GRESIQ_API_KEY_DEV }}
178
GRESIQ_API_SECRET_DEV: ${{ secrets.GRESIQ_API_SECRET_DEV }}
@@ -148,6 +183,7 @@ jobs:
183
- uses: actions/checkout@v6
184
- uses: dtolnay/rust-toolchain@stable
185
with:
186
+ toolchain: ${{ needs.toolchain.outputs.channel }}
187
targets: x86_64-apple-darwin
188
- uses: Swatinem/rust-cache@v2
189
with:
@@ -158,6 +194,7 @@ jobs:
194
check-ios:
195
name: Check (iOS device)
196
runs-on: macos-26
197
+ needs: toolchain
198
env:
199
GRESIQ_API_KEY_DEV: ${{ secrets.GRESIQ_API_KEY_DEV }}
200
GRESIQ_API_SECRET_DEV: ${{ secrets.GRESIQ_API_SECRET_DEV }}
@@ -168,6 +205,7 @@ jobs:
205
- uses: actions/checkout@v6
206
- uses: dtolnay/rust-toolchain@stable
207
with:
208
+ toolchain: ${{ needs.toolchain.outputs.channel }}
209
targets: aarch64-apple-ios
210
- uses: Swatinem/rust-cache@v2
211
with:
@@ -178,6 +216,7 @@ jobs:
216
check-ios-sim:
217
name: Check (iOS simulator)
218
runs-on: macos-26
219
+ needs: toolchain
220
env:
221
GRESIQ_API_KEY_DEV: ${{ secrets.GRESIQ_API_KEY_DEV }}
222
GRESIQ_API_SECRET_DEV: ${{ secrets.GRESIQ_API_SECRET_DEV }}
@@ -188,6 +227,7 @@ jobs:
227
- uses: actions/checkout@v6
228
- uses: dtolnay/rust-toolchain@stable
229
with:
230
+ toolchain: ${{ needs.toolchain.outputs.channel }}
231
targets: aarch64-apple-ios-sim
232
- uses: Swatinem/rust-cache@v2
233
with:
@@ -319,6 +359,7 @@ jobs:
359
check-linux:
360
name: Check (Linux x86_64)
361
runs-on: ubuntu-latest
362
+ needs: toolchain
363
env:
364
GRESIQ_API_KEY_DEV: ${{ secrets.GRESIQ_API_KEY_DEV }}
365
GRESIQ_API_SECRET_DEV: ${{ secrets.GRESIQ_API_SECRET_DEV }}
@@ -329,6 +370,7 @@ jobs:
370
- uses: actions/checkout@v6
371
- uses: dtolnay/rust-toolchain@stable
372
with:
373
+ toolchain: ${{ needs.toolchain.outputs.channel }}
374
targets: x86_64-unknown-linux-gnu
375
- uses: Swatinem/rust-cache@v2
376
with:
@@ -339,6 +381,7 @@ jobs:
381
check-android:
382
name: Check (Android arm64)
383
runs-on: ubuntu-latest
384
+ needs: toolchain
385
env:
386
GRESIQ_API_KEY_DEV: ${{ secrets.GRESIQ_API_KEY_DEV }}
387
GRESIQ_API_SECRET_DEV: ${{ secrets.GRESIQ_API_SECRET_DEV }}
@@ -352,6 +395,7 @@ jobs:
395
- uses: actions/checkout@v6
396
- uses: dtolnay/rust-toolchain@stable
397
with:
398
+ toolchain: ${{ needs.toolchain.outputs.channel }}
399
targets: aarch64-linux-android
400
- uses: android-actions/setup-android@v4
401
- name: Configure Android NDK toolchain
@@ -368,6 +412,7 @@ jobs:
412
check-windows:
413
name: Check (Windows x86_64)
414
runs-on: windows-latest
415
+ needs: toolchain
416
env:
417
GRESIQ_API_KEY_DEV: ${{ secrets.GRESIQ_API_KEY_DEV }}
418
GRESIQ_API_SECRET_DEV: ${{ secrets.GRESIQ_API_SECRET_DEV }}
@@ -378,6 +423,7 @@ jobs:
423
- uses: actions/checkout@v6
424
- uses: dtolnay/rust-toolchain@stable
425
with:
426
+ toolchain: ${{ needs.toolchain.outputs.channel }}
427
targets: x86_64-pc-windows-msvc
428
- uses: Swatinem/rust-cache@v2
429
with:
sdk/dart/lib/src/frb_generated.dart/api.dart
+1
-1
@@ -3,7 +3,7 @@
3
4
// ignore_for_file: type=lint, unused_import, unnecessary_import
5
6
-// ignore_for_file: invalid_use_of_internal_member, unused_import, unnecessary_import
6
+// ignore_for_file: invalid_use_of_internal_member
7
8
import 'frb_generated.dart';
9
import 'package:flutter_rust_bridge/flutter_rust_bridge_for_generated.dart';