Summary: 7Mind mobile builds are split: Codemagic owns all production iOS and Android builds, while GitHub Actions handles CI (test, lint, codegen, docs). This is the opposite of the rest of the 7Mind system, which uses GitHub Actions heavily. Sources: direct code inspection of codemagic.yaml and .github/workflows/ in 7mind-mobile-apps-monorepo Last updated: 2026-05-15


Why it is split this way

iOS and Android builds need platform-specific runners (macOS for iOS, signed-key access for Android), TestFlight + Play Store credentials, and integration with mobile-specific services like Firebase Test Lab. Codemagic specializes in this stack. GitHub Actions on the 7mind-mobile-apps-monorepo runs the things that do not need shipping signed binaries: tests, analysis, code generation verification, translations, codecov, and the MkDocs publish.

If an agent looks at this repo and asks “where do production builds happen?”, the answer is Codemagic, not GitHub Actions. The README badges and Actions workflows can mislead.

Codemagic workflows

Defined in codemagic.yaml. Seven workflows ship binaries:

WorkflowFlavorTargetPublishes to
flutter-ios-simulatorstaginglib/main_staging.dart(preview only, no publish)
flutter-ios-simulator-prodproductionlib/main_production.dart(preview only, no publish)
ios-workflow-stagingstaginglib/main_staging.dartTestFlight (Internal Testers)
ios-workflow-productionproductionlib/main_production.dartTestFlight; provisioning profile 7mind-dach-flutter-distr
ios-workflow-zpp-submissionzpplib/main_staging.dartTestFlight
android-workflow-stagingstaginglib/main_staging.dartGoogle Play internal track (draft)
android-workflow-productionproductionlib/main_production.dartGoogle Play internal track (draft)
android-workflow-zpp-submissionzpplib/main_staging.dartGoogle Play internal track (draft)

Two e2e workflows (e2e-tests-android-workflow, e2e-tests-ios-workflow) run Patrol tests on Firebase Test Lab.

Versioning is auto-incremented by Codemagic using the app-store-connect and google-play CLIs. Notification email for build failures: [email protected].

No Fastlane is in use. iOS code signing and submission is driven directly by Codemagic’s xcode-project integrations; Android signing uses keystore env vars (CM_KEYSTORE_PATH, CM_KEYSTORE_PASSWORD, etc.).

GitHub Actions workflows

All in .github/workflows/ on 7mind-mobile-apps-monorepo:

  • test.yml — runs make ci_test on PRs and main pushes
  • analyze.ymlmake ci_lint on every push
  • internal_builds.yml — builds a debug staging AAB on main as a smoke test; Slack-notifies on failure. Does not publish.
  • codecov.yml — coverage upload
  • verify_code_gen.yml — runs build_runner and fails if the working tree is dirty
  • localize-gen.yml and translations.yml — translation file generation
  • title-validation.yml — PR title lint
  • release_drafter.yml and release_drafter_release.yml — draft and publish GitHub Releases; the release step bumps pubspec.yaml version
  • publish_documentation.yml — builds MkDocs and uploads to GCS bucket mobile.6mind.de on main pushes. Service account [email protected]. Doc site at https://mobile.6mind.de/site.
  • publish_catalog.yml, publish_catalog_pr.yml — publishes the Bliss UI catalog web build
  • supernova.yml — design system sync

Triggers

  • GitHub Actions: PR opened/synced, push to main, and manual workflow_dispatch where relevant.
  • Codemagic: TBD exactly. Triggers are configured in Codemagic’s UI, not in codemagic.yaml. Branch-based triggers are typical for the staging workflows and tag-based for production; confirm in the Codemagic dashboard before relying on this.

What agents should know

  • Don’t migrate mobile builds into GitHub Actions without a strong reason. The split is intentional and the credentials live in Codemagic.
  • When changing pubspec.yaml or platform code that affects build output, both the GitHub Actions verify pipelines and the Codemagic build pipelines must pass for a release to ship.
  • The release-drafter workflow bumps pubspec.yaml version on release publish. Do not also bump it manually in the same PR.
  • Patrol e2e is staging-flavor-only (see pubspec.yaml patrol config). The Firebase Test Lab runs are part of the Codemagic e2e workflows, not GitHub Actions.
  • Docs land on mobile.6mind.de automatically when documentation/docs/** changes on main.