fix(ci): pr-iphone-deploy — cache, secrets, LGTM regex, concurrency, watch build, scope #12
8
.github/workflows/pr-iphone-deploy.yml
vendored
8
.github/workflows/pr-iphone-deploy.yml
vendored
@@ -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:
|
||||
|
||||
@@ -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 changement 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`.
|
||||
|
||||
Reference in New Issue
Block a user