From bebe38110091a3a65b257b899e74d5a1f319a139 Mon Sep 17 00:00:00 2001 From: Millian Lamiaux Date: Sun, 19 Jul 2026 20:54:17 +0200 Subject: [PATCH] =?UTF-8?q?fix(ci):=20drop=20node=20from=20brew=20install?= =?UTF-8?q?=20=E2=80=94=20unused,=20triggers=20gemini-cli=20rebuild?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Run failed at 'brew install xcodegen node' AFTER both formulae upgraded successfully under ARM: brew's 'installed dependents check' then tried to rebuild gemini-cli (0.40.1 -> 0.46.0, an unrelated dev tool on the runner that depends on node) and exited 1. Verified node is NOT used by any step in pr-iphone-deploy.yml — only xcodegen is. The only node references in the repo are in scripts/prepare-release.cjs and scripts/verify-admin-web-docker.sh, neither of which runs in this workflow. Node was a historical leftover. Drop node from the brew install. No node upgrade = no dependents check = no gemini-cli rebuild. Also sync AGENTS.md §5 step 4. --- .github/workflows/pr-iphone-deploy.yml | 8 ++++++-- AGENTS.md | 2 +- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/.github/workflows/pr-iphone-deploy.yml b/.github/workflows/pr-iphone-deploy.yml index a9f6e38..05d977b 100644 --- a/.github/workflows/pr-iphone-deploy.yml +++ b/.github/workflows/pr-iphone-deploy.yml @@ -82,12 +82,16 @@ jobs: echo "✅ Caches nettoyés (SPM cache préservé)" - - name: Install tools (xcodegen, node) + - name: Install tools (xcodegen) run: | # The act_runner shell can land under Rosetta 2 on Apple Silicon; # Homebrew lives in /opt/homebrew (ARM prefix), so run brew natively. # (Brew refuses to install/upgrade under Rosetta in the ARM prefix.) - arch -arm64 brew install xcodegen node + # Only xcodegen is needed — node is NOT used by any step in this + # workflow, and installing it triggers brew's "installed dependents + # check" which tries to rebuild unrelated formulae (e.g. gemini-cli) + # and fails the build. + arch -arm64 brew install xcodegen - name: Write Secrets.xcconfig from Gitea secrets env: diff --git a/AGENTS.md b/AGENTS.md index c14ebeb..fc22ba4 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -162,7 +162,7 @@ Complications : `TabataGoComplication`. - Supprime `build/derived`, `TabataGo.xcodeproj`, `Package.resolved`, DerivedData, ModuleCache. - **GARDE le cache SPM** (`build/spm-cache` — c'est le chemin passé à `-clonedSourcePackagesDirPath`) — RevenueCat ≈ 1.1 GiB, re-cloner = 5+ min et échecs aléatoires du sandbox. **Ne jamais faire `rm -rf build/`** : ça détruirait ce cache. Le clean step ne touche que `build/derived`. - Ne touche **pas** à `~/Library/Caches/com.apple.dt.Xcode` (cache Xcode global — le nuke ralentit tous les builds suivants). -4. **Install tools** : `arch -arm64 brew install xcodegen node` (sans `|| true` — si brew down, on fail ici, pas deux steps plus loin). `arch -arm64` requis car le shell act_runner tourne sous Rosetta 2 sur Apple Silicon, mais Homebrew est dans le prefix ARM `/opt/homebrew` — sans ça, brew refuse d'installer/upgrader. +4. **Install tools** : `arch -arm64 brew install xcodegen` (sans `|| true` — si brew down, on fail ici, pas deux steps plus loin). `arch -arm64` requis car le shell act_runner tourne sous Rosetta 2 sur Apple Silicon, mais Homebrew est dans le prefix ARM `/opt/homebrew` — sans ça, brew refuse d'installer/upgrader. Seul xcodegen est nécessaire : **node n'est pas utilisé** par ce workflow, et l'installer déclenche le "installed dependents check" de brew qui essaie de rebuilder des formulae sans rapport (ex. `gemini-cli`) et fail le build. 5. **Write `Config/Secrets.xcconfig`** depuis les secrets Gitea (`SUPABASE_URL`, `SUPABASE_ANON_KEY`, `REVENUECAT_API_KEY`, `POSTHOG_API_KEY`). Preflight : fail loud si un secret requis manque. Le fichier est gitigné (règle #9) ; CI l'écrase à chaque run. `Info.plist` lit les valeurs via `$(SUPABASE_URL)` etc., et `project.yml` wire le xcconfig en Debug+Release — aucun autre change­ment nécessaire côté build. 6. **xcodegen generate** → `xcodebuild -resolvePackageDependencies` → **build** (`-scheme TabataGo`, Debug, auto-provisioning, team `2MJF39L8VY`). Le scheme build les 4 targets : `TabataGo` (app iOS), `TabataGoWidget` (widget iOS, vrai target — ne pas confondre avec `TabataGoWatchWidget` qui est watchOS), `TabataGoWatch` (app watchOS), `TabataGoWatchWidget` (complication watchOS). 7. **Deploy iPhone** UDID `00008120-000925CE3672201E` : `xcrun devicectl device install app` uniquement. `devicectl` gère nativement la découverte WiFi (réseau) et filaire (USB-C/Thunderbolt) — pas de fallback `ios-deploy`.