Você pode definir uma configuração de prebuild para a combinação de um branch específico do repositório com um arquivo de configuração de contêiner de desenvolvimento específico.
Todos os branches criados com base em um branch pai habilitado para o prebuild normalmente também obterão prebuilds para a mesma configuração de contêiner de desenvolvimento. Isso ocorre porque as pré-compilações para branches filhos que usam a mesma configuração de contêiner de desenvolvimento que o branch pai é, na maioria das vezes, idêntica, para que os desenvolvedores também possam se beneficiar de tempos de criação de codespace mais rápidos nesses branches. Confira Introdução aos contêineres de desenvolvimento.
Normalmente, quando você configura prebuilds para um branch, eles estarão disponíveis para vários tipos de computador. 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.
Pré-requisitos
As pré-compilações são criadas usando o GitHub Actions. Como resultado, GitHub Actions precisa ser habilitado para o repositório para o qual você está configurando pré-compilações. Confira Gerenciando as configurações do GitHub Actions para um repositório.
Você pode configurar pré-builds em qualquer repositório pertencente a uma conta pessoal. O pré-build consumirá um espaço de armazenamento que gera uma cobrança ou, para os repositórios pertencentes à sua conta pessoal, usará uma parte do armazenamento mensal incluído.
Note
Se você criar pré-compilações para um repositório com fork, o custo de armazenamento dessas pré-compilações será subtraído do armazenamento mensal incluído, enquanto disponível. Se você tiver usado todo o armazenamento incluído e tiver configurado a cobrança, sua conta pessoal será cobrada. Isso é válido mesmo quando os codespaces criados para um fork são pagos pela organização proprietária do repositório pai. Confira Sobre o faturamento do GitHub Codespaces.
Para os repositórios pertencentes a uma organização, você poderá configurar pré-builds se a organização usar um plano do GitHub Team ou do GitHub Enterprise. Além disso, você precisa ter adicionado uma forma de pagamento e definido um limite de gastos para o GitHub Codespaces na conta da organização ou na empresa matriz. Confira Gerenciar o limite de gastos do GitHub Codespaces e Planos do GitHub.
Configurando as pré-criações
-
Em GitHub, acesse a página principal do repositório.
-
Abaixo do nome do repositório, clique em Configurações. Caso não consiga ver a guia "Configurações", selecione o menu suspenso , clique em Configurações.
-
Na seção "Código e automação" da barra lateral, clique em Codespaces .
-
Na seção "Configuração de prebuild" da página, clique em Configurar prebuild.
-
Escolha o branch para o qual você deseja configurar pré-compilações.
Note
Todos os branches criados com base em um branch base habilitado para a pré-compilação normalmente também obterão pré-compilações para a mesma configuração de contêiner de desenvolvimento. Por exemplo, se você habilitar prebuilds para um arquivo de configuração de contêiner de desenvolvimento no branch padrão do repositório, os branches baseados no branch padrão também obterão, na maioria dos casos, prebuilds para a mesma configuração de contêiner de desenvolvimento.
-
Opcionalmente, no menu suspenso Arquivo de configuração exibido, escolha o arquivo de configuração
devcontainer.json
que deseja usar para suas pré-compilações. Confira Introdução aos contêineres de desenvolvimento. -
Escolha como você deseja acionar automaticamente as atualizações da pré-compilação.
-
Cada push (a configuração padrão) – com essa configuração, as pré-compilações serão atualizadas em cada push feito para o branch especificado. Isso garantirá que os codespaces gerados a partir de uma pré-compilação sempre contenham a configuração de codespace mais recente, incluindo quaisquer dependências adicionadas ou atualizadas recentemente.
-
Na alteração de configuração – com essa configuração, as pré-compilações serão atualizadas sempre que qualquer um dos seguintes arquivos for alterado:
-
.devcontainer/devcontainer.json
Note
As atualizações de pré-compilação não são disparadas por alterações em arquivos
devcontainer.json
dentro de subdiretórios de.devcontainer
. -
O Dockerfile referenciado na propriedade
build.dockerfile
do arquivo.devcontainer/devcontainer.json
.
Essa configuração garante que as alterações nos arquivos de configuração do contêiner de desenvolvimento para o repositório sejam usadas quando um codespace for gerado a partir de uma pré-compilação. O fluxo de trabalho do GitHub Actions que atualiza as pré-compilações será executado com menos frequência, portanto, essa opção usará menos minutos de GitHub Actions. No entanto, essa opção não garantirá que os codespaces sempre incluam dependências adicionadas ou atualizadas recentemente, portanto, elas podem ter que ser adicionadas ou atualizadas manualmente após a criação de um codespace.
-
-
Agendado – com essa configuração, você pode ter suas pré-compilações atualizadas em uma agenda personalizada definida por você. Isso pode reduzir o consumo de minutos do GitHub Actions, mas com essa opção, podem ser criados codespaces que não usam as alterações de configuração de contêiner de desenvolvimento mais recentes.
-
-
Opcionalmente, selecione Reduzir pré-compilação disponível apenas para regiões específicas para criar pré-compilações somente em regiões especificadas. Selecione as regiões nas quais você deseja que as pré-compilações estejam disponíveis.
Por padrão, as pré-compilações são criadas em todas as regiões disponíveis, incorrendo em encargos de armazenamento por pré-compilação.
Note
- A pré-compilação em cada região incorre em encargos de armazenamento individuais. Por conseguinte, só devem ser permitidas pré-construções para regiões em que se sabe que serão utilizadas. Confira Sobre o faturamento do GitHub Codespaces.
- Os desenvolvedores podem definir sua região padrão para GitHub Codespaces, que pode permitir que você habilite pré-compilações para menos regiões. Confira Como definir sua região padrão para o GitHub Codespaces.
-
Como alternativa, em Histórico de modelo, defina o número de versões de pré-compilação a serem mantidas. Você pode inserir qualquer número entre 1 e 5. O número padrão de versões salvas é 2, o que significa que apenas a última pré-compilação do modelo e a versão anterior são salvas.
Dependendo das configurações do seu acionador de pré-compilação, esta pode mudar a cada push ou em cada alteração de configuração do contêiner de desenvolvimento. A retenção de versões mais antigas de pré-compilações permite que você crie uma pré-compilação de um commit mais antigo com uma configuração de contêiner de desenvolvimento diferente da pré-compilação atual. Essa configuração permite que você defina o número de versões retidas para um nível apropriado para suas necessidades.
Se você definir o número de versões de pré-compilação a serem salvas como 1, GitHub Codespaces salvará apenas a versão mais recente da pré-compilação e excluirá a versão mais antiga sempre que o modelo for atualizado. Isso significa que você não obterá um codespace predefinido se voltar para uma configuração de contêiner de desenvolvimento mais antiga.
Há um custo de armazenamento associado a cada versão de pré-compilação que é mantida. Por exemplo, se você estiver gerando pré-compilações em quatro regiões e mantendo duas versões, será cobrado pelo armazenamento de até oito pré-compilações. Confira Sobre o faturamento do GitHub Codespaces.
-
Como alternativa, adicione usuários ou equipes a serem notificados quando a execução do fluxo de trabalho de predefinição falhar para essa configuração. Você pode começar a digitar um nome de usuário, um nome de equipe ou um nome completo e depois clicar no nome quando ele aparecer para adicioná-lo à lista. Os usuários ou as equipes que você adicionar receberão um email quando ocorrerem falhas de predefinição, contendo um link para os logs de execução de fluxo de trabalho como ajuda em uma investigação mais aprofundada.
Note
As pessoas só receberão notificações de pré-compilações com falha se tiverem habilitado notificações para fluxos de trabalho de Ações com falha em suas configurações pessoais. Confira Configurar notificações.
-
Opcionalmente, na parte inferior da página, clique em Mostrar opções avançadas.
Na seção "Opções avançadas", se você selecionar Desabilitar otimização de pré-compilação, os codespaces serão criados sem uma pré-compilação se o fluxo de trabalho de pré-compilação mais recente falhar ou estiver em execução no momento. Confira Solução de problemas de pré-compilações.
-
Clique em Criar.
Se a configuração do contêiner de desenvolvimento para o repositório especificar permissões para acessar outros repositórios, será mostrada uma página de autorização. Para obter mais informações sobre como isso é especificado no arquivo
devcontainer.json
, confira "Gerenciar o acesso a outros repositórios em seu codespace".Clique em para exibir os detalhes das permissões solicitadas.
Clique em Autorizar e continuar para conceder essas permissões para a criação de pré-compilações. Como alternativa, você pode clicar em Continuar sem autorizar, mas, se fizer isso, os codespaces criados com base na pré-compilação resultante poderão não funcionar corretamente.
Note
Os usuários que criarem codespaces usando essa pré-compilação também serão solicitados a conceder essas permissões.
Após criar uma configuração de pré-compilação, ela é listada na página do GitHub Codespaces das configurações do seu repositório. Um fluxo de trabalho GitHub Actions é enfileirado e executado para criar pré-compilações nas regiões que você especificou, com base no arquivo de configuração de branch e contêiner de desenvolvimento que você selecionou.
Para saber mais sobre como editar e excluir as configurações de predefinição, confira Gerenciando pré-compilações.
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. Os segredos que você criar desta forma serão acessíveis por qualquer pessoa que crie um codespace a partir deste repositório. Confira Gerenciando segredos do ambiente de desenvolvimento para seu repositório ou organização.
As pré-compilações não podem usar nenhum segredo de nível de usuário ao construir seu ambiente, porque elas não estarão disponíveis até que o codespace seja criado.
Configurando tarefas demoradas a serem incluídas na pré-compilação
Você pode usar os comandos onCreateCommand
e updateContentCommand
em seu devcontainer.json
para incluir processos demorados como parte da criação da pré-compilação. Confira a documentação do Visual Studio Code, Referência de devcontainer.json.
onCreateCommand
é executado apenas uma vez, quando a pré-compilação é criada, enquanto updateContentCommand
é executado na criação do modelo pré-compilado e erm suas atualizações subsequentes. As compilações incrementais devem ser incluídas em updateContentCommand
, pois representam a origem do seu projeto e precisam ser incluídas para cada atualização de pré-compilação.