* Draft - add copy from Google doc * Add images * More WiP * test (#25121) * Update actions-scheduled-workflow-example.md The editor when changing a CRON time says the most frequent is 5 minutes. Either this section is incorrect or the editor pop over.. * Fix "labels" type * Add apps permissions for code scanning org endpoint. (#24859) * cope with possible translation drift (#24842) * cope with possible translation drift * fix test * don't shallow clone * fix unit tests * update code comments * more code comment corrections * more code comment * feedbacked * Add 💅 * Remove yzhang.markdown-all-in-one extension The markdown-all-in-one extension prevents Alfred expansions happening correctly. * Revert Add apps permissions for code scanning org endpoint (#25023) * Add security overview to github-security-features.md * updating ghcr_token github_token * archived asset redirects (#25025) * updating ghec_token to github_token * set 'manul-purge' surrogate key on assets/cb- URLs (#25028) * Member privileges edit for forking help doc (#24934) * calm down Backfill logging (#25031) * [Feb. 2, 2022] Updates for settings nav redesign (#24604) * Replace accessibility-tab.png with octicon * Update and version appearance-tab references * Replace codespaces-tab.png with octicon * Replace product name with reusable * Version reusable using developer-settings.png * Version reusable using notifcations_menu.png * Replace org-settings-pages.png with octicon * Version reusable using repos-tab.png * Version reusable using saved-replies-tab.png * Version reusable with settings-applications.png * Version reusable with settings-sidebar-account-security.png * version reusable with settings-sidebar-account-settings.png * Replace settings-sidebar-billing-plans.png with octicon * Replace settings-sidebar-blocked-users.png with octicon * Version settings-sidebar-deploy-keys.png * Version reusable with settings-sidebar-emails.png * Replace settings-sidebar-interaction-limits.png with octicon * Replace settings-sidebar-organizations.png with octicon * Version use of settings-sidebar-repositories.png * Version reusable with settings-seidebar-security-analysis.png * Version reusable with settings-sidebar-ssh-keys.png * Version reusable with settings-sidebar-team-settings.png * Replace settings-sidebar-third-party-access.png with octicon * Version reusable with settings-user-orgs.png * Replace user-settings-pages.png with octicon * Update pages octicon * Add explicit versions to elsif tags * Rewording for consistency * Improve versioning for future GHAE * Add missing space Co-authored-by: Felicity Chapman <felicitymay@github.com> Co-authored-by: Felicity Chapman <felicitymay@github.com> * update search indexes * New translation batch for es (#25035) * Add crowdin translations * Run script/i18n/homogenize-frontmatter.js * Run script/i18n/fix-translation-errors.js * Run script/i18n/lint-translation-files.js --check parsing * run script/i18n/reset-files-with-broken-liquid-tags.js --language=es * run script/i18n/reset-known-broken-translation-files.js * Check in es CSV report * Remove duplicated word (#24974) * Fix when we show the 'All Enterprise Releases' link (#25002) * Enterprise versions start with 'enterprise-server' * Show only if all versions are ghes versions * Show link if there's any ghes versioning * Depend on the path for the tool switcher (#25018) * Azure: use shared env setter, fix comment workflow (#25044) * update azure deployments to use shared env getter, fix content changes table * update search indexes * update search indexes * Update workflow-syntax-for-github-actions.md * New translation batch for pt (#25050) * Add crowdin translations * Run script/i18n/homogenize-frontmatter.js * Run script/i18n/fix-translation-errors.js * Run script/i18n/lint-translation-files.js --check parsing * run script/i18n/reset-files-with-broken-liquid-tags.js --language=pt * run script/i18n/reset-known-broken-translation-files.js * update search indexes * The missing full stop was added. * update search indexes * update search indexes * New translation batch for pt (#25057) * Add crowdin translations * Run script/i18n/homogenize-frontmatter.js * Run script/i18n/fix-translation-errors.js * Run script/i18n/lint-translation-files.js --check parsing * run script/i18n/reset-files-with-broken-liquid-tags.js --language=pt * run script/i18n/reset-known-broken-translation-files.js * New translation batch for es (#25058) * Add crowdin translations * Run script/i18n/homogenize-frontmatter.js * Run script/i18n/fix-translation-errors.js * Run script/i18n/lint-translation-files.js --check parsing * run script/i18n/reset-files-with-broken-liquid-tags.js --language=es * run script/i18n/reset-known-broken-translation-files.js * update search indexes * update search indexes * Update OpenAPI Descriptions (#25047) * update search indexes * Enterprise bug fixes: week of Jan 31, 2022 (#25043) * delete the workflow linter (#25075) * an empty 'product', 'permissions', or 'learningTracks' gets stuck (#25070) * and empty 'this.product' gets stuck * add test to prove change * Update OpenAPI Descriptions (#25071) * Update OpenAPI Descriptions (#25076) * Update OpenAPI Descriptions * Add decorated OpenAPI schema files Co-authored-by: github-openapi-bot <github-openapi-bot@users.noreply.github.com> * basic tests of the search API (#25069) * basic tests of the search API * lfs * Revert "Revert Add apps permissions for code scanning org endpoint (#25023)" (#25026) * update website-scraper to update transitive nth-check dep (#25080) * update search indexes * New translation batch for es (#25088) * Add crowdin translations * Run script/i18n/homogenize-frontmatter.js * Run script/i18n/fix-translation-errors.js * Run script/i18n/lint-translation-files.js --check parsing * run script/i18n/reset-files-with-broken-liquid-tags.js --language=es * run script/i18n/reset-known-broken-translation-files.js * Update code-scanning-alert.png (#25072) * use manual surrogate key for nextjs static assets (#25096) * use manual surrogate key for nextjs static assets * refactor * update search indexes * Update differences-between-clustering-and-high-availability-ha.md (#25107) * Update OpenAPI Descriptions (#25104) * Add versioning for GHAE 3.3 (#24936) * Update content/code-security/getting-started/github-security-features.md * update search indexes * [Actions] `push` event does not have Activity types (#15124) * 📝 Clarify usage of single quotes in string datatype for literals (#14895) * Fix value of GITHUB_REF for release events (#14876) * New translation batch for pt (#25084) * Add crowdin translations * Run script/i18n/homogenize-frontmatter.js * Run script/i18n/fix-translation-errors.js * Run script/i18n/lint-translation-files.js --check parsing * run script/i18n/reset-files-with-broken-liquid-tags.js --language=pt * run script/i18n/reset-known-broken-translation-files.js Co-authored-by: Mike Surowiec <mikesurowiec@users.noreply.github.com> * New translation batch for ja (#25093) * Add crowdin translations * Run script/i18n/homogenize-frontmatter.js * Run script/i18n/lint-translation-files.js --check parsing * run script/i18n/reset-files-with-broken-liquid-tags.js --language=ja * run script/i18n/reset-known-broken-translation-files.js * Check in ja CSV report Co-authored-by: Mike Surowiec <mikesurowiec@users.noreply.github.com> * New translation batch for cn (#25090) * Add crowdin translations * Run script/i18n/homogenize-frontmatter.js * Run script/i18n/lint-translation-files.js --check parsing * Run script/i18n/lint-translation-files.js --check rendering * run script/i18n/reset-files-with-broken-liquid-tags.js --language=cn * run script/i18n/reset-known-broken-translation-files.js * Check in cn CSV report Co-authored-by: Mike Surowiec <mikesurowiec@users.noreply.github.com> * Create github-debian.sh * Update Dockerfile * Update procedures for personal account recovery with two-factor authentication (#25040) * delete old deploy.js script (#24862) Co-authored-by: Mark Battistella <markbattistella@users.noreply.github.com> Co-authored-by: Emily Grace Seville <emilyseville7cf@gmail.com> Co-authored-by: Octomerger Bot <63058869+Octomerger@users.noreply.github.com> Co-authored-by: Anders Starcke Henriksen <starcke@github.com> Co-authored-by: Peter Bengtsson <mail@peterbe.com> Co-authored-by: Laura Coursen <lecoursen@github.com> Co-authored-by: lucie-docs <40564413+lucie-docs@users.noreply.github.com> Co-authored-by: Josh Johanning <joshjohanning@github.com> Co-authored-by: Tahlia G <84726379+tahlialouisa@users.noreply.github.com> Co-authored-by: Ethan Palm <56270045+ethanpalm@users.noreply.github.com> Co-authored-by: Felicity Chapman <felicitymay@github.com> Co-authored-by: GitHub Actions <action@github.com> Co-authored-by: docubot <67483024+docubot@users.noreply.github.com> Co-authored-by: Simon Giesemann <kwacky1@github.com> Co-authored-by: Robert Sese <rsese@github.com> Co-authored-by: Mike Surowiec <mikesurowiec@users.noreply.github.com> Co-authored-by: Albin PK <56157868+albinpk@users.noreply.github.com> Co-authored-by: Dasun Tharanga <dasuntharangaflash@gmail.com> Co-authored-by: github-openapi-bot <69533958+github-openapi-bot@users.noreply.github.com> Co-authored-by: Ramya Parimi <33761166+ramyaparimi@users.noreply.github.com> Co-authored-by: github-openapi-bot <github-openapi-bot@users.noreply.github.com> Co-authored-by: Matt Pollard <mattpollard@users.noreply.github.com> Co-authored-by: Dorothy Mitchell <dorothymitchell@github.com> Co-authored-by: Andy J <mumfy@github.com> Co-authored-by: mc <42146119+mchammer01@users.noreply.github.com> Co-authored-by: Marko Kaznovac <kaznovac@users.noreply.github.com> Co-authored-by: Anil Seervi <61609033+AnilSeervi@users.noreply.github.com> Co-authored-by: Johanan Idicula <johanan@forcepush.tech> * Add more screenshots * complete items on plan * Revert changes to files I didn't change * Minor tweaks * Update content/codespaces/customizing-your-codespace/prebuilding-codespaces-for-your-project.md * Update content/codespaces/customizing-your-codespace/prebuilding-codespaces-for-your-project.md * Update content/codespaces/customizing-your-codespace/prebuilding-codespaces-for-your-project.md Co-authored-by: Jackie Jiménez <jaclynj@github.com> * Update content/codespaces/customizing-your-codespace/prebuilding-codespaces-for-your-project.md * Update content/codespaces/customizing-your-codespace/prebuilding-codespaces-for-your-project.md * Update content/codespaces/customizing-your-codespace/prebuilding-codespaces-for-your-project.md Co-authored-by: Jackie Jiménez <jaclynj@github.com> * Remove detail about building prebuilds by rerunning a workflow After deleting a prebuild configuration anyone who can access the workflow history can recreate the prebuilds by rerunning the previous workflow run - unless you go through manually deleting all of those entries from the workflow history. Removed this information as per review comment. * Update content/codespaces/customizing-your-codespace/prebuilding-codespaces-for-your-project.md Co-authored-by: Jackie Jiménez <jaclynj@github.com> * Update content/codespaces/customizing-your-codespace/prebuilding-codespaces-for-your-project.md * Update content/codespaces/customizing-your-codespace/prebuilding-codespaces-for-your-project.md * Update content/codespaces/customizing-your-codespace/prebuilding-codespaces-for-your-project.md Co-authored-by: Jackie Jiménez <jaclynj@github.com> * Update content/codespaces/customizing-your-codespace/prebuilding-codespaces-for-your-project.md * Update content/codespaces/customizing-your-codespace/prebuilding-codespaces-for-your-project.md * Update content/codespaces/customizing-your-codespace/prebuilding-codespaces-for-your-project.md * Update content/codespaces/customizing-your-codespace/prebuilding-codespaces-for-your-project.md Co-authored-by: Jackie Jiménez <jaclynj@github.com> * Update content/codespaces/customizing-your-codespace/prebuilding-codespaces-for-your-project.md * Update content/codespaces/customizing-your-codespace/prebuilding-codespaces-for-your-project.md Co-authored-by: Jackie Jiménez <jaclynj@github.com> * Update content/codespaces/customizing-your-codespace/prebuilding-codespaces-for-your-project.md * Update content/codespaces/customizing-your-codespace/prebuilding-codespaces-for-your-project.md * Update content/codespaces/customizing-your-codespace/prebuilding-codespaces-for-your-project.md * Update content/codespaces/customizing-your-codespace/prebuilding-codespaces-for-your-project.md Co-authored-by: Jackie Jiménez <jaclynj@github.com> * Update content/codespaces/customizing-your-codespace/prebuilding-codespaces-for-your-project.md * Update data/reusables/codespaces/billing-for-prebuilds.md * Update data/reusables/codespaces/billing-for-prebuilds.md * Restructure info into separate articles * Update content/codespaces/prebuilding-your-codespaces/about-codespaces-prebuilds.md Co-authored-by: Laura Coursen <lecoursen@github.com> * Move prerequisites section * Move billing info * Update content/codespaces/prebuilding-your-codespaces/configuring-prebuilds.md Co-authored-by: Laura Coursen <lecoursen@github.com> * Update content/codespaces/prebuilding-your-codespaces/configuring-prebuilds.md Co-authored-by: Laura Coursen <lecoursen@github.com> * Update content/codespaces/prebuilding-your-codespaces/configuring-prebuilds.md Co-authored-by: Laura Coursen <lecoursen@github.com> * Update content/codespaces/prebuilding-your-codespaces/managing-prebuilds.md Co-authored-by: Laura Coursen <lecoursen@github.com> * Update content/codespaces/prebuilding-your-codespaces/managing-prebuilds.md Co-authored-by: Laura Coursen <lecoursen@github.com> * Update content/codespaces/prebuilding-your-codespaces/managing-prebuilds.md Co-authored-by: Laura Coursen <lecoursen@github.com> * Update content/codespaces/prebuilding-your-codespaces/managing-prebuilds.md Co-authored-by: Laura Coursen <lecoursen@github.com> * Update content/codespaces/prebuilding-your-codespaces/managing-prebuilds.md Co-authored-by: Laura Coursen <lecoursen@github.com> * Update content/codespaces/prebuilding-your-codespaces/managing-prebuilds.md Co-authored-by: Laura Coursen <lecoursen@github.com> * Update content/codespaces/prebuilding-your-codespaces/managing-prebuilds.md Co-authored-by: Laura Coursen <lecoursen@github.com> * Update content/codespaces/prebuilding-your-codespaces/managing-prebuilds.md Co-authored-by: Laura Coursen <lecoursen@github.com> * Update content/codespaces/prebuilding-your-codespaces/managing-prebuilds.md Co-authored-by: Laura Coursen <lecoursen@github.com> * Update content/codespaces/prebuilding-your-codespaces/managing-prebuilds.md Co-authored-by: Laura Coursen <lecoursen@github.com> * Update content/codespaces/prebuilding-your-codespaces/managing-prebuilds.md Co-authored-by: Laura Coursen <lecoursen@github.com> * Update content/codespaces/prebuilding-your-codespaces/managing-prebuilds.md * Update content/codespaces/prebuilding-your-codespaces/managing-prebuilds.md Co-authored-by: Laura Coursen <lecoursen@github.com> * Update content/codespaces/prebuilding-your-codespaces/managing-prebuilds.md Co-authored-by: Laura Coursen <lecoursen@github.com> * Update content/codespaces/prebuilding-your-codespaces/managing-prebuilds.md Co-authored-by: Laura Coursen <lecoursen@github.com> * Update data/reusables/codespaces/billing-for-prebuilds.md * Update data/reusables/codespaces/billing-for-prebuilds.md Co-authored-by: Laura Coursen <lecoursen@github.com> * Move deletion points, as per review comment * Update link * Add links to new information * Make review comment changes * Update content/codespaces/prebuilding-your-codespaces/managing-prebuilds.md Co-authored-by: Jackie Jiménez <jaclynj@github.com> * Update content/codespaces/prebuilding-your-codespaces/testing-dev-container-changes.md * Update content/codespaces/prebuilding-your-codespaces/testing-dev-container-changes.md Co-authored-by: Jackie Jiménez <jaclynj@github.com> * Optimize images Co-authored-by: Mark Battistella <markbattistella@users.noreply.github.com> Co-authored-by: Emily Grace Seville <emilyseville7cf@gmail.com> Co-authored-by: Octomerger Bot <63058869+Octomerger@users.noreply.github.com> Co-authored-by: Anders Starcke Henriksen <starcke@github.com> Co-authored-by: Peter Bengtsson <mail@peterbe.com> Co-authored-by: Laura Coursen <lecoursen@github.com> Co-authored-by: lucie-docs <40564413+lucie-docs@users.noreply.github.com> Co-authored-by: Josh Johanning <joshjohanning@github.com> Co-authored-by: Tahlia G <84726379+tahlialouisa@users.noreply.github.com> Co-authored-by: Ethan Palm <56270045+ethanpalm@users.noreply.github.com> Co-authored-by: Felicity Chapman <felicitymay@github.com> Co-authored-by: GitHub Actions <action@github.com> Co-authored-by: docubot <67483024+docubot@users.noreply.github.com> Co-authored-by: Simon Giesemann <kwacky1@github.com> Co-authored-by: Robert Sese <rsese@github.com> Co-authored-by: Mike Surowiec <mikesurowiec@users.noreply.github.com> Co-authored-by: Albin PK <56157868+albinpk@users.noreply.github.com> Co-authored-by: Dasun Tharanga <dasuntharangaflash@gmail.com> Co-authored-by: github-openapi-bot <69533958+github-openapi-bot@users.noreply.github.com> Co-authored-by: Ramya Parimi <33761166+ramyaparimi@users.noreply.github.com> Co-authored-by: github-openapi-bot <github-openapi-bot@users.noreply.github.com> Co-authored-by: Matt Pollard <mattpollard@users.noreply.github.com> Co-authored-by: Dorothy Mitchell <dorothymitchell@github.com> Co-authored-by: Andy J <mumfy@github.com> Co-authored-by: mc <42146119+mchammer01@users.noreply.github.com> Co-authored-by: Marko Kaznovac <kaznovac@users.noreply.github.com> Co-authored-by: Anil Seervi <61609033+AnilSeervi@users.noreply.github.com> Co-authored-by: Johanan Idicula <johanan@forcepush.tech> Co-authored-by: Jackie Jiménez <jaclynj@github.com> Co-authored-by: github-actions <github-actions@github.com>
8.1 KiB
title, shortTitle, intro, versions, type, topics, product, permissions
| title | shortTitle | intro | versions | type | topics | product | permissions | ||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Configuring prebuilds | Configure prebuilds | You can configure your project to prebuild a codespace automatically each time you push a change to your repository. |
|
how_to |
|
{% data reusables.gated-features.codespaces %} | People with admin access to a repository can configure prebuilds for the repository. |
{% data reusables.codespaces.prebuilds-beta-note %}
You can set up a prebuild configuration for a specific branch of your repository.
Any branch created from a prebuild-enabled base branch will typically also get assigned a prebuild during codespace creation. This is true if the dev container on the branch is the same as on the base branch. This is because the majority of the prebuild configuration for branches with the same dev container configuration are identical, so developers can benefit from faster codespace creation times on those branches also. For more information, see "Introduction to dev containers."
Typically, when you configure prebuilds for a branch, prebuilds will be available for {% data variables.product.prodname_codespaces %} machine types for that branch. However, if your repository is greater than 32 GB, prebuilds won't be available for 2-core and 4-core machine types, since the storage these provide is limited to 32 GB.
Prerequisites
Before you can configure prebuilds for your project the following must be true:
- {% data variables.product.prodname_github_codespaces %} must be enabled for your organization. For more information, see "Enabling {% data variables.product.prodname_codespaces %} for your organization."
- {% data variables.product.prodname_actions %} must be enabled for your repository. Each prebuild configuration needs to be able to trigger an associated Actions workflow. For more information, see "Managing {% data variables.product.prodname_actions %} settings for a repository."
Configuring a prebuild
{% data reusables.repositories.navigate-to-repo %} {% data reusables.repositories.sidebar-settings %}
-
In the "Code & automation" section of the sidebar, click {% octicon "codespaces" aria-label="The Codespaces icon" %} {% data variables.product.prodname_codespaces %}.
-
Under "Prebuild configuration", click Set up prebuild.
-
Choose the branch for which you want to set up a prebuild.
{% note %}
Note: Any branches created from a prebuild-enabled base branch will typically also get prebuilds. For example, if you enable prebuilds for the default branch of the repository, branches based on the default branch will, in most cases, also get prebuilds. For more information, see "Why do I get prebuilds for branches that do not have prebuilds enabled?"
{% endnote %}
-
Choose the regions in which you want to set up a prebuild. Developers must be located in a region you select to be able to create codespaces from a prebuild. Alternatively, select All regions.
{% note %}
Notes:
- The prebuild template for each region will incur individual charges. You should, therefore, only enable prebuilds for regions in which you know they'll be used. For more information, see "About {% data variables.product.prodname_codespaces %} prebuilds."
- Developers can set their default region for {% data variables.product.prodname_codespaces %}, which can allow you to enable prebuilds for fewer regions. For more information, see "Setting your default region for {% data variables.product.prodname_codespaces %}."
{% endnote %}
-
Click Create.
The prebuild configuration is listed on the {% data variables.product.prodname_codespaces %} page of your repository settings. A {% data variables.product.prodname_actions %} workflow is queued and then run to create prebuild templates, based on the branch you selected, in the regions you specified.
{% note %}
Note: By default, the {% data variables.product.prodname_actions %} workflow for a prebuild configuration can only access resources in its own repository. If your project uses resources from outside of the repository, you'll need to set the
CODESPACES_PREBUILD_TOKENsecret to grant the required access. For more information, see "Allowing a prebuild to access external resources."{% endnote %}
Configuring access to resources that are not in the repository
By default, the {% data variables.product.prodname_actions %} workflow for a prebuild configuration can only access its own repository contents. If your project needs to access external resources to build the development environment, you will need to set up a personal access token (PAT) with the appropriate access scopes.
For more information, see “Allowing a prebuild to access external resources."
Configuring environment variables
To allow the prebuild process to access environment variables required to create your development environment, you can set these either as {% data variables.product.prodname_codespaces %} repository secrets or as {% data variables.product.prodname_codespaces %} organization secrets. For more information, see "Adding secrets for a repository" and "Adding secrets for an organization."
Prebuilds do not use any user-level secrets while building your environment, because these are not added until after the codespace has been created.
{% data variables.product.prodname_codespaces %} secrets that you create in this way will be accessible by anyone who creates a codespace from this repository. If you do not want this, you can alternatively set the CODESPACES_PREBUILD_TOKEN secret. The CODESPACES_PREBUILD_TOKEN secret is only used for prebuilding and its value is not accessible in users' codespaces. For more information, see “Allowing a prebuild to access external resources."
Configuring time-consuming tasks to be included in the prebuild
You can use the onCreateCommand and updateContentCommand commands in your devcontainer.json to include time-consuming processes as part of the prebuild template creation. For more information, see the Visual Studio Code documentation, "devcontainer.json reference."
onCreateCommand is run only once, when the prebuild template is created, whereas updateContentCommand is run at template creation and at subsequent template updates. Incremental builds should be included in updateContentCommand since they represent the source of your project and need to be included for every prebuild template update.


