Skip to main content

Configurando as pré-criações

Você pode configurar o seu projeto para pré-criar um codespace automaticamente cada vez que você fizer push de uma alteração no repositório.

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

Codespaces is available for organizations using GitHub Team or GitHub Enterprise Cloud. Para obter mais informações, consulte os "produtos do GitHub".

É possível definir uma configuração de pré-criação para um branch específico do repositório.

Qualquer branch criado a partir de um branchde base pré-compilado normalmente também receberá uma pré-compilação durante a criação do codespace. Isso é verdade se o contêiner de desenvolvimento no branch for o mesmo que no branch de base. Isso ocorre porque a maioria da configuração de pré-compilação para branches com a mesma configuração de contêiner de desenvolvimento são idênticos, para que os desenvolvedores possam se beneficiar de horários de criação de codespaces mais rápidos também nesses branches. Para obter mais informações, consulte "Introdução a contêineres de desenvolvimento".

Normalmente, ao configurar pré-compilações para um branch, as pré-compilações estarão disponíveis para tipos de máquinas de Codespaces para esse branch. No entanto, se seu repositório tiver um tamanho superior a 32 GB, as pré-compilações não estarão disponíveis para tipos de máquina 2-core e 4-core, uma vez que o armazenamento previsto é limitado a 32 GB.

Prebuilds are not available if you choose to use a devcontainer.json file from a .devcontainer/SUBDIRECTORY location when you create a codespace. For information about choosing a devcontainer.json file, see "Creating a codespace."

Pré-requisitos

Antes de configurar as pré-compilações para seu projeto, os pontos a seguir devem ser verdadeiros:

Configurando uma pré-compilação

  1. No GitHub.com, navegue até a página principal do repositório.

  2. No nome do seu repositório, clique em Configurações. Botão de configurações do repositório

  3. Na seção "Código & automação" da barra lateral, clique em Codespaces.

  4. Em "Configuração de pré-compilação", clique em Configurar pré-compilação.

    O botão "Configurar pré-compilações"

  5. Escolha o branch para o qual você deseja configurar uma pré-compilação.

    Menu suspenso Branch

    Observação: Todos os branches criados a partir de um branch de base pré-habilitado normalmente também obtêm pré-compilações. Por exemplo, se você habilitar pré-compilações para o branch padrão do repositório, os branches baseados no branch padrão também obterão, na maioria dos casos, pré-compilações.

  6. Escolha como você quer acionar automaticamente as atualizações do modelo de pré-criação.

    • Cada push (a configuração padrão) - Com esta configuração, configurações de pré-criação serão atualizadas a cada push feito para o branch determinado. Isto irá garantir que os codespaces gerados a partir de um template de pré-criação sempre contenham as configurações mais recentes de codespace, incluindo as dependências adicionadas recentemente ou atualizadas.
    • Na alteração da configuração - Com essa configuração, as configurações de pré-criação serão atualizadas toda vez que os arquivos de configuração associados para um determinado repositório e branch forem atualizados. Isso garante que as alterações nos arquivos de configuração de contêiner de desenvolvimento do repositório sejam usadas quando um codespace for gerado a partir de um modelo de pré-criação. O fluxo de trabalho de ações que atualizar o template de pré-criação será executado menos vezes. Portanto, esta opção usará menos minutos de ações. No entanto, esta opção não garante que os codespaces sempre incluam dependências recentemente adicionadas ou atualizadas. Portanto, elas podem ser adicionadas ou atualizadas manualmente depois que o codespace for criado.
    • Agendado - Com esta configuração, você pode atualizar suas configurações de pré-criação em um agendamento personalizado definido por você. This can reduce consumption of Actions minutes, however, with this option, codespaces may be created that do not use the latest dev container configuration changes.

    As opções de acionamento de pré-criação

  7. Select Reduce prebuild available to only specific regions to limit access to your prebuilt image, then select which regions you want it available in. Developers can only create codespaces from a prebuild if they are located in a region you select. By default, your prebuilt image is available to all regions where codespaces is available and storage costs apply for each region.

    Opções de seleção de região

    Atenção:

    • O modelo de pré-compilação para cada região irá incorrer em taxas individuais. Por conseguinte, só devem ser permitidas pré-construções para regiões em que se sabe que serão utilizadas. Para obter mais informações, consulte "Sobre pré-compilações de Codespaces".
    • Os desenvolvedores podem definir sua região padrão para Codespaces, que pode permitir que você habilite pré-compilações para menos regiões. Para obter mais informações, consulte "Definindo a sua região padrão para Codespaces".
  8. Set the number of prebuild template versions to be retained. You can input any number between 1 and 5. The default number of saved versions is 2, which means that only the latest template version and the previous version are saved.

    Depending on your prebuild trigger settings, your prebuild template could change with each push or on each dev container configuration change. Retaining older versions of prebuild templates enables you to create a prebuild from an older commit with a different dev container configuration than the current prebuild template. Since there is a storage cost associated with retaining prebuild template versions, you can choose the number of versions to be retained based on the needs of your team. For more information on billing, see "About billing for Codespaces."

    If you set the number of prebuild template versions to save to 1, Codespaces will only save the latest version of the prebuild template and will delete the older version each time the template is updated. This means you will not get a prebuilt codespace if you go back to an older dev container configuration.

    The prebuild template history setting

  9. Add users or teams to notify when the prebuild workflow run fails for this configuration. You can begin typing a username, team name, or full name, then click the name once it appears to add them to the list. The users or teams you add will receive an email when prebuild failures occur, containing a link to the workflow run logs to help with further investigation.

    The prebuild failure notification setting

  10. Clique em Criar.

    A configuração de pré-compilação está listada na página do Codespaces das configurações do seu repositório. Um fluxo de trabalho de GitHub Actions está enfileirado e é executado para criar modelos de pré-compilação com base no branch que você selecionou nas regiões que você especificou.

    Observação: Por padrão, o fluxo de trabalho de GitHub Actions para uma configuração de pré-compilação só pode acessar recursos no seu próprio repositório. Se o seu projeto usar recursos de fora do repositório, você deverá definir o segredo CODESPACES_PREBUILD_TOKEN para permitir o acesso necessário. Para obter mais informações, consulte "Permitir uma pré-compilação para acessar recursos externos".

Configurando o acesso a recursos que não estão no repositório

Por padrão, o fluxo de trabalho de GitHub Actions para uma configuração de pré-compilação só pode acessar o próprio conteúdo do repositório. Se o seu projeto precisa acessar recursos externos para compilar o ambiente de desenvolvimento, você deverá configurar um token de acesso pessoal (PAT) com os escopos de acesso apropriados.

Para obter mais informações, consulte "Permitir uma pré-compilação para acessar recursos externos".

Configurar variáveis de ambiente

Para permitir que o processo de pré-compilação acesse as variáveis de ambiente necessárias para criar seu ambiente de desenvolvimento. Você pode defini-las como segredos de repositório de Codespaces ou como segredos da organização de Codespaces. Para obter mais informações, consulte "Adicionando segredos para um repositório" e "Adicionando segredos a uma organização".

As pré-compilações não usam nenhum segredo de nível de usuário ao construir seu ambiente, porque elas não são adicionadas até que o codespace seja criado.

Os segredos de Codespaces que você criar desta forma serão acessíveis por qualquer pessoa que crie um codespace a partir deste repositório. Se você não quiser isso, você pode definir o segredo CODESPACES_PREBUILD_TOKEN. O segredo CODESPACES_PREBUILD_TOKEN é usado apenas para pré-compilação e seu valor não pode ser acessado nos codespaces dos usuários. Para obter mais informações, consulte "Permitir uma pré-compilação para acessar recursos externos".

Configurando tarefas demoradas a serem incluídas na pré-compilação

Você pode usar os comandos onCreateCommand e updateContentCommand no seu devcontainer.json paraa incluir processos demorados como parte da criação de template de pré-compilação. Para obter mais informações, consulte a documentação de Visual Studio Code, "referência de devcontainer.json".

onCreateCommand é executado apenas uma vez, quando o modelo de pré-compilação é criado, enquanto updateContentCommand é executado na criação do modelos e em subsequentes atualizações dos modelos. As compilações incrementais devem ser incluídas em updateContentCommand uma vez que representam a fonte do seu projeto e devem ser incluídas para cada atualização de um modelo de pré-compilação.

Leia mais