Ciclo di vita di Codespace
GitHub Codespaces è configurabile, consentendo di creare un ambiente di sviluppo personalizzato per il progetto. Configurando un ambiente di sviluppo personalizzato per il progetto, si può garantire una configurazione Codespace uniforme e ripetibile per tutti gli utenti coinvolti nel progetto.
Il ciclo di vita di Codespace inizia quando si crea un Codespace e termina quando viene eliminato. È possibile disconnettersi e riconnettersi a un Codespace attivo senza influire sui processi in esecuzione. È possibile arrestare e riavviare un Codespace senza perdere le modifiche apportate al progetto.
Creare un Codespace
È possibile creare un Codespace in GitHub.com, in Visual Studio Code o nell'interfaccia della riga di comando di GitHub. Per creare un Codespace, sono disponibili quattro procedure:
- Da un modello GitHub o da un repository di modelli in GitHub.com per avviare un nuovo progetto.
- Da un ramo nel repository per lo sviluppo delle nuove funzionalità.
- Da una richiesta pull aperta per esplorare il lavoro in corso.
- Da un commit nella cronologia di un repository per analizzare un bug in un momento specifico.
È possibile usare temporaneamente un Codespace per testare il codice oppure tornare allo stesso Codespace per lavorare allo sviluppo di funzionalità di lunga durata.
È possibile creare più di un Codespace per repository o anche per ogni ramo. Tuttavia, esistono limiti al numero di Codespace che è possibile creare ed eseguire contemporaneamente. Quando si raggiungere il numero massimo di codespace e si prova a crearne un altro, viene visualizzato un messaggio. Il messaggio indica che un codespace esistente deve essere rimosso/eliminato prima di poterne creare uno nuovo.
È possibile creare un nuovo Codespace ogni volta che si sviluppa in GitHub Codespaces, oppure mantenere un Codespace di lunga durata per una funzionalità. All'avvio di un nuovo progetto, è necessario creare un Codespace da un modello e pubblicarlo successivamente in un repository in GitHub.
Quando si crea un nuovo Codespace ogni volta che si lavora su un progetto, è consigliabile eseguire regolarmente il push delle modifiche per assicurarsi che tutti i nuovi commit siano in GitHub. Quando si utilizza un codespace di lunga durata per un nuovo progetto, effettuare il pull dal ramo predefinito del repository ogni volta che si inizia a lavorare in codespace per consentire all'ambiente di ottenere i commit più recenti. Il flusso di lavoro è analogo a quello di un progetto su una macchina locale.
Gli amministratori del repository possono abilitare le precompilazioni di GitHub Codespaces per un repository, allo scopo di accelerare il processo di creazione dei Codespace.
Per un approfondimento e istruzioni dettagliate, consultare le risorse intitolate Guida per principianti all'apprendimento del codice con GitHub Codespaces e Sviluppare in un Codespace, che si trovano nell'unità Riepilogo alla fine di questo modulo.
Processo di creazione di Codespace
Quando si crea un codespace GitHub, si verificano quattro processi:
- Una macchina virtuale e l'archiviazione vengono assegnate al codespace.
- Viene creato un contenitore.
- Viene stabilita una connessione al Codespace.
- Viene eseguita una configurazione post-creazione.
Salvare le modifiche in un Codespace
Quando ci si connette a un codespace tramite il Web, il salvataggio automatico viene abilitato per salvare le modifiche dopo un periodo di tempo specifico. Quando ci si connette a un Codespace tramite Visual Studio Code in esecuzione sul desktop, è necessario abilitare il salvataggio automatico.
Il lavoro viene salvato in una macchina virtuale nel cloud. È possibile chiudere e arrestare un Codespace e tornare al lavoro salvato in un secondo momento. Se sono presenti modifiche non salvate, verrà visualizzato un prompt che chiede di salvarle prima di uscire. Tuttavia, se il Codespace viene eliminato, il lavoro andrà perso. Per salvare il lavoro, è necessario eseguire il commit delle modifiche ed effettuarne il push nel repository remoto. Se il Codespace è stato creato da un modello, è possibile anche pubblicare il lavoro in un nuovo repository.
Aprire un Codespace esistente
È possibile riaprire i Codespace attivi o arrestati in GitHub.com, in un ambiente di sviluppo integrato JetBrains, in Visual Studio Code o utilizzando l’interfaccia della riga di comando di GitHub.
Per riprendere un codespace esistente, è possibile passare al repository in cui esiste il codespace, selezionare la chiave ,, quindi Riprendi questo codespace. In alternativa, è possibile aprire https://github.com/codespaces nel browser, selezionare il repository, quindi il codespace esistente.
Timeout per un Codespace
Se un Codespace è inattivo o se si esce dal Codespace senza fermarlo in modo esplicito, l'applicazione raggiunge il timeout dopo un periodo di inattività e smette di funzionare. Il timeout predefinito è dopo 30 minuti di inattività. Quando un Codespace raggiunge il timeout, i dati vengono conservati fino all'ultimo momento in cui le modifiche sono state salvate.
Connessione Internet durante l'uso di GitHub Codespaces
Un Codespace richiede una connessione Internet. Se si perde la connessione a Internet mentre si lavora in un Codespace, non è possibile accedere al Codespace. Tuttavia, tutte le modifiche non sottoposte a commit vengono salvate. Quando si ristabilisce la connessione a Internet, è possibile accedere al Codespace nello stato in cui era stato lasciato prima della perdita della connessione.
Se la connessione a Internet è instabile, è necessario eseguire frequentemente il commit e il push delle modifiche.
Chiudere o arrestare un Codespace
Se si esce dal codespace senza eseguire il comando di arresto, o se si lascia il codespace in esecuzione senza interagire, questo e i processi in esecuzione proseguiranno durante il periodo di timeout di inattività. Il periodo di timeout di inattività predefinito è 30 minuti. È possibile definire un'impostazione personalizzata di timeout per i codespace creati. Tuttavia, questa può essere sovrascritta dai criteri di timeout dell'organizzazione.
Solo i Codespace in esecuzione comportano costi di CPU. Un Codespace che è stato arrestato comporta solo costi di archiviazione.
È possibile arrestare e riavviare un Codespace per applicare le modifiche. Ad esempio, se si cambia il tipo di macchina utilizzata per il Codespace, è necessario arrestarla e riavviarla affinché la modifica abbia effetto. Quando si chiude o si interrompe il Codespace, tutte le modifiche non sottoposte a commit vengono mantenute fino a quando non ci si connette nuovamente al Codespace.
È anche possibile interrompere il Codespace e scegliere di riavviarlo o eliminarlo se si verifica un errore o un evento imprevisto.
Ricompilare un Codespace
È possibile ricompilare il Codespace per applicare le modifiche alla configurazione del contenitore di sviluppo. Per la maggior parte delle applicazioni, creare un nuovo Codespace può essere un'alternativa valida alla ricompilazione di un Codespace esistente. Quando si ricompila il Codespace, le immagini dalla cache velocizzano il processo di ricompilazione. È anche possibile eseguire una ricompilazione completa per cancellare la cache e ricompilare il contenitore con immagini aggiornate.
Quando si ricompila il contenitore in un codespace, le modifiche apportate all'esterno della directory /workspaces vengono cancellate. Le modifiche apportate all'interno della directory /workspaces, incluso il clone del repository o il modello da cui è stato creato il codespace, vengono mantenute in caso di ricompilazione.
Eliminare un Codespace
È possibile creare un Codespace per una determinata attività. Dopo aver eseguito il push delle modifiche in un ramo remoto, è possibile eliminare il Codespace.
Se si tenta di cancellare un codespace con commit Git non effettuati, l'editor comunica che le modifiche non sono state inviate a un ramo remoto. È possibile eseguire il push di tutte le modifiche che si vuole e quindi eliminare il Codespace. È anche possibile continuare a eliminare il Codespace, insieme a eventuali modifiche non sottoposte a commit, oppure esportare il codice in un nuovo ramo senza dover creare un nuovo Codespace.
I Codespace arrestati che rimangono inattivi per un determinato periodo di tempo vengono eliminati automaticamente. I Codespace inattivi vengono eliminati dopo 30 giorni, ma è possibile personalizzare gli intervalli di conservazione dei Codespace.