Skip to main content

Konfigurieren von Prebuilds

Du kannst dein Projekt so konfigurieren, dass ein Codespace automatisch erstellt wird, wenn du eine Änderung an dein Repository sendest.

Wer kann dieses Feature verwenden?

People with admin access to a repository can configure prebuilds for the repository.

Einstellungen auf Repositoryebene für GitHub Codespaces sind für alle Repositorys verfügbar, die persönlichen Konten gehören.

Für Repositorys im Besitz von Organisationen sind Einstellungen auf Repositoryebene für GitHub Codespaces für Organisationen in GitHub Team und GitHub Enterprise-Plänen verfügbar. Um auf die Einstellungen zugreifen zu können, muss die Organisation oder ihr Stammunternehmen eine Zahlungsmethode hinzugefügt und ein Ausgabenlimit für GitHub Codespaces festgelegt haben. Weitere Informationen findest du unter Auswählen der Besitzerinnen und Zahlerinnen von Codespaces in deiner Organisation und unter GitHub-Pläne.

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

  1. Navigiere auf GitHub.com zur Hauptseite des Repositorys.

  2. 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.

    Screenshot eines Repositoryheaders mit den Registerkarten. Die Registerkarte „Einstellungen“ ist dunkelorange umrandet.

  3. Klicke im Abschnitt „Code und Automatisierung“ der Randleiste auf Codespaces .

  4. Klicke im Abschnitt „Prebuildkonfiguration“ der Seite auf Prebuild einrichten.

    Screenshot des Abschnitts „Prebuildkonfiguration“ der Einstellungsseite „Codespaces“ mit der Schaltfläche „Prebuilds einrichten“

  5. Wähle den Branch aus, für den du Prebuilds einrichten möchtest.

    Screenshot der Einstellungen „Konfiguration“ für einen Prebuild mit einem Dropdownmenü, in dem Branches ausgewählt werden. Der Branch „main“ ist derzeit ausgewählt.

    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.

  6. 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.

    Screenshot des Dropdownmenüs der Konfigurationsdatei, vier Konfigurationsdateien sind aufgeführt, und „.devcontainer/devcontainer.json“ ist ausgewählt.

  7. 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.

    Screenshot der Einstellungen „Prebuildtrigger“, die Option „Geplant“ ist ausgewählt und auf „Jeden Tag“ um „13:00“ und „15:30“ festgelegt.

  8. 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.

    Screenshot der Einstellungen „Regionale Verfügbarkeit“, die Option „Prebuild auf bestimmte Regionen einschränken“ ist mit zwei Regionen ausgewählt.

    Hinweise:

  9. 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.

    Screenshot der Einstellung „Vorlagenverlauf“, die auf zwei Versionen festgelegt ist.

    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.

  10. 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.

    Screenshot der Einstellung „Fehlerbenachrichtigungen“, das Team „octocat-team“ wurde hinzugefügt.

    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.

  11. Wähle am unteren Rand der Seite die Option Erweiterte Optionen anzeigen aus.

    Screenshot: Unterer Teil der Konfigurationsseite für Prebuilds. Der Link „Erweiterte Optionen anzeigen“ ist dunkelorange umrandet.

    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.

  12. 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.

    Screenshot: Autorisierungsseite für eine Prebuildkonfiguration. In dieser Anforderung sind drei Berechtigungen aufgeführt.

    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.

Screenshot der Liste der Prebuildkonfigurationen. Es ist ein Prebuild mit der Bezeichnung „Derzeit ausgeführt“ aufgelistet. Rechts davon befindet sich eine Schaltfläche „Ausgabe anzeigen“.

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.

Weitere Informationsquellen