Du kannst eine Prebuildkonfiguration für die Kombination eines bestimmten Branchs deines Repositorys mit einer bestimmten Dev-Containerkonfigurationsdatei einrichten.
Alle Branches, die aus einem übergeordneten Branch mit Prebuildunterstützung erstellt werden, erhalten in der Regel auch Prebuilds für die gleiche Dev-Containerkonfiguration. Das liegt daran, dass Prebuilds für untergeordnete Branches, die die gleiche Entwicklungscontainerkonfiguration wie der übergeordnete Branch verwenden, größtenteils identisch sind, sodass Entwickler*innen auch von den schnelleren Codespace-Erstellungszeiten für diese Branches profitieren können. Weitere Informationen findest du unter Einführung in Entwicklungscontainer.
Bei der Konfiguration von Prebuilds für einen Branch stehen Prebuilds für mehrere Computertypen zur Verfügung. Wenn dein Repository jedoch größer als 32 GB ist, sind Prebuilds für 2-Kern- und 4-Kern-Computer nicht verfügbar, da der von diesen bereitgestellte Speicher auf 32 GB begrenzt ist.
Voraussetzungen
Prebuilds werden mit GitHub Actions erstellt. Daher muss GitHub Actions für das Repository aktiviert werden, für das du Prebuilds konfigurierst. Weitere Informationen findest du unter Verwalten von GitHub Actions-Einstellungen für ein Repository.
Du kannst Prebuilds in jedem Repository einrichten, das einem persönliches Konto gehört. Der Prebuild verbraucht Speicherplatz, für den eine abrechenbare Gebühr anfällt oder, im Fall von Repositorys, die deinem persönlichen Konto gehören, ein Teil deines monatlich enthaltenen Speichers verwendet wird.
Hinweis: Weitere Informationen finden Sie unter "Informationen zur Abrechnung für GitHub Codespaces".
Für Repositorys, die einer Organisation gehören, kannst du Prebuilds einrichten, wenn die Organisation einen GitHub Team- oder GitHub Enterprise-Plan besitzt. Darüber hinaus musst du eine Zahlungsmethode hinzugefügt und ein Ausgabenlimit für GitHub Codespaces für das Organisationskonto oder das übergeordnete Unternehmen festgelegt haben. Weitere Informationen findest du unter Verwalten des Ausgabenlimits für GitHub Codespaces und unter GitHub-Pläne.
Konfigurieren von Prebuilds
-
Navigieren Sie auf GitHub zur Hauptseite des Repositorys.
-
Wähle unter dem Namen deines Repositorys die Option Einstellungen aus. Wenn die Registerkarte „Einstellungen“ nicht angezeigt wird, wähle im Dropdownmenü die Option Einstellungen aus.
-
Klicke im Abschnitt „Code und Automatisierung“ der Randleiste auf Codespaces .
-
Klicke im Abschnitt „Prebuildkonfiguration“ der Seite auf Prebuild einrichten.
-
Wähle den Branch aus, für den du Prebuilds einrichten möchtest.
Hinweis: Alle Branches, die aus einem Basisbranch mit Prebuildunterstützung erstellt werden, erhalten in der Regel auch Prebuilds für die gleiche Dev-Containerkonfiguration. Wenn du beispielsweise Prebuilds für eine Dev-Containerkonfigurationsdatei im Standardbranch des Repositorys aktivierst, erhalten Branches, die auf dem Standardbranch basieren, in den meisten Fällen ebenfalls Prebuilds für die gleiche Dev-Containerkonfiguration.
-
Wähle optional im angezeigten Dropdownmenü Konfigurationsdatei die
devcontainer.json
-Konfigurationsdatei aus, die du für deine Prebuilds verwenden möchtest. Weitere Informationen findest du unter Einführung in Entwicklungscontainer. -
Wähle aus, wie du die Updates von Prebuilds automatisch auslösen möchtest.
-
Bei jedem Push (Standardeinstellung): Mit dieser Einstellung werden Prebuilds bei jedem Push aktualisiert, der in den angegebenen Branch erfolgt. So wird sichergestellt, dass die aus einem Prebuild generierten Codespaces stets die neueste Codespacekonfiguration enthalten, einschließlich aller zuletzt hinzugefügten oder aktualisierten Abhängigkeiten.
-
Bei Konfigurationsänderung: Mit dieser Einstellung werden Prebuilds jedes Mal aktualisiert, wenn eine der folgenden Dateien geändert wird:
-
.devcontainer/devcontainer.json
Hinweis: Prebuildupdates werden nicht durch Änderungen an
devcontainer.json
-Dateien in Unterverzeichnissen von.devcontainer
ausgelöst. -
Das Dockerfile, auf den in der
build.dockerfile
-Eigenschaft der.devcontainer/devcontainer.json
-Datei verwiesen wird.
Mit dieser Einstellung wird sichergestellt, dass Änderungen an den Konfigurationsdateien des Entwicklungscontainers für das Repository verwendet werden, wenn ein Codespace anhand eines Prebuilds generiert wird. Der GitHub Actions-Workflow, der die Prebuilds aktualisiert, wird seltener ausgeführt, sodass diese Option weniger GitHub Actions-Minuten benötigt. Diese Option garantiert jedoch nicht, dass Codespaces immer zuletzt hinzugefügte oder aktualisierte Abhängigkeiten enthalten, sodass diese möglicherweise manuell hinzugefügt oder aktualisiert werden müssen, nachdem ein Codespace erstellt wurde.
-
-
Geplant: Mit dieser Einstellung kannst du festlegen, dass deine Prebuilds nach einem benutzerdefinierten Zeitplan aktualisiert werden. Dies kann den Verbrauch von GitHub Actions-Minuten verringern. Mit dieser Option werden jedoch möglicherweise Codespaces erstellt, bei denen die neuesten Konfigurationsänderungen des Entwicklungscontainers nicht übernommen werden.
-
-
Wähle optional Prebuild auf bestimmte Regionen beschränken aus, um Prebuilds nur in bestimmten Regionen zu erstellen. Wähle die Regionen aus, in denen Prebuilds verfügbar sein sollen.
Standardmäßig werden Prebuilds in allen verfügbaren Regionen erstellt, wobei Speichergebühren pro Prebuild anfallen.
Hinweise:
- Für den Prebuild in jeder Region fallen individuelle Speichergebühren an. Du solltest daher nur Prebuilds für Regionen aktivieren, von denen du weißt, dass sie verwendet werden. Weitere Informationen findest du unter Informationen zur Abrechnung für GitHub Codespaces.
- Entwickler*innen können deine Standardregion für GitHub Codespaces festlegen, wodurch du Prebuilds für weniger Regionen aktivieren kannst. Weitere Informationen findest du unter Festlegen deiner Standardregion für GitHub Codespaces.
-
Lege unter Vorlagenverlauf wahlweise die Anzahl der Prebuildversionen fest, die aufbewahrt werden sollen. Du kannst eine beliebige Zahl zwischen 1 und 5 eingeben. Standardmäßig werden zwei Versionen gespeichert. Das bedeutet, dass nur der neueste Prebuild und die Vorgängerversion gespeichert werden.
Abhängig von den Triggereinstellungen könnte der Prebuild mit jedem Push oder jeder Konfigurationsänderung im Entwicklungscontainer geändert werden. Wenn du ältere Versionen von Prebuilds aufbewahrst, kannst du einen Prebuild aus einem älteren Commit mit einer anderen Konfiguration für den Entwicklungscontainer erstellen als der aktuelle Prebuild. Mit dieser Einstellung kannst du die Anzahl der aufbewahrten Versionen auf ein für deine Anforderungen geeignetes Maß festlegen.
Wenn du festlegst, dass nur eine Version deines Prebuilds gespeichert wird, bewahrt GitHub Codespaces nur die neueste Version des Prebuilds auf. Ältere Versionen werden bei jedem Update der Vorlage gelöscht. Das bedeutet, dass kein vordefinierter Codespace vorhanden ist, wenn du zurück zu einer älteren Konfiguration des Entwicklungscontainers wechselst.
Für jede Prebuildversion, die aufbewahrt wird, fallen Speicherkosten an. Wenn du beispielsweise Prebuilds in vier Regionen generieren und zwei Versionen aufbewahren möchtest, werden dir bis zu acht Prebuilds in Rechnung gestellt. Weitere Informationen zur Abrechnung findest du unter Informationen zur Abrechnung für GitHub Codespaces.
-
Füge wahlweise Benutzerinnen oder Teams hinzu, die benachrichtigt werden sollen, wenn bei der Ausführung des Prebuildworkflows für diese Konfiguration ein Fehler auftritt. Beginne mit der Eingabe eines Benutzernamens, eines Teamnamens oder eines vollständigen Namens, und klicke dann auf den gewünschten Namen, sobald dieser angezeigt wird, um ihn der Liste hinzuzufügen. Die Benutzerinnen oder Teams, die du hinzufügst, erhalten eine E-Mail, wenn Prebuildfehler auftreten. Diese enthält einen Link zu den Ausführungsprotokollen des Workflows, um weitere Untersuchungen zu erleichtern.
Hinweis: Personen erhalten nur Benachrichtigungen über fehlerhafte Prebuilds, wenn sie Benachrichtigungen für fehlerhafte Actions-Workflows in ihren persönlichen Einstellungen aktiviert haben. Weitere Informationen findest du unter Benachrichtigungen konfigurieren.
-
Wähle am unteren Rand der Seite die Option Erweiterte Optionen anzeigen aus.
Wenn du im Abschnitt „Erweiterte Optionen“ die Option Prebuildoptimierung deaktivieren auswählst, werden Codespaces ohne Prebuild erstellt, wenn der neueste Prebuildworkflow fehlgeschlagen ist oder gerade ausgeführt wird. Weitere Informationen findest du unter Problembehandlung bei Prebuilds.
-
Klicke auf Erstellen.
Wenn die Dev-Containerkonfiguration für das Repository Berechtigungen für den Zugriff auf andere Repositorys angibt, wird dir eine Autorisierungsseite angezeigt. Weitere Informationen dazu, wie dies in der
devcontainer.json
-Datei angegeben wird, findest du unter Verwalten des Zugriffs auf andere Repositorys innerhalb deines Codespace.Klicke auf , um die Details der angeforderten Berechtigungen anzuzeigen.
Klicke auf Autorisieren und fortfahren, um diese Berechtigungen für die Erstellung von Prebuilds zu erteilen. Alternativ kannst du auf Ohne Autorisierung fortfahren klicken. In diesem Fall funktionieren die Codespaces, die aus den resultierenden Prebuilds erstellt wurden, jedoch möglicherweise nicht ordnungsgemäß
Hinweis: Benutzer, die Codespaces mit diesem Prebuild erstellen, werden ebenfalls aufgefordert, diese Berechtigungen zu erteilen.
Nachdem du eine Prebuildkonfiguration erstellt hast, wird diese auf der Seite GitHub Codespaces in deinen Repositoryeinstellungen aufgeführt. Ein GitHub Actions-Workflow wird in die Warteschlange gestellt und anschließend ausgeführt, um Prebuilds in den angegebenen Regionen basierend auf deiner Auswahl für den Branch und die Dev-Containerkonfigurationsdatei zu erstellen.
Informationen zum Bearbeiten und Löschen von Prebuildkonfigurationen findest du unter Verwalten von Prebuilds.
Konfigurieren von Umgebungsvariablen
Damit der Prebuildprozess auf Umgebungsvariablen zugreifen kann, die zum Erstellen deiner Entwicklungsumgebung erforderlich sind, kannst du diese entweder als Codespaces-Repositorygeheimnisse oder als Codespaces-Organisationsgeheimnisse festlegen. Geheimnisse, die du auf diese Weise erstellst, sind für alle Personen zugänglich, die einen Codespace aus diesem Repository erstellen. Weitere Informationen findest du unter Verwalten von Entwicklungsumgebungs-Geheimnissen für Ihr Repository oder Ihre Organisation.
Prebuilds können bei der Erstellung deiner Umgebung keine Geheimnisse auf Benutzerebene verwenden, da diese erst nach der Erstellung des Codespaces verfügbar sind.
Konfigurieren von zeitaufwendigen Aufgaben, die im Prebuild enthalten sind
Du kannst die Befehle onCreateCommand
und updateContentCommand
in deine devcontainer.json
-Datei einschließen, um zeitaufwändige Prozesse bei der Erstellung des Prebuilds zu verwenden. Weitere Informationen findest du in der Visual Studio Code-Dokumentation unter Referenz zu „devcontainer.json“.
onCreateCommand
wird nur einmal ausgeführt, wenn der Prebuild erstellt wird, wobei updateContentCommand
zum Zeitpunkt der Erstellung des Prebuilds und bei nachfolgenden Updates ausgeführt wird. Inkrementelle Builds sollten in updateContentCommand
enthalten sein, da sie die Quelle deines Projekts darstellen und in jedem Prebuildupdate enthalten sein müssen.