ci: add iPhone deploy workflow + CI/CD setup docs #4

Merged
millianlmx merged 50 commits from ci/iphone-deploy-workflow into main 2026-06-27 22:49:53 +02:00
Owner

Summary

Adds CI/CD pipeline for automatic iPhone deployment on PR.

Changes

  • .gitea/workflows/pr-iphone-deploy.yml: Builds TabataGo for iPhone, installs on device, posts Ready to test comment, waits for LGTM/KO, auto-merges
  • docs/ci-cd-setup.md: Mac runner + secrets setup guide

Secrets required

  • IPHONE_UDID - target device UDID
  • GITEA_TOKEN - Gitea API token

Runs on: macos runner

## Summary Adds CI/CD pipeline for automatic iPhone deployment on PR. ### Changes - **.gitea/workflows/pr-iphone-deploy.yml**: Builds TabataGo for iPhone, installs on device, posts Ready to test comment, waits for LGTM/KO, auto-merges - **docs/ci-cd-setup.md**: Mac runner + secrets setup guide ### Secrets required - `IPHONE_UDID` - target device UDID - `GITEA_TOKEN` - Gitea API token Runs on: `macos` runner
millianlmx added 1 commit 2026-06-27 10:29:35 +02:00
fix: change bundle ID from com.tabatago.app to fr.millianlmx.tabatago
Some checks failed
PR → Build → Firebase OTA → LGTM / Build & Deploy to Firebase OTA (pull_request) Failing after 4m2s
PR → Build → Firebase OTA → LGTM / Wait for LGTM comment (pull_request) Has been skipped
6cc25300d1
millianlmx force-pushed ci/iphone-deploy-workflow from 31cc9e5a1e to 6cc25300d1 2026-06-27 10:29:35 +02:00 Compare
millianlmx added 1 commit 2026-06-27 10:38:32 +02:00
fix(ci): clean SPM/Xcode caches agressivement pour éviter les segfaults linker après changement de bundle ID
Some checks failed
PR → Build → Firebase OTA → LGTM / Build & Deploy to Firebase OTA (pull_request) Failing after 2m4s
PR → Build → Firebase OTA → LGTM / Wait for LGTM comment (pull_request) Has been skipped
7c50282284
- Supprime TOUT DerivedData (pas seulement TabataGo-*) car le changement
  de bundle ID (com.tabatago.app → fr.millianlmx.tabatago) a rendu les
  anciens caches SPM incohérents
- Ajoute la suppression de ~/Library/org.swift.swiftpm, ~/.swiftpm,
  ~/Library/Caches/com.apple.dt.Xcode et du ModuleCache
- Supprime les build/ locaux et .build avant xcodegen generate
- Supprime les Package.resolved stale
- Utilise -derivedDataPath et -clonedSourcePackagesDirPath cohérents
  entre la résolution SPM et le build
Author
Owner

🔧 Fix CI : segfault linker après changement de bundle ID

Cause identifiée

Le changement de bundle ID (com.tabatago.appfr.millianlmx.tabatago) a rendu le cache SPM/Xcode incohérent. Le linker (clang) segfaultait pendant la résolution des packages car il utilisait des artefacts binaires cachés (.pcm, modules précompilés) indexés sous l'ancien bundle ID.

Modifications apportées

1. Clean agressif des caches SPM/Xcode (remplace l'ancien step "Clean act runner caches") :

  • Suppression de TOUT ~\/Library\/Developer\/Xcode\/DerivedData\/* (pas seulement le dossier TabataGo-*)
  • Suppression de ~\/Library\/org.swift.swiftpm et ~\/.swiftpm (caches SPM additionnels)
  • Suppression du module cache Xcode (ModuleCache.noindex) — les .pcm stale sont la cause #1 des segfaults linker
  • Suppression de ~\/Library\/Caches\/com.apple.dt.Xcode
  • Suppression de build\/, .build, tabatago-swift\/.build avant xcodegen generate
  • Suppression des Package.resolved stale

2. Résolution SPM cohérente avec le build :

  • Le step -resolvePackageDependencies utilise maintenant les mêmes -derivedDataPath et -clonedSourcePackagesDirPath que le step build, évitant des incohérences de cache entre les deux étapes.

Commit

7c50282fix(ci): clean SPM\/Xcode caches agressivement pour éviter les segfaults linker après changement de bundle ID


Si le build échoue encore, le prochain suspect serait une corruption des binaires SPM eux-mêmes → nécessiterait un swift package purge-cache global.

## 🔧 Fix CI : segfault linker après changement de bundle ID ### Cause identifiée Le changement de bundle ID (`com.tabatago.app` → `fr.millianlmx.tabatago`) a rendu le cache SPM/Xcode incohérent. Le linker (`clang`) segfaultait pendant la résolution des packages car il utilisait des artefacts binaires cachés (`.pcm`, modules précompilés) indexés sous l'ancien bundle ID. ### Modifications apportées **1. Clean agressif des caches SPM/Xcode** (remplace l'ancien step "Clean act runner caches") : - Suppression de **TOUT** `~\/Library\/Developer\/Xcode\/DerivedData\/*` (pas seulement le dossier TabataGo-*) - Suppression de `~\/Library\/org.swift.swiftpm` et `~\/.swiftpm` (caches SPM additionnels) - Suppression du module cache Xcode (`ModuleCache.noindex`) — les `.pcm` stale sont la cause #1 des segfaults linker - Suppression de `~\/Library\/Caches\/com.apple.dt.Xcode` - Suppression de `build\/`, `.build`, `tabatago-swift\/.build` avant `xcodegen generate` - Suppression des `Package.resolved` stale **2. Résolution SPM cohérente** avec le build : - Le step `-resolvePackageDependencies` utilise maintenant les mêmes `-derivedDataPath` et `-clonedSourcePackagesDirPath` que le step `build`, évitant des incohérences de cache entre les deux étapes. ### Commit `7c50282` — `fix(ci): clean SPM\/Xcode caches agressivement pour éviter les segfaults linker après changement de bundle ID` --- *Si le build échoue encore, le prochain suspect serait une corruption des binaires SPM eux-mêmes → nécessiterait un `swift package purge-cache` global.*
millianlmx added 1 commit 2026-06-27 10:42:42 +02:00
fix(ci): remove -derivedDataPath from resolve step (requires -scheme)
Some checks failed
PR → Build → Firebase OTA → LGTM / Build & Deploy to Firebase OTA (pull_request) Failing after 8m40s
PR → Build → Firebase OTA → LGTM / Wait for LGTM comment (pull_request) Has been skipped
abf926e4bc
millianlmx added 1 commit 2026-06-27 22:01:26 +02:00
fix: align bundleIdPrefix with Firebase app (com.tabatago → fr.millianlmx.tabatago)
Some checks failed
PR → Build → Firebase OTA → LGTM / Build & Deploy to Firebase OTA (pull_request) Failing after 10m58s
PR → Build → Firebase OTA → LGTM / Wait for LGTM comment (pull_request) Has been skipped
52346fb4ac
millianlmx added 1 commit 2026-06-27 22:13:29 +02:00
fix(ci): checkout PR branch instead of main
Some checks failed
PR → Build → Firebase OTA → LGTM / Build & Deploy to Firebase OTA (pull_request) Failing after 6m12s
PR → Build → Firebase OTA → LGTM / Wait for LGTM comment (pull_request) Has been skipped
5079de0fb1
millianlmx added 1 commit 2026-06-27 22:23:59 +02:00
fix(ci): disable code signing — Mac runner has no Apple Developer account
Some checks failed
PR → Build → Firebase OTA → LGTM / Wait for LGTM comment (pull_request) Has been cancelled
PR → Build → Firebase OTA → LGTM / Build & Deploy to Firebase OTA (pull_request) Has been cancelled
4b7548501a
STOPGAP: CODE_SIGN_IDENTITY="-" CODE_SIGNING_REQUIRED=NO to bypass
signing on the Mac CI runner which has no Apple account signed into Xcode.

REAL FIX: Sign into Xcode → Settings → Accounts with the Apple Developer
account on the Mac runner machine. Then -allowProvisioningUpdates +
DEVELOPMENT_TEAM will auto-provision profiles for any bundle IDs.
millianlmx added 1 commit 2026-06-27 22:28:04 +02:00
fix(ci): restore automatic code signing — Apple account now configured on runner
Some checks failed
PR → Build → Firebase OTA → LGTM / Build & Deploy to Firebase OTA (pull_request) Failing after 11m7s
PR → Build → Firebase OTA → LGTM / Wait for LGTM comment (pull_request) Has been skipped
63fbae3698
millianlmx added 1 commit 2026-06-27 22:35:47 +02:00
fix(ci): keep SPM cache — remove aggressive clean that forces RevenueCat re-clone
Some checks failed
PR → Build → Firebase OTA → LGTM / Build & Deploy to Firebase OTA (pull_request) Failing after 2m13s
PR → Build → Firebase OTA → LGTM / Wait for LGTM comment (pull_request) Has been skipped
069b7d417f
millianlmx added 1 commit 2026-06-27 22:40:43 +02:00
fix: move #if outside array literal in TabataGoComplication.supportedFamilies
All checks were successful
PR → Build → Firebase OTA → LGTM / Build & Deploy to Firebase OTA (pull_request) Successful in 4m59s
PR → Build → Firebase OTA → LGTM / Wait for LGTM comment (pull_request) Successful in 4m5s
a382ad62dc
Author
Owner

LGTM

LGTM
millianlmx merged commit a9eda61967 into main 2026-06-27 22:49:53 +02:00
Sign in to join this conversation.
No Reviewers
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: millianlmx/tabatago#4