Skip to main content

Solução de problemas de pré-compilações

Você pode usar as pré-compilações para acelerar a criação de codespaces. Este artigo fornece etapas de solução de problemas para problemas comuns com pré-compilações.

Para obter mais informações sobre as predefinições do GitHub Codespaces, confira "Pré-construindo seus codespaces".

Verificando se um código foi criado a partir de uma pré-compilação?

Ao criar um codespace, você pode escolher o tipo de máquina virtual que deseja usar. Se um pré-build estiver disponível para o tipo de máquina virtual, " Pré-build pronto" será exibido ao lado dele.

Captura de tela de uma lista de tipos de computador disponíveis: 2, 4, 8, 16 e 32 núcleos, todos rotulados como "Pré-compilação pronto".

Se você tiver a preferência do editor dos GitHub Codespaces definida como "Visual Studio Code para Web", a página "Configurar o codespace" mostrará a mensagem "Codespace predefinido encontrado" se uma predefinição estiver sendo usada.

Captura de tela da página "Configurar seu codespace", com o texto: "Codespace predefinido encontrado. Baixando imagem."

Da mesma forma, se a sua preferência de editor for "VS Code", o terminal integrado conterá a mensagem "Você está em um codespace pré-compilado definido pela configuração de pré-compilação do seu repositório" ao criar um novo codespace. Para obter mais informações, confira "Como definir seu editor padrão para o GitHub Codespaces".

Depois de criar um codespace, você pode verificar se ele foi criado a partir de uma pré-compilação executando o seguinte comando GitHub CLI no terminal:

Shell
gh api /user/codespaces/$CODESPACE_NAME --jq .prebuild

Isso retornará true se o codespace tiver sido criado com um pré-build.

Como alternativa, se a GitHub CLI (gh) não estiver instalada, use o seguinte comando, que retornará createFromPrebuild se o codespace tiver sido criado com base em um pré-build:

Shell
cat /workspaces/.codespaces/shared/environment-variables.json | jq '.ACTION_NAME'

Verificando o uso de pré-compilação

Você pode marcar se um repositório está usando pré-compilações na página "Codespaces" das configurações do repositório.

Você pode marcar quanto espaço de armazenamento foi consumido por pré-compilações no ciclo de cobrança atual examinando os dados de cobrança de sua conta pessoal ou da organização. Você também pode gerar um relatório de uso para ver quais repositórios têm usado pré-compilações. Para obter mais informações, confira "Viewing your GitHub Codespaces usage".

A etiqueta "Pré-compilação pronta" às vezes está ausente

Você pode notar que, às vezes, quando você cria um codespace a partir de um branch habilitado por um pré-build, a etiqueta "Pré-build de pronto" não é exibida na caixa de diálogo para escolher um tipo de máquina. Isto significa que pré-compilações não estão disponíveis no momento.

Por padrão, cada vez que você enviar um branch de pré-compilação habilitado por push, a pré-compilação será atualizada. Se o push envolver uma mudança na configuração do contêiner de desenvolvimento, enquanto a atualização está em andamento, a etiqueta "Pré-build de pronto" será removida da lista de tipos de máquinas. Durante esse tempo, você ainda pode criar codespaces sem uma pré-compilação. Se necessário, você pode reduzir as ocasiões em que as pré-compilações estão indisponíveis para um repositório, definindo que a pré-compilação seja atualizada somente quando você fizer uma alteração nos arquivos de configuração do contêiner de desenvolvimento ou apenas em um agendamento personalizado. Para obter mais informações, confira "Configurando as pré-criações".

Se seu branch não estiver especificamente habilitado para pré-compilações, ele ainda poderá se beneficiar de pré-compilações se ele foi criado a partir de um branch habilitado por pré-compilação. No entanto, se a configuração do contêiner de desenvolvimento for alterada no seu branch, de modo que não seja igual à configuração no branch de base, as pré-compilações não estarão mais disponíveis em seu branch.

Estes são itens a serem verificados se o rótulo "Pré-compilação de pronta" não for exibida para determinada ramificação:

  • Confirme que existe uma configuração de pré-compilação para este branch. Se você não for administrador do repositório, entre em contato com um para confirmar.
  • Confirme que a configuração de pré-compilação inclui sua região.
  • Verifique se uma alteração para a configuração do contêiner de desenvolvimento foi enviada por push para o branch habilitado pela pré-compilação recentemente. Em caso afirmativo, geralmente você terá que esperar até que a execução desse fluxo de trabalho de pré-compilação execute este push por completo antes que as pré-compilações estejam disponíveis novamente.
  • Se nenhuma alteração de configuração tiver sido feita recentemente, acesse a guia Ações do repositório, clique em Pré-builds do Codespaces na lista de fluxos de trabalho e verifique se as execuções de fluxo de trabalho de pré-build para o branch estão sendo bem-sucedidas. Se as execuções mais recentes de um fluxo de trabalho falharem e uma ou mais dessas execuções com falha contiverem alterações na configuração do contêiner de desenvolvimento, não haverá pré-compilações disponíveis para o branch associado.

Alguns recursos não podem ser acessados em codespaces criados usando um prebuild

Se o arquivo de configuração devcontainer.json de uma configuração de prebuild especificar que as permissões de acesso a outros repositórios são necessárias, o administrador do repositório deverá autorizar essas permissões quando criar ou atualizar a configuração de prebuild. Se o administrador não conceder todas as permissões solicitadas, haverá uma chance de que possam ocorrer problemas no prebuild e em codespaces criados com base nesse prebuild. Isso será verdadeiro mesmo que o usuário que criar um codespace com base nesse prebuild conceder todas as permissões quando for solicitado a fazê-lo.

Solução de problemas de execuções de fluxo de trabalho com falha para pré-compilações

Aumentar o limite de gastos do GitHub Actions

As predefinições são criadas e atualizadas usando o GitHub Actions. Os fluxos de trabalho de predefinição falharão se você tiver usado todos os minutos do GitHub Actions e tiver atingido o limite de gastos. Se isso ocorrer, você poderá aumentar o limite de gastos do GitHub Actions para permitir que os fluxos de trabalho sejam executados. Para obter mais informações, confira "Managing your spending limit for GitHub Actions".

Como autorizar permissões de acesso

Se o arquivo de configuração devcontainer.json de uma configuração de prebuild for atualizado para especificar que as permissões de acesso a outros repositórios são necessárias e um administrador de repositório não tiver sido solicitado a autorizar essas permissões para a configuração de prebuild, o fluxo de trabalho de prebuild poderá falhar. Tente atualizar a configuração de prebuild, sem fazer nenhuma alteração. Se, quando você clicar em Atualizar, a página de autorização for exibida, verifique se as permissões solicitadas são apropriadas e, nesse caso, autorize a solicitação. Para obter mais informações, confira "Gerenciando pré-compilações" e "Gerenciar o acesso a outros repositórios em seu codespace."

Se o fluxo de trabalho executado para uma configuração de pré-compilação estiver falhando, você poderá desabilitar temporariamente a configuração de pré-compilação enquanto investiga. Para obter mais informações, confira "Gerenciando pré-compilações".

Com impedir o uso de predefinições desatualizadas

Por padrão, se o fluxo de trabalho predefinição mais recente falhar, uma predefinição anterior da mesma combinação de repositório, branch e arquivo de configuração devcontainer.json será usada para criar codespaces. Esse comportamento é chamado de otimização de predefinição.

Recomendamos manter a otimização de predefinição habilitada, pois ela ajuda a garantir que os codespaces possam ser criados rapidamente mesmo quando não houver uma predefinição atualizada disponível. No entanto, como administrador de repositório, você poderá desabilitar a otimização de predefinição se os codespaces predefinidos não acompanharem o estado atual do branch. Se você desabilitar a otimização de predefinição, os codespaces da combinação relevante de repositório, branch e arquivo devcontainer.json serão criados sem uma predefinição se o fluxo de trabalho de predefinição mais recente falhar ou estiver em execução no momento.

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

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

    Captura de tela de um cabeçalho de repositório que mostra as guias. A guia "Configurações" é realçada por um contorno laranja-escuro.

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

  4. À direita da configuração de predefinição afetada, selecione as reticências ( ... ) e clique em Editar.

    Captura de tela da lista suspensa de opções de pré-compilação com "Editar" realçado.

  5. Role até a parte inferior da página em "Editar configuração" e clique em Mostrar opções avançadas.

    Captura de tela da parte inferior da página de configuração de predefinições. O link "Mostrar opções avançadas" é realçado com um contorno laranja escuro.

  6. Se tiver certeza de que deseja desabilitar a configuração padrão, selecione Desabilitar otimização de predefinição.

    Captura de tela das configurações de "Opções avançadas". A caixa de seleção denominada "Desativar otimização de pré-compilação" está selecionada. Nesse está o botão "Atualizar".

  7. Para salvar a alteração, clique em Atualizar.

Leitura adicional