Übersicht
Aktivieren von differenziellen Builds
Den Schalter aktivieren
Aktivieren Sie den Schalter differenzielle Builds. Die Beschreibung lautet: „Schnellere Builds durch Wiederverwendung unveränderter Workspaces.“
So funktioniert es
1. Einen übergeordneten Build finden
success oder partial), um ihn als übergeordneten Build zu verwenden. Wenn kein geeigneter übergeordneter Build vorhanden ist, fällt der Build automatisch auf einen vollständigen Build zurück.
2. Blueprints vergleichen
3. Workspace-Aktionen zuweisen
| Aktion | Was passiert | Wann sie zum Einsatz kommt |
|---|---|---|
| Rebuild | Repo klonen und alle Blueprint-Schritte (initialize + maintenance) von Grund auf ausführen | Der Blueprint wurde seit dem übergeordneten Build geändert |
| Inherit | Den neuesten Code abrufen und nur maintenance-Schritte ausführen | Der Blueprint ist unverändert — das Setup des übergeordneten Builds wiederverwenden |
| Remove | Den Workspace aus dem Snapshot löschen | Der Workspace wurde aus der Konfiguration entfernt |
Bei vererbten Workspaces wird
initialize nicht erneut ausgeführt. Schreiben Sie maintenance
so, dass es in sich geschlossen ist und nach dem Abrufen des neuesten Codes
eigenständig ausgeführt werden kann. Es kann Tools und Runtimes verwenden, die bereits im übergeordneten Snapshot installiert sind,
darf aber nicht voraussetzen, dass initialize unmittelbar davor ausgeführt wurde, oder sich auf
Umgebungsvariablen verlassen, die initialize zuvor in $ENVRC geschrieben hat.4. Build ausführen
- Vererbte Workspaces haben ihre Tools, Runtimes und Abhängigkeiten bereits installiert. Das System holt den neuesten Code (
git pull) und führtmaintenanceaus, um Abhängigkeiten zu aktualisieren. - Neu erstellte Workspaces werden von Grund auf eingerichtet — frisch geklont und mit der vollständigen Sequenz aus
initialize+maintenance. - Entfernte Workspaces werden aus ihren Verzeichnissen bereinigt.
initialize bei differenziellen Builds (da die Tools bereits im übergeordneten Image vorhanden sind) und führen nur maintenance aus.
$ENVRC wird zu Beginn jedes Builds zurückgesetzt, einschließlich differenzieller Builds.
Umgebungsvariablen und PATH-Einträge, die von einem vorherigen
Build in $ENVRC geschrieben wurden, werden nicht übernommen. Wenn maintenance sie benötigt, muss es sie
selbst konfigurieren.Wann stattdessen ein vollständiger Build ausgeführt wird
- Es gibt keinen übergeordneten Build — erster Build oder alle vorherigen Builds sind fehlgeschlagen
- Organization- oder Enterprise-Blueprint wurde geändert — globale Änderungen betreffen alle Workspaces, daher ist ein vollständiger Neuaufbau sicherer
- Die Reihenfolge der Repositorys wurde geändert — da Repos von der Einrichtung anderer Repos abhängen können, löst eine Umordnung einen vollständigen Neuaufbau aus
- Der übergeordnete Build ist zu alt oder inkompatibel — das System prüft, ob der übergeordnete Build geeignet ist
Build-Typ anzeigen
- Gehen Sie zu Settings > Environment > Snapshots
- Klicken Sie im Verlauf auf einen Build
- Das Badge Build kind zeigt entweder Differential (blau) oder vollständiger Build (Standard) an
- Differential: “Nur geänderte Workspaces werden neu gebaut; unveränderte werden vom letzten erfolgreichen Build mit derselben Konfiguration übernommen”
- vollständiger Build: “Alle Workspaces werden von Grund auf neu gebaut”
Vorteile
| Vorteil | Beschreibung |
|---|---|
| Schnellere Builds | Nur geänderte Workspaces durchlaufen den vollständigen Einrichtungsprozess. Vererbte Workspaces überspringen initialize vollständig. |
| Weniger Netzwerkauslastung | Unveränderte Workspaces laden Tools, Runtimes oder große Abhängigkeiten nicht erneut herunter. |
| Schnellere Iteration | Wenn Sie den Blueprint eines einzelnen Repo überarbeiten, bremsen andere Repo den Build nicht aus. |
| Gleiche Zuverlässigkeit | Wenn etwas nicht stimmt, greift das System automatisch auf einen vollständigen Build zurück. Sie können außerdem jederzeit manuell einen vollständigen Build auslösen. |
Vollständigen Build manuell auslösen
initialize- und maintenance-Schritte erneut aus.
FAQ
Beeinflusst das Aktivieren differenzieller Builds meine Sitzungen?
Beeinflusst das Aktivieren differenzieller Builds meine Sitzungen?
Nein. Sitzungen starten immer vom finalen Snapshot, unabhängig davon, wie er erstellt wurde. Der einzige Unterschied ist die Build-Geschwindigkeit.
Was ist, wenn ein differenzieller Build einen fehlerhaften Snapshot erzeugt?
Was ist, wenn ein differenzieller Build einen fehlerhaften Snapshot erzeugt?
Pinnen Sie unter Settings > Environment > Snapshots einen zuvor als funktionierend bekannten Build an und starten Sie dann einen vollständigen Build, um einen sauberen Snapshot zu erhalten. Sie können differenzielle Builds auch komplett deaktivieren, um wieder zu vollständigen Builds zurückzukehren.
Können partielle Builds als übergeordnete Builds dienen?
Können partielle Builds als übergeordnete Builds dienen?
Ja. Ein Build mit dem Status
partial (einige Workspaces waren erfolgreich, andere sind fehlgeschlagen) kann als übergeordneter Build dienen. Das System übernimmt nur von Workspaces, die im übergeordneten Build erfolgreich waren.
