Skip to main content

Présentation du cycle de vie des codespaces

Vous pouvez développer dans un environnement GitHub Codespaces et conserver vos données tout au long du cycle de vie du codespace.

Cet article explique les étapes de la vie d’un codespace, de la création à la suppression. Si vous avez lu l’article « Démarrage rapide pour GitHub Codespaces » et que vous souhaitez maintenant commencer à utiliser GitHub Codespaces dans votre propre travail, consultez les articles sous « Développement dans un espace de code ».

À propos du cycle de vie d’un codespace

Le cycle de vie d’un codespace commence lorsque vous créez un codespace 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 avez apportées à votre projet.

Création d’un codespace

Lorsque vous souhaitez travailler sur un projet, vous pouvez choisir de créer un codespace ou d’ouvrir un codespace existant. Vous pouvez créer un codespace à partir d’une branche de votre dépôt chaque fois que vous développez dans GitHub Codespaces ou conserver un codespace à long terme pour une fonctionnalité. Si vous démarrez un nouveau projet, vous voudrez probablement créer un codespace à partir d’un modèle et le publier dans un dépôt sur GitHub Enterprise Cloud ultérieurement. Pour plus d’informations, consultez « Création d’un codespace pour un dépôt » et « Création d’un codespace à partir d’un modèle ».

Il existe des limites au nombre de codespaces que vous pouvez créer, et au nombre de codespaces que vous pouvez exécuter en même temps. Ces limites varient en fonction d’un certain nombre de facteurs. Si vous atteignez le nombre maximal de codespaces et que vous essayez d’en créer un autre, un message s’affiche vous indiquant que vous devez supprimer un codespace existant avant de pouvoir en créer un. De même, si vous atteignez le nombre maximal de codespaces actifs et que vous essayez d’en démarrer un autre, vous êtes invité à arrêter l’un de vos codespaces actifs.

Si vous choisissez de créer un codespace chaque fois que vous travaillez sur un projet, vous devez régulièrement envoyer (push) vos modifications afin que les nouvelles validations soient sur GitHub. Si vous choisissez d’utiliser un codespace à long terme pour votre projet, vous devez extraire la branche par défaut de votre référentiel chaque fois que vous commencez à travailler dans ce codespace afin que votre environnement dispose des dernières validations. Ce workflow est très similaire à celui qui consiste à travailler sur un projet sur votre ordinateur local.

Pour accélérer la création des codespaces, les administrateurs de dépôt peuvent activer les prébuilds de GitHub Codespaces pour un dépôt. Pour plus d’informations, consultez « À propos des prébuilds GitHub Codespaces ».

Enregistrement des modifications dans un codespace

Lorsque vous vous connectez à un codespace via le web, l’enregistrement automatique est systématiquement activé pour l’éditeur web et configuré de manière à enregistrer les modifications après un certain délai. Lorsque vous vous connectez à un codespace via Visual Studio Code s’exécutant sur votre bureau, vous devez activer l’enregistrement automatique. Pour plus d’informations, consultez Enregistrer/Enregistrer automatiquement dans la documentation Visual Studio Code.

Votre travail sera enregistré sur une machine virtuelle dans le cloud. Vous pouvez fermer et arrêter un codespace et revenir ultérieurement au travail enregistré. En présence de modifications non enregistrées, votre éditeur vous invite à les enregistrer avant de quitter. Toutefois, si votre codespace est supprimé, votre travail l’est également. Pour conserver votre travail, vous devez commiter vos modifications et les pousser (push) vers votre dépôt distant, ou publier votre travail dans un nouveau dépôt distant si vous avez créé votre codespace à partir d’un modèle. Pour plus d’informations, consultez « Utilisation du contrôle de code source dans votre espace de code ».

Délais d’expiration pour GitHub Codespaces

Si vous laissez votre codespace s’exécuter sans interaction, ou si vous quittez votre codespace sans l'arrêter explicitement, il s’arrête après une période d'inactivité et cesse de fonctionner. Par défaut, un codespace expire après 30 minutes d’inactivité, mais vous pouvez personnaliser le délai d’expiration des codespaces que vous créez. Pour plus d’informations sur la définition du délai d’expiration par défaut de vos codespaces, consultez « Définition de votre délai d'expiration pour GitHub Codespaces ». Pour plus d’informations sur l’arrêt d’un codespace, consultez « Arrêt d’un codespace ».

Lorsqu'un codespace expire, vos données sont conservées à partir du dernier enregistrement de vos modifications. Pour plus d’informations, consultez « Enregistrement des modifications dans un codespace ».

Reconstruction d’un codespace

Vous pouvez régénérer votre codespace pour implémenter les modifications apportées à votre configuration du conteneur de développement. Pour la plupart des utilisations, vous pouvez créer un codespace comme alternative à la reconstruction d’un codespace. Par défaut, lorsque vous régénérez votre codespace, GitHub Codespaces réutilisera les images de votre cache pour accélérer le processus de régénération. Vous pouvez également effectuer une régénération complète qui efface votre cache et régénère le conteneur avec de nouvelles images.

Remarque : Quand vous regénérez le conteneur dans un codespace, les changements que vous avez faits en dehors du répertoire /workspaces sont effacés. Les changements que vous avez faits à l’intérieur du répertoire /workspaces, qui comprend le clone du dépôt ou le modèle à partir duquel vous avez créé le codespace, sont conservés après la regénération. Pour plus d’informations, consultez « Présentation approfondie de GitHub Codespaces ».

Pour plus d’informations, consultez « Présentation des conteneurs de développement » et « Regénération du conteneur dans un codespace ».

Arrêt d’un codespace

Vous pouvez, à tout moment, arrêter un codespace. Lorsque vous arrêtez un espace de code, tous les processus en cours sont arrêtés. Ensuite, lorsque vous le redémarrez, toutes les modifications enregistrées dans votre codespace sont disponibles. L’historique des terminaux est conservé, mais le contenu visible de la fenêtre de terminal n’est pas conservé entre les sessions d’espace de code.

Si vous n’arrêtez pas explicitement un codespace, il continue de s’exécuter jusqu’à son expiration au terme du délai d’inactivité. La fermeture d’un codespace n’arrête pas le codespace. Par exemple, si vous utilisez un codespace dans le client web VS Code et que vous fermez l’onglet du navigateur, le codespace continue de s’exécuter sur l’ordinateur distant. Pour plus d’informations sur les délais d’expiration, consultez « Présentation du cycle de vie des codespaces ».

Seuls les codespaces exécutés 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 d’ordinateur utilisé pour votre codespace, vous devez l’arrêter et le redémarrer pour que la modification prenne effet. Vous pouvez également arrêter votre codespace et choisir de le redémarrer ou de le supprimer en cas d’erreur ou d’événement inattendu. Pour plus d’informations, consultez « Arrêt et démarrage d’un codespace ».

Suppression d’un codespace

Vous pouvez créer un codespace pour une tâche particulière, puis le supprimer en toute sécurité après avoir envoyé (push) vos modifications vers une branche distante.

Si vous essayez de supprimer un codespace avec des validations Git non envoyées (push), votre éditeur vous informe de la présence de modifications non envoyées (push) vers une branche distante. Vous pouvez envoyer les modifications souhaitées, puis supprimer votre codespace ou continuer de supprimer votre codespace et toutes les modifications non validées. Vous pouvez également exporter votre code vers une nouvelle branche sans créer de codespace. Pour plus d’informations, consultez « Exportation de modifications vers une branche ».

Les codespaces qui ont été arrêtés et qui restent inactifs pendant une période spécifiée sont supprimés automatiquement. Par défaut, les codespaces inactifs sont supprimés après 30 jours, mais vous pouvez personnaliser votre période de conservation des codespaces. Pour plus d’informations, consultez « Configuration de la suppression automatique de vos espaces de code ».

Si vous créez un codespace, il accumule des frais de stockage jusqu’à ce qu’il soit supprimé, qu’il soit actif ou arrêté. Pour plus d’informations, consultez « À propos de la facturation pour GitHub Codespaces ». La suppression d’un codespace ne réduit pas le montant facturable actuel pour GitHub Codespaces, qui s’accumule pendant chaque cycle de facturation mensuel. Pour plus d’informations, consultez « Consultation de votre utilisation de GitHub Codespaces ».

Pour plus d’informations sur la suppression d’un codespace, consultez « Suppression d’un codespace ».

Perte de la connexion lors de l’utilisation de GitHub Codespaces

GitHub Codespaces est un environnement de développement cloud et nécessite une connexion Internet. Si vous perdez la connexion à Internet lors de l’utilisation d’un codespace, vous ne pouvez pas accéder à celui-ci. Toutes les modifications non validées sont cependant enregistrées. Une fois la connexion à Internet rétablie, vous pouvez vous connecter à votre codespace dans l'état exact où vous l'avez laissé. En cas de connexion à Internet instable, vous devez valider et envoyer (push) vos modifications régulièrement.

S’il vous arrive souvent de travailler hors connexion, vous pouvez utiliser votre fichier devcontainer.json avec l’extension « Dev Containers » pour VS Code afin de créer et d’attacher un conteneur de développement local pour votre dépôt. Pour plus d’informations, consultez Développement à l’intérieur d’un conteneur dans la documentation Visual Studio Code.