Le cycle de vie des codespaces
GitHub Codespaces est configurable, ce qui vous permet de créer un environnement de développement personnalisé pour votre projet. En configurant un environnement de développement personnalisé pour votre projet, vous pouvez disposer d’une configuration de codespace reproductible pour tous les utilisateurs de votre projet.
Le cycle de vie d’un codespace commence lorsque vous le créez et se termine lorsque vous le supprimez. Vous pouvez vous déconnecter et vous reconnecter à un codespace actif sans que cela n’affecte ses processus en cours d’exécution. Vous pouvez arrêter et redémarrer un codespace sans perdre les modifications que vous apportez à votre projet.
Créer un codespace
Vous pouvez créer un codespace sur GitHub.com, dans Visual Studio Code ou par le biais de l’interface CLI de GitHub. Il existe quatre façons de créer un codespace :
- À partir d’un modèle GitHub ou d’un dépôt de modèles sur GitHub.com pour démarrer un nouveau projet.
- À partir d’une branche de votre dépôt pour un travail relatif à de nouvelles fonctionnalités.
- À partir d’une demande de tirage ouverte pour explorer le travail en cours.
- À partir d’un commit dans l’historique d’un dépôt pour investiguer un bogue à un moment précis.
Vous pouvez utiliser temporairement un codespace pour tester du code ou revenir à ce même codespace pour travailler plus durablement sur des fonctionnalités.
Vous pouvez créer plusieurs codespaces par dépôt, voire par branche. Néanmoins, le nombre de codespaces que vous pouvez créer et exécuter en même temps est limité. Lorsque vous atteignez le nombre maximal de codespaces et que vous essayez d’en créer un autre, un message s’affiche. Le message indique que vous devez supprimer un codespace existant avant de pouvoir en créer un autre.
Vous pouvez créer un codespace chaque fois que vous développez dans GitHub Codespaces ou conserver un codespace plus durablement pour une fonctionnalité. Si vous démarrez un nouveau projet, créez un codespace à partir d’un modèle et publiez-le ensuite sur un dépôt GitHub.
Si vous créez un codespace chaque fois que vous travaillez sur un projet, il est préférable d’envoyer (push) régulièrement vos modifications afin de veiller à ce que tous les nouveaux commits soient sur GitHub. Lorsque vous utilisez un codespace de longue durée pour un nouveau projet, effectuez un tirage (pull) à partir de la branche par défaut du dépôt chaque fois que vous commencez à travailler dans le codespace pour permettre à votre environnement d’obtenir les derniers commits. Le workflow est similaire à l’utilisation d’un projet sur une machine locale.
Les administrateurs de dépôts peuvent activer les prébuilds GitHub Codespaces d’un dépôt afin d’accélérer la création d’un codespace.
Pour obtenir une procédure pas à pas détaillée et des instructions pas à pas, consultez les ressources intitulées Guide du débutant pour apprendre à coder avec GitHub Codespaces et développer dans un espace de code situé à la fin de ce module.
Processus de création d’un codespace
Lors de la création d’un Codespace GitHub, quatre processus se produisent :
- Une machine virtuelle et un stockage sont affectés à votre codespace.
- Un conteneur est créé.
- Une connexion au codespace est établie.
- Une configuration post-création est effectuée.
Enregistrer les modifications dans un codespace
Lorsque vous vous connectez à un codespace par le biais du web, l’enregistrement automatique est automatiquement activé pour enregistrer les modifications à l’issue d’un laps de temps spécifique. Lorsque vous vous connectez à un codespace par le biais de Visual Studio Code en cours d’exécution sur votre bureau, vous devez activer l’enregistrement automatique.
Votre travail est enregistré sur une machine virtuelle dans le cloud. Vous pouvez fermer et arrêter un codespace, puis revenir au travail enregistré ultérieurement. Si vous avez des modifications qui ne sont pas enregistrées, vous êtes invité à les enregistrer avant de quitter le codespace. Toutefois, si votre codespace est supprimé, votre travail est alors perdu. Pour enregistrer votre travail, vous devez commiter vos modifications et les envoyer (push) vers votre dépôt distant, ou bien publier votre travail dans un nouveau dépôt si vous avez créé votre codespace à partir d’un modèle.
Ouvrir un codespace existant
Vous pouvez rouvrir l’un de vos codespaces actifs ou arrêtés sur GitHub.com, dans un IDE JetBrains, dans Visual Studio Code ou à l’aide de l’interface CLI de GitHub.
Pour reprendre un espace de code existant, vous pouvez accéder au référentiel où l’espace de code existe, sélectionner la , clé, puis reprendre cet espace de code. Vous pouvez également ouvrir https://github.com/codespaces dans le navigateur, sélectionner le dépôt, puis sélectionner le codespace existant.
Délais d’expiration d’un codespace
Si un codespace est inactif ou si vous quittez votre codespace sans l’arrêter explicitement, l’application expire à l’issue d’une période d’inactivité et arrête de s’exécuter. Le délai d’expiration par défaut s’élève à 30 minutes d’inactivité. Lorsqu’un codespace expire, vos données sont conservées à partir du dernier enregistrement de vos modifications.
Connexion Internet lors de l’utilisation de GitHub Codespaces
Un codespace a besoin d’une connexion Internet. Si la connexion à Internet est rompue pendant l’utilisation d’un codespace, vous ne pouvez pas accéder à ce dernier. En revanche, toutes les modifications non validées sont enregistrées. Lorsque vous rétablissez la connexion Internet, vous pouvez accéder au codespace dans le même état que celui dans lequel il était juste avant la perte de connexion.
Si votre connexion à Internet est instable, vous devez fréquemment commiter et envoyer (push) vos modifications.
Fermer ou arrêter un codespace
Si vous quittez le codespace sans exécuter la commande d’arrêt ou si vous laissez le codespace s’exécuter sans interaction, le codespace et ses processus en cours se poursuivent pendant la période correspondant au délai d’inactivité. La période du délai d’inactivité par défaut est de 30 minutes. Vous pouvez définir votre paramètre de délai d’expiration personnel pour les codespaces que vous créez, mais la stratégie de délai d’expiration d’une organisation peut remplacer ce paramètre.
Seuls les codespaces en cours d’exécution entraînent des frais de processeur. Un codespace arrêté entraîne uniquement des coûts de stockage.
Vous pouvez arrêter et redémarrer un codespace pour appliquer des modifications. Par exemple, si vous modifiez le type de machine utilisé pour votre codespace, vous devez l’arrêter et le redémarrer pour que la modification prenne effet. Lorsque vous fermez ou arrêtez votre codespace, toutes les modifications non validées sont conservées jusqu’à ce que vous vous reconnectiez au codespace.
Vous pouvez également arrêter un codespace et choisir de le redémarrer ou de le supprimer en cas d’erreur ou d’événement inattendu.
Regénérer un codespace
Vous pouvez regénérer votre codespace pour implémenter les modifications apportées à la configuration de votre conteneur de développement. Pour la plupart des utilisations, vous pouvez créer un codespace comme alternative à la reconstruction d’un codespace. Lorsque vous regénérez votre codespace, les images du cache accélèrent le processus de reconstruction. Vous pouvez également effectuer une reconstruction complète pour effacer le cache et regénérer le conteneur avec des images actualisées.
Quand vous reconstruisez le conteneur dans un codespace, les modifications que vous avez apportées en dehors du répertoire /workspaces sont effacées. Les modifications que vous avez apportées à l’intérieur du répertoire /workspaces, y compris le clone du dépôt ou du modèle à partir duquel vous avez créé le codespace, sont préservées à l’issue d’une reconstruction.
Supprimer un codespace
Vous pouvez créer un codespace pour une tâche particulière. Une fois que vous avez envoyé (push) vos modifications à une branche distante, vous pouvez supprimer ce codespace en toute sécurité.
Si vous essayez de supprimer un codespace avec des commits Git non envoyés (push), l’éditeur vous informe que vous avez des modifications qui n’ont pas encore été envoyées à une branche distante. Vous pouvez envoyer (push) toutes les modifications souhaitées, puis supprimer votre codespace. Vous pouvez également continuer à supprimer votre codespace et toutes les modifications non validées ou exporter le code vers une nouvelle branche sans créer un autre codespace.
Les codespaces arrêtés qui restent inactifs pendant une période spécifiée sont automatiquement supprimés. Les codespaces inactifs sont supprimés à l’issue de 30 jours, mais vous pouvez personnaliser vos intervalles de rétention des codespaces.