Scripts de dépôt
Les scripts de dépôt sont des scripts de shell que vous configurez 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 contre l’arbre de travail d’un espace
pour ce dépôt — la copie isolée sous
<dataDir>/<workspaceId>/spaces/<spaceId>/repos/<repo>/ où les agents
travaillent.
Il en existe deux types :
| Script | Quand il s’exécute | À quoi il sert |
|---|---|---|
| Configuration | Juste après le provisionnement d’un arbre de travail pour un espace | Installer les dépendances, générer des fichiers, copier .env |
| Archivage | Juste avant qu’un arbre de travail soit détruit ou récupéré par le GC | Nettoyer des ressources à l’extérieur de 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 par bash -lc (un shell de connexion, de sorte que
les outils installés par Homebrew ou nvm sont dans le PATH) avec l’arbre de
travail comme répertoire de travail, et avec ces variables d’environnement
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 |
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 .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 consignée. Une nouvelle tentative provisionne à partir d’un arbre de travail propre et exécute de nouveau le script — écrivez donc vos scripts de configuration pour qu’une réexécution après une installation partielle fonctionne (les gestionnaires de paquets se comportent déjà ainsi).
- Un script d’archivage s’exécute au mieux : un échec (ou son délai d’expiration de 2 minutes) est consigné, 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 : relancer des agents dans un espace chaud réutilise la copie existante et ne repaye pas l’installation.
Historique des exécutions
Section intitulée “Historique des exécutions”Chaque exécution est consignée avec son état, sa durée, son code de sortie et
une fin de sortie bornée, visibles dans la même boîte de dialogue de paramètres
sous « Exécutions récentes » (l’abonnement repos.watchScriptRuns les diffuse
en direct).
Autorisations
Section intitulée “Autorisations”Les scripts sont des commandes shell que le serveur exécute, de sorte que
leur écriture est réservée aux administrateurs d’espace de travail et protégée
par la classe d’action processSpawn — le même filet de garde-fous qui encadre
toute autre opération lançant un processus.