Referenzarchitekturen für wiederverwendbare Builds

So wird der Cloud Mac Teil Ihrer Release-Pipeline

Die folgenden Abläufe sind weder Kundenreferenzen noch ungeprüfte Leistungsversprechen. Sie trennen Auslöser, Aufgaben auf dedizierten physischen Rechnern, Signaturverantwortung, Protokollablage und Artefaktziele – damit Teams sie an ihre Repositories und Berechtigungsmodelle anpassen können.

5 Workflows Für Builds, Releases und Experimente
1 dedizierter Rechner Workloads werden nacheinander in einer Warteschlange ausgeführt
4 klar getrennte Bereiche Code, Zugangsdaten, Protokolle und Artefakte getrennt verwalten
BUILD PASSPORT iOS Release / Main
RUN-042
01
Code-Commit Repository-Ereignis startet den Job
Empfangen
02
Abhängigkeiten und Cache Anhand der Lockdatei wiederherstellen und Cache-Treffer protokollieren
Abgeschlossen
03
Xcode Archive Archivierung auf dediziertem physischem Rechner
In Bearbeitung
04
Prüfung und Übergabe Signatur prüfen und Artefakt kontrolliert exportieren
Ausstehend
Job-Warteschlange MAIN → RELEASE → HOTFIX Jeder Job erhält ein eigenes Arbeitsverzeichnis
Signaturstatus prüfen Konfiguration stimmt überein Vertrauliche Daten verwaltet das Team selbst
So nutzen Sie die Beispiele

Erst Zuständigkeiten klären, dann Automatisierung übernehmen

Die Referenzarchitekturen beschreiben nur den Ablauf der Aufgaben. Repository-Berechtigungen, Signaturmaterial, Entwicklerkonten, Release-Freigaben und Aufbewahrungsfristen für Artefakte legt weiterhin das jeweilige Team fest.

Reproduzierbare Umgebung

Xcode, Command Line Tools, Abhängigkeits-Lockdateien und Bereinigungsbefehle festlegen. Vor einem Versionswechsel zunächst in einem separaten Arbeitsverzeichnis testen und erst dann die produktive Warteschlange umstellen.

Versionen und Lockdateien

Zugangsdaten gehören nicht ins Repository

Tokens, Zertifikate und Provisioning-Profile kontrolliert bereitstellen. Protokolle enthalten nur die zur Fehlersuche nötigen Informationen. Vor der Ausgabe Pfade, Tokens und private Repository-Adressen entfernen.

Minimale Berechtigungen

Artefakte mit eindeutigem Ziel

Archive, Exportpakete, Symboldateien und Testberichte separat benennen und mit der Commit-ID versehen. Nach der Übergabe temporäre Kopien auf dem Rechner gemäß Teamvorgaben löschen.

Kontrollierter Export
App-Builds automatisieren

Fünf Übergabeschritte vom Commit bis zum prüfbaren Artefakt

Dieser Workflow eignet sich, um einen CDNMac M4 als self-hosted runner zu registrieren. Repository-Ereignisse starten Jobs; die fertigen Artefakte gehen anschließend zur Prüfung ans Team oder an ein nachgelagertes Verteilungssystem.

01
Code-Commit Ausgelöst durch: Entwickler oder Merge-Prozess

Der Main-Branch oder ein Release-Tag startet den Job. Zuerst werden Commit-Hash, Branch, Auslöser und Ziel-Scheme protokolliert. Vertrauliche Variablen werden nicht in Logs ausgegeben.

Ziel: Isoliertes Arbeitsverzeichnis auf einem dedizierten physischen Rechner
02
Abhängigkeiten wiederherstellen Ausgelöst durch: Build-Skript

Swift-Package-, CocoaPods- und andere Abhängigkeiten anhand der Lockdateien wiederherstellen. Der Cache-Schlüssel enthält mindestens den Hash der Lockdatei und die Tool-Version, damit veraltete Caches nicht zwischen Versionen übernommen werden.

Ziel: Versioniertes Cache-Verzeichnis und Abhängigkeitsprotokolle
03
Xcode Archive Ausgelöst durch: Build-Job

Archivierung mit explizitem Workspace, Scheme, Configuration und Destination ausführen. Bei Fehlern Exit-Code, relevante Logs und Ergebnisdatei sichern.

Ziel: Archive-Verzeichnis mit Commit-ID
04
Signatur prüfen Ausgelöst durch: Release-Job

Bundle Identifier, Team, Zertifikatsgültigkeit und passendes Provisioning-Profil prüfen. Entwicklerkonto und Signaturmaterial verwaltet stets das Team des Nutzers.

Ziel: Prüfliste, keine Zugangsdaten im Klartext
05
Artefakte archivieren Ausgelöst durch: Übergabe-Skript

Installationspaket, Symboldateien, Build-Zusammenfassung und Prüfsumme exportieren und anschließend an einen vom Team kontrollierten Speicherort kopieren. Nach bestätigter Übergabe temporäre Verzeichnisse löschen.

Ziel: Kontrollierter Speicher und Team-Review-Warteschlange
Warteschlange für mehrere Branches

Ein dedizierter physischer Rechner, drei Branch-Typen mit klaren Regeln

Dediziert bedeutet nicht, dass alle Jobs parallel laufen. Für einen einzelnen CDNMac M4 empfiehlt es sich, Prioritäten, Arbeitsverzeichnisse und Bereinigungsregeln festzulegen, damit Release-Jobs und tägliche Tests einander nicht beeinträchtigen.

MAIN Kontinuierliche Prüfung

Main-Branch

Nach dem Merge Unit-Tests, statische Prüfungen und ein Basis-Archive ausführen. Caches können wiederverwendet werden, DerivedData wird jedoch nach Projekt und Xcode-Version getrennt.

Priorität
Normal
Arbeitsverzeichnis
work/main
Bereinigung nach dem Lauf
Nicht versionierte Dateien löschen
RELEASE Release-Kandidat

Release-Branch

Nach Aufnahme in die Warteschlange nicht notwendige Jobs desselben Repositorys pausieren, separate Konfigurationen für Signaturprüfung und Export verwenden und die Artefakt-Zusammenfassung vom Team prüfen lassen.

Priorität
Hoch
Arbeitsverzeichnis
work/release
Bereinigung nach dem Lauf
Temporären Schlüsselbund löschen
HOTFIX Manuelle Freigabe

Hotfix-Branch

Nach Bestätigung durch die verantwortliche Person in die Warteschlange aufnehmen. Nur die zur Fehlerbehebung benötigten Caches wiederherstellen, anschließend temporäre Variablen entfernen und den Rollback-Ausgangspunkt protokollieren.

Priorität
Manuelle Freigabe
Arbeitsverzeichnis
work/hotfix
Bereinigung nach dem Lauf
Warteschlange und Ausgangszustand wiederherstellen
Regeln für die Warteschlange

Release-Jobs unterbrechen keine Jobs, die gerade Artefakte schreiben. Bei fehlgeschlagenen Jobs zuerst Logs sichern und dann das Arbeitsverzeichnis freigeben. Nach jedem Job eine idempotente Bereinigung ausführen.

MAIN RELEASE HOTFIX CLEAN
FLUTTER IOS

Plattformübergreifende Abhängigkeiten und Xcode-Schritte getrennt protokollieren

Bei Flutter-iOS-Builds verteilt sich die Wartezeit oft auf das Wiederherstellen von Abhängigkeiten, CocoaPods und den Xcode-Build. Erst die getrennte Erfassung der Schritte zeigt, ob der Cache greift und auf welcher Ebene ein Fehler auftritt.

Schritte klar abgrenzen

Jeder Schritt erhält ein eigenes Log und einen eigenen Exit-Code. Erst nach erfolgreichem Abschluss liest der nächste Schritt dessen Artefakte ein. So werden Abhängigkeitsprobleme nicht mit Xcode-Compilerfehlern verwechselt.

  • Zuerst Flutter-SDK-Version und Projektvorgaben prüfen.
  • Hash der Lockdatei in den Cache-Schlüssel aufnehmen.
  • Pods- und Dart-Caches getrennt invalidieren.
  • Exportpaket und Symboldateien separat übergeben.
01
Abhängigkeiten wiederherstellen

Projektabhängigkeiten wiederherstellen und SDK-Version sowie Hash der Lockdatei protokollieren.

Cache: Dart-Paketverzeichnis
02
CocoaPods

iOS-native Abhängigkeiten anhand von Podfile.lock installieren. Nicht passende Pods nicht wiederverwenden.

Protokoll: CocoaPods-Installationsausgabe
03
Xcode-Build

Archive mit explizitem Workspace, Scheme und Configuration erstellen.

Artefakte: Archive und Ergebnisdatei
04
Artefakte exportieren

Nach der Signaturprüfung exportieren und Commit-ID sowie Prüfsumme erstellen.

Ziel: Vom Team kontrollierter Speicher

Ein Cache-Treffer bedeutet nur, dass das jeweilige Verzeichnis und der zugehörige Schlüssel wiederverwendbar sind – nicht, dass der gesamte Build schneller ist. Nach einem Upgrade von Flutter, CocoaPods, Xcode oder einer Lockdatei die Cache-Grenzen erneut prüfen.

TESTFLIGHT-ÜBERGABE

Build-Artefakte erst vom Team prüfen lassen, dann verteilen

Der Cloud Mac erstellt und prüft Build-Artefakte, ersetzt aber nicht die Release-Freigabe durch das Team. Entwicklerkonto, Signaturmaterial, Versionsinformationen und Verteilungsentscheidung bleiben in der Verantwortung des Nutzers.

  1. 01

    Release-Kandidat erstellen

    Auf dem Release-Branch Archive und Export ausführen und Commit-Hash, Versionsnummer, Build-Nummer, Symboldateien und Prüfsumme beilegen.

  2. 02

    Team-Review durchführen

    Die verantwortliche Person prüft Änderungsumfang, Signatur, Datenschutzangaben, Berechtigungszwecke und Testergebnisse. Bei Ablehnung den betreffenden Commit erneut erstellen.

  3. 03

    Verteilungsprozess starten

    Nach der Freigabe übernimmt ein vom Team kontrollierter Release-Job den Upload mit eingeschränkten Zugangsdaten. Vertrauliche Daten weder im Repository noch in gewöhnlichen Build-Logs speichern.

  4. 04

    Übergabe dokumentieren

    Artefakt-ID, Prüfergebnis und erforderliche Logs sichern. Nach der Übergabe temporäre Exportdateien und Zugangsdaten auf dem Rechner löschen.

Aufgaben des CDNMac-Rechners Build, Archivierung, Prüfung der Signaturübereinstimmung und Artefakt-Export
Aufgaben des Teams Kontoverwaltung, Signaturmaterial, Release-Freigabe, Verteilungsinformationen und Compliance-Prüfung
KI-EXPERIMENTE AUF APPLE SILICON

Modellkompatibilität prüfen, keine Durchsatzversprechen für Experimente

CDNMac M4 bietet einen M4, 16 GB RAM und eine 256-GB-SSD. Er eignet sich für lokale Kompatibilitätsprüfungen von Modellen und Prototypentests. Prüfen Sie zuvor den Bedarf an Modell, Kontext, Daten und Arbeitsspeicher.

A

Daten vorbereiten

Nur die für das Experiment benötigte Teilmenge synchronisieren und Quelle sowie Version dokumentieren. Vertrauliche Daten zuerst anonymisieren. Für Rohdaten, Zwischendaten und Ergebnisse separate Verzeichnisse verwenden.

Eingabe
Versionierte Stichprobe
Rollback-Punkt
Schreibgeschützte Kopie der Rohdaten
B

Laufzeitumgebung prüfen

macOS, Runtime, Framework und Modellformat dokumentieren. Zuerst mit einer kleinen Stichprobe Laden, Inferenz und Speicherbedarf testen und danach den Umfang des Experiments festlegen.

Prüfung
Versionen und verfügbarer Arbeitsspeicher
Rollback-Punkt
Festgelegte Abhängigkeitsliste
C

Ergebnisse exportieren

Versuchsparameter, Ergebnisübersicht und erforderliche Logs ausgeben, ohne vollständige vertrauliche Daten in den Bericht aufzunehmen. Benötigte Ergebnisse vor Ende der Mietdauer in einen kontrollierten Speicher kopieren.

Ausgabe
Parameter, Zusammenfassung und Logs
Grenze
Kein bestimmter Durchsatz zugesichert
Konfiguration prüfen

Lassen sich Modell, Kontext und Zwischendaten nicht zuverlässig innerhalb von 16 GB RAM ausführen oder werden andere als die aufgeführten Chip- und Speicherkonfigurationen benötigt, wenden Sie sich zuerst an das Serviceteam. Ein erfolgreicher Prototyp ist kein Nachweis für Produktionskapazität.

Konfiguration für Experimente anfragen
Formulierungsbeispiele für Team-Reviews

Den Nutzen eines Workflows als überprüfbare technische Fakten beschreiben

Die folgenden rollenspezifischen Formulierungen eignen sich als Beispiele für interne Reviews. Sie stellen keine Bewertungen bestimmter Kunden, Rezensionen oder Empfehlungen von Unternehmen dar.

„Mir ist wichtiger, ob die Warteschlange ausschließlich unserem Team dient und ob nach einem Fehler aussagekräftige Logs bleiben. Klare Arbeitsverzeichnisse und Artefaktziele helfen mehr als allgemeine Aussagen zur Build-Geschwindigkeit.“

Verantwortliche Person für Mobile

„Wenn Branch-Jobs denselben physischen Rechner nutzen, müssen vor allem Prioritäten, Cache-Schlüssel und Bereinigungsregeln stimmen. Dedizierte Ressourcen schaffen die Grundlage für Isolation; die Pipeline müssen weiterhin wir selbst definieren.“

CI-Plattformingenieur

„Bei Verbindungen über verschiedene Zeitzonen hinweg möchte ich Remote-Zugriff, Hintergrund-Builds und Artefakt-Export getrennt halten. So ändern kurze Schwankungen der lokalen Netzwerkverbindung nichts an laufenden Build-Jobs.“

Unabhängiger Entwickler
Workflow übernehmen

Voraussetzungen, Umgebungsvariablen und Rollback-Punkte bei Fehlern

Erstellen Sie vor der Übernahme zunächst eine minimal lauffähige Version. Variablennamen lassen sich an Teamstandards anpassen, vertrauliche Werte gehören jedoch weder ins Repository noch direkt in Build-Logs.

Checkliste für die Umsetzung der fünf Referenz-Workflows
Workflow Voraussetzungen Umgebungsvariablen Rollback-Punkt bei Fehlern
App-Builds automatisieren Repository-Zugriff, Xcode-Version, Scheme, Abhängigkeits-Lockdateien, Exportkonfiguration REPO_REF
BUILD_SCHEME
EXPORT_PATH
Ergebnisdatei und Commit-ID sichern, temporären Schlüsselbund löschen und zum letzten erfolgreich baubaren Commit zurückkehren
Builds für mehrere Branches Branch-Prioritäten, separate Arbeitsverzeichnisse, Parallelitätsbegrenzung, idempotentes Bereinigungsskript BRANCH_NAME
RUN_PRIORITY
WORK_ROOT
Weitere Jobs stoppen, aktuelle Logs sichern und einen sauberen Arbeitsbaum sowie die ursprüngliche Warteschlangenreihenfolge wiederherstellen
Flutter iOS Flutter-Version, Podfile.lock, Xcode-Workspace, Regeln für Cache-Schlüssel FLUTTER_ROOT
PODS_CACHE_KEY
IOS_SCHEME
Caches schrittweise invalidieren, wiederverwendbare Logs behalten und ab dem zuletzt erfolgreichen Schritt erneut starten
TestFlight-Übergabe Release-Freigabe, Versionsinformationen, passende Signatur, Artefaktprüfung und vom Team kontrollierte Zugangsdaten RELEASE_VERSION
BUILD_NUMBER
ARTIFACT_PATH
Verteilungsjob stoppen, temporäre Zugangsdaten widerrufen, zur Prüfliste zurückkehren und einen neuen Release-Kandidaten erstellen
KI-Experimente Modellformat, kleine Datenstichprobe, Runtime-Version, Speicherüberwachung und Exportverzeichnis MODEL_PATH
DATASET_PATH
RESULT_PATH
Parameterliste und Ergebnisübersicht sichern, festgelegte Abhängigkeiten wiederherstellen und zur schreibgeschützten Rohdatenkopie zurückkehren
01 Mit einem minimalen Job starten

Nur ein Repository, ein Scheme und ein Ausgabeziel verwenden und prüfen, ob der Rechner den gesamten Ablauf erfolgreich durchläuft.

02 Dann vertrauliche Variablen einbinden

Zugangsdaten mit minimalen Berechtigungen kontrolliert bereitstellen und Protokollbereinigung, Ablauf und Rotation überprüfen.

03 Erst dann die Warteschlange erweitern

Vor weiteren Branches Prioritäten, Zeitüberschreitungen, Fehlerbereinigung und Regeln zum Aufräumen der Arbeitsverzeichnisse festlegen.

Referenz-Workflow auf einem dedizierten Cloud Mac umsetzen

Wählen Sie zuerst Mietdauer und Rechner aus. Prüfen Sie anschließend gemäß Anleitung die Verbindung, Xcode-Umgebung und Repository-Berechtigungen und erstellen Sie Ihr erstes Archive. Verfügbarkeit und Übergabedetails entnehmen Sie den aktuellen Angaben in der Konsole.