Scripts de dépôt
Les scripts de dépôt sont des scripts shell que vous configurez dépôt par dépôt
(Paramètres → Dépôts → l’icône de terminal sur la ligne d’un dépôt) et que le
serveur de Control Center exécute sur l’arbre de travail d’un espace pour ce
dépôt — la copie de travail isolée située sous
<dataDir>/<workspaceId>/spaces/<spaceId>/repos/<repo>/, où travaillent les
agents.
Il en existe deux types :
| Script | Quand il s’exécute | Utilisez-le pour |
|---|---|---|
| Configuration | Juste après le provisionnement d’un arbre de travail pour un espace | Installer les dépendances, générer des fichiers, copier le fichier .env |
| Archivage | Juste avant qu’un arbre de travail ne soit détruit ou récupéré par le GC | Nettoyer les ressources extérieures à l’arbre de travail (réseaux Docker, tunnels, état externe) |
Où les scripts s’exécutent
Section intitulée « Où les scripts s’exécutent »Les deux scripts s’exécutent via bash -lc (un shell de connexion, donc les
outils installés par Homebrew/nvm sont dans le PATH) avec l’arbre de travail
comme répertoire de travail, et les variables d’environnement suivantes
définies :
| Variable | Valeur |
|---|---|
CC_WORKSPACE_PATH |
L’arbre de travail (le répertoire de travail du script) |
CC_ROOT_PATH |
Le dépôt source enregistré — votre propre copie de travail |
CC_SPACE_ID |
L’espace auquel appartient l’arbre de travail |
CC_SPACE_NAME |
Le nom d’affichage de l’espace |
CC_REPO_NAME |
Le nom d’affichage du dépôt |
Par exemple, un script de configuration qui installe les dépendances et
récupère le fichier .env ignoré par Git du dépôt :
pnpm installcp "$CC_ROOT_PATH/.env" .envpnpm run buildComportement en cas d’échec
Section intitulée « Comportement en cas d’échec »- Un script de configuration qui se termine avec un code non nul (ou qui dépasse son délai d’expiration de 5 minutes) fait échouer le provisionnement de l’espace : l’espace affiche l’état d’échec avec une nouvelle tentative, et la fin de la sortie de l’exécution est enregistrée. Une nouvelle tentative effectue le provisionnement à partir d’un arbre de travail propre et relance le script — écrivez vos scripts de configuration de sorte qu’une réexécution après une installation partielle fonctionne (les gestionnaires de paquets se comportent déjà ainsi).
- Un script d’archivage est exécuté au mieux : un échec (ou son délai d’expiration de 2 minutes) est enregistré, mais ne bloque jamais la suppression. L’archivage s’exécute sur les chemins de GC, où personne ne peut répondre à une invite (espace supprimé, PR fusionnée, nettoyage planifié).
La configuration ne s’exécute que sur un arbre de travail neuf : le lancement de nouveaux agents dans un espace déjà chaud réutilise la copie de travail existante et n’a pas à repayer l’installation.
Historique des exécutions
Section intitulée « Historique des exécutions »Chaque exécution est enregistrée avec son état, sa durée, son code de sortie et
une fin de sortie bornée, visible dans la même boîte de dialogue de paramètres,
sous « Exécutions récentes » (l’abonnement repos.watchScriptRuns la diffuse en
direct).
Autorisations
Section intitulée « Autorisations »Les scripts étant du shell que le serveur exécute, leur écriture est
réservée aux administrateurs d’espace de travail et encadrée par la classe
d’actions processSpawn — le même filet de garde-fous que celui qui encadre
toute autre opération de lancement de processus.