Skip to main content

Sobre as pré-compilações de codespaces

As pré-compilações dos codespaces ajudam a acelerar a criação de novos codespaces para repositórios grandes ou complexos.

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

Visão Geral

Pré-compilar os seus codespaces permite que você seja mais produtivo e acesse o seu codepsace mais rápido, particularmente se o repositório for grande ou complexo e novos codespaces atualmente levarem mais de 2 minutos para começar. Isso ocorre porque qualquer código-fonte, extensões de editor, dependências de projetos, comandos e configurações já foram baixadas, instaladas e aplicadas antes de criar um codespace para o seu projeto. Pense em uma pré-compilação como um modelo pronto para um codespace.

Por padrão, sempre que você fizer alterações no repositório, Codespaces irá usar GitHub Actions para atualizar automaticamente suas pré-criações.

Quando as pré-criações estiverem disponíveis para um branch específico de um repositório e para sua região, você verá a etiqueta "Pré-criação de pronto" na lista de opções de tipo de máquina ao criar um codespace. Se uma pré-compilação ainda estiver sendo criada, você verá a etiqueta " Pré-compliação em andamento". Para obter mais informações, consulte "Criar um codespace".

A caixa de diálogo para escolher um tipo de máquina

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

Sobre a cobrança para pré-criações de Codespaces

By default, a GitHub Actions workflow is triggered every time you create or update a prebuild template, or push to a prebuild-enabled branch. As with other workflows, while prebuild workflows are running they will either consume some of the Actions minutes included with your account, if you have any, or they will incur charges for Actions minutes. For more information about pricing for Actions minutes, see "About billing for GitHub Actions."

Alongside GitHub Actions minutes, you will also be billed for the storage of prebuild templates associated with each prebuild configuration for a given repository and region. Storage of prebuild templates is billed at the same rate as storage of codespaces. For more information, see "Calculating storage usage."

To reduce consumption of Actions minutes, you can set a prebuild template to be updated only when you make a change to your dev container configuration files, or only on a custom schedule. You can also manage your storage usage by adjusting the number of template versions to be retained for your prebuild configurations. Para obter mais informações, consulte "Configurando pré-criações".

If you are an organization owner, you can track usage of prebuild workflows and storage by downloading a GitHub Actions usage report for your organization. You can identify workflow runs for prebuilds by filtering the CSV output to only include the workflow called "Create Codespaces Prebuilds." Para obter mais informações, consulte "Visualizar o uso do seu GitHub Actions". Para obter detalhes de preços de armazenamento de Codespaces, consulteSobre cobrança para Codespaces."

O uso de codespaces criados usando pré-criações é cobrado na mesma frequência que os codespaces regulares.

Sobre fazer push de alterações em branches com pré-criação

Por padrão, cada push em um branch que tem uma configuração de pré-criação resulta em um fluxo de trabalho de ações gerenciadas por GitHub para atualizar o modelo de pré-criação. O fluxo de trabalho da pré-criação tem um limite de concorrência de uma execução de fluxo de trabalho de cada vez para uma determinada configuração de pré-compilação, a não ser que tenham sido feitas alterações que afetem a configuração do contêiner de desenvolvimento do repositório associado. Para obter mais informações, consulte "Introdução a contêineres de desenvolvimento". Se uma execução já estiver em andamento, a execução do fluxo de trabalho que foi enfileirada mais recentemente será executada a seguir, depois que a execução atual for concluída.

Com o conjunto de modelos de pré-criação a ser atualizados em cada push, significa que se os pushes forem muito frequentes no seu repositório, as atualizações do modelo de pré-criação ocorrerão pelo menos com a frequência necessária para executar o fluxo de trabalho pré-criado. Ou seja, se a execução do fluxo de trabalho normalmente leva uma hora para ser concluída, serão criadas pré-compilações para o repositório em aproximadamente uma hora, se a execução for bem sucedida, ou mais frequentemente se houve pushes que alteram a configuração do contêiner de desenvolvimento no branch.

Por exemplo, vamos imaginar que 5 pushes são feitos, em rápida sucessão, para um branch que tem uma configuração de pré-compilação. Nesta situação:

  • A execução de um fluxo de trabalho é iniciada para o primeiro push, para atualizar o modelo de pré-compilação.

  • Se os 4 pushes restantes não afetarem a configuração do contêiner de desenvolvimento, o fluxo de trabalho será executado em um estado de "pendência".

    Se qualquer um dos 4 pushes restantes alterar a configuração do contêiner de desenvolvimento, o serviço não irá ignorá-lo e irá executar imediatamente o fluxo de trabalho pré-criação, atualizando a pré-compilação adequadamente se puder.

  • Quando a primeira execução for concluída, as execuções dos fluxos de trabalho para os pushes 2, 3 e 4 serão canceladas, e o último fluxo de trabalho na fila (para push 5) será executado e será atualizado o modelo de pré-compilação.