Skip to main content

Résolution des problèmes liés aux prébuilds

Vous pouvez utiliser des prébuilds pour accélérer la création des codespaces. Cet article indique les étapes à suivre pour résoudre les problèmes courants relatifs aux prébuilds.

Pour plus d’informations sur les prébuilds GitHub Codespaces, consultez Prégénération de vos codespaces.

Vérifier si un codespace a été créé à partir d’une prébuild

Lorsque vous créez un codespace, vous pouvez choisir le type de machine virtuelle que vous souhaitez utiliser. Si une prébuild est disponible pour le type de machine virtuelle, «  Prébuild prête » s’affiche à côté.

Capture d’écran d’une liste de types de machines disponibles : 2, 4, 8, 16 et 32 cœurs, tous étiquetés « Prédéfini prêt ».

Si vous avez défini votre éditeur GitHub Codespaces favori sur « Visual Studio Code pour le Web », la page « Configuration de votre codespace » affiche le message « Codespace prédéfini trouvé » si une prébuild est utilisée.

Capture d’écran de la page « Configuration de votre codespace », avec le texte : « Codespace prédéfini trouvé. Téléchargement de l’image. »

De même, si votre éditeur favori est « VS Code », le terminal intégré affiche le message « Vous êtes sur un codespace prédéfini par la configuration de prébuild de votre référentiel » lorsque vous créez un codespace. Pour plus d’informations, consultez « Définition de votre éditeur par défaut pour GitHub Codespaces ».

Après avoir créé un codespace, vous pouvez vérifier s’il a été créé à partir d’une prébuild en exécutant la commande GitHub CLI suivante dans le terminal :

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

Cette commande renvoie true si le codespace a été créé à l’aide d’une prébuild.

Si GitHub CLI (gh) n’est pas installé, vous pouvez utiliser la commande suivante, qui renvoie createFromPrebuild si le codespace a été créé à partir d’une prébuild :

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

Vérification de l’utilisation des prébuilds

Vous pouvez vérifier si un dépôt utilise des prébuilds dans la page « Codespaces » des paramètres du dépôt.

Vous pouvez vérifier la quantité d’espace de stockage consommée par les prébuilds dans votre cycle de facturation actuelle en consultant les données de facturation de votre compte personnel ou d’organisation. Vous pouvez également générer un rapport d’utilisation pour voir quels dépôts utilisent des prébuilds. Pour plus d’informations, consultez « Consultation de votre utilisation de GitHub Codespaces ».

L’étiquette « Prébuild prête » est parfois manquante

Vous pouvez remarquer que parfois, lorsque vous créez un codespace à partir d’une branche de prébuild, l’étiquette «  Prébuild prête » ne s’affiche pas dans la boîte de dialogue pour choisir un type de machine. Cela signifie que les prébuilds ne sont pas encore disponibles.

Par défaut, chaque fois que vous effectuez un envoi (push) vers une branche de prébuild, la prébuild est mise à jour. Si la poussée implique une modification de la configuration du conteneur de développement alors que la mise à jour est en cours, l’étiquette «  Prébuild prête » est supprimée de la liste des types de machine. Pendant ce temps, vous pouvez toujours créer des codespaces sans prébuild. Si nécessaire, vous pouvez réduire le nombre d'occasions où les prébuilds ne sont pas disponibles pour un référentiel en configurant la prébuild pour qu’elle soit uniquement mise à jour lorsque vous apportez une modification aux fichiers de configuration de votre conteneur de développement, ou uniquement selon une planification personnalisée. Pour plus d’informations, consultez « Configuration des prébuilds ».

Si votre branche n’est pas spécifiquement activée pour les prébuilds, elle peut bénéficier de prébuilds si elle a été créée à partir d’une branche de prébuild. Toutefois, si la configuration du conteneur de développement est modifiée sur votre branche et que sa configuration est différente sur la branche de base, les prébuilds ne sont plus disponibles sur votre branche.

Voici quelques éléments à vérifier si l’étiquette «  Prébuild prête » ne s’affiche pas pour une branche particulière :

  • Vérifiez qu’une configuration de prébuild existe pour cette branche. Si vous n’êtes pas administrateur de référentiel, vous devez faire en contacter un pour le vérifier.
  • Vérifiez que la configuration de prébuild inclut votre région.
  • Vérifiez si une modification de la configuration du conteneur de développement a récemment été envoyée (push) à la branche de prébuild. Si tel est le cas, vous devrez probablement attendre que le workflow de prébuild s’exécute pour que cet envoi (push) se termine avant que les prébuilds ne soient à nouveau disponibles.
  • Si aucune modification de configuration n’a été récemment apportée, accédez à l’onglet Actions de votre dépôt, cliquez sur Codespaces Prébuilds dans la liste des workflows, puis vérifiez que les exécutions de worflow de prébuild pour la branche ont abouti. Si les dernières exécutions d’un workflow ont échoué et qu’une ou plusieurs de ces exécutions ayant échoué contiennent des modifications apportées à la configuration du conteneur de développement, aucune prébuild ne sera disponible pour la branche associée.

Certaines ressources ne peuvent pas être accessibles dans les codespaces créés avec une prébuild.

Si le fichier de configuration devcontainer.json d’une configuration de prébuild spécifie que des autorisations d’accès à d’autres dépôts sont nécessaires, l’administrateur du dépôt est invité à accorder ces autorisations quand il crée ou met à jour la configuration de prébuild. Si l’administrateur n’accorde pas toutes les autorisations demandées, il est possible que des problèmes se produisent dans la prébuild et dans les codespaces créés à partir de cette prébuild. C’est vrai même si l’utilisateur qui crée un codespace basé sur cette prébuild accorde toutes les autorisations lorsqu’il est invité à le faire.

Résolution des problèmes liés aux exécutions de workflow ayant échoué pour les prébuilds

Augmentation de la limite de dépense pour GitHub Actions

Les prébuilds sont créées et mises à jour en utilisant GitHub Actions. Vos workflows de prébuild échouent si vous avez utilisé toutes vos minutes GitHub Actions et atteint votre limite de dépense. Dans ce cas, vous pouvez augmenter votre limite de dépense pour GitHub Actions afin d’autoriser l’exécution des workflows. Pour plus d’informations, consultez « Gestion de votre limite de dépense pour GitHub Actions ».

Octroi d’autorisations d’accès

Si le fichier de configuration devcontainer.json d’une configuration de prébuild est mis à jour pour spécifier que les autorisations d’accès à d’autres dépôts sont nécessaires et qu’un administrateur de dépôt n’a pas été invité à accorder ces autorisations pour la configuration de la prébuild, le workflow de prébuild peut échouer. Essayez de mettre à jour la configuration de prébuild, sans apporter de modifications. Si, lorsque vous cliquez sur Mettre à jour, la page d’autorisations s’affiche, vérifiez que les autorisations demandées sont appropriées et, le cas échéant, autorisez la demande. Pour plus d’informations, consultez « Gestion des prébuilds » et « Gestion de l’accès à d’autres dépôts dans votre codespace ».

Si les exécutions de workflow pour une configuration de prébuild échouent, vous pouvez temporairement désactiver la configuration de prébuild en attendant que le problème soit résolu. Pour plus d’informations, consultez « Gestion des prébuilds ».

Empêcher l’utilisation de prébuilds obsolètes

Par défaut, si le dernier workflow de prébuild a échoué, une prébuild précédente pour la même combinaison de dépôt, de branche et de fichier de configuration devcontainer.json est utilisée pour créer des codespaces. Ce comportement est appelé « optimisation de la prébuild ».

Nous vous recommandons de laisser l’optimisation de la prébuild activée pour garantir la création rapide de codespaces si aucune prébuild à jour n’est disponible. Toutefois, en tant qu’administrateur de dépôt, vous pouvez désactiver l’optimisation de la prébuild si vous rencontrez des problèmes liés à des codespaces prédéfinis en retrait par rapport à l’état actuel de la branche. Si vous désactivez l’optimisation de la prébuild, des codespaces pour la combinaison appropriée de dépôt, de branche et de fichier devcontainer.json sont créés sans prébuild si le dernier workflow de prébuild a échoué ou est en cours d’exécution.

  1. Sur GitHub, accédez à la page principale du référentiel.

  2. Sous le nom de votre dépôt, cliquez sur Paramètres. Si vous ne voyez pas l’onglet « Paramètres », sélectionnez le menu déroulant , puis cliquez sur Paramètres.

    Capture d’écran d’un en-tête de dépôt montrant les onglets. L’onglet « Paramètres » est mis en évidence avec un encadré orange foncé.

  3. Dans la section « Code et automatisation » de la barre latérale, cliquez sur Codespaces .

  4. À droite de la configuration de prébuild affectée, sélectionnez les points de suspension ( ... ), puis cliquez sur Modifier.

    Capture d’écran de la liste déroulante des options prédéfinies avec « Modifier » mis en surbrillance.

  5. Faites défiler la page « Modifier la configuration » jusqu’en bas et cliquez sur Afficher les options avancées.

    Capture d’écran du bas de la page de configuration des prébuilds. Le lien « Afficher les options avancées » est mis en évidence avec un encadré orange foncé.

  6. Si vous êtes sûr de vouloir désactiver le paramètre par défaut, sélectionnez Désactiver l’optimisation de la prébuild.

    Capture d’écran des paramètres « Options avancées ». La case « Désactiver l’optimisation prédéfinie » est cochée. Sous cela se trouve le bouton « Mettre à jour ».

  7. Pour enregistrer votre modification, cliquez sur Mettre à jour.

Pour aller plus loin