Système · Étape
Exécuter une commande cmd.run
Lance une commande sur le poste du robot (npm, podman, git, curl…), suit sa sortie et récupère son code de sortie.
- Type
cmd.run- Famille
- Système
- Exécuté par
- Robot
- Quand l’utiliser
- Construire et publier un logiciel, piloter des conteneurs, synchroniser un dépôt.
Synopsis
{
"id": "publier",
"type": "cmd.run",
"label": "Publier sur le Hub",
"props": {
"command": "npm run release:publish",
"cwd": "{{depot}}/desktop",
"env": "ZOKAS_HUB_URL={{hub}}",
"credential": "Hub ZokasTech — jeton de publication",
"credential_env": "ZOKAS_HUB_TOKEN",
"timeout": "3600",
"into": "publication"
}
}Propriétés
Toutes les valeurs s’écrivent en chaînes JSON et acceptent l’interpolation {{variable}}. Voir Objet Étape.
| Propriété | Type | Requis | Défaut | Description |
|---|---|---|---|---|
command | texte | oui | — | Une seule commande, sans interpréteur : pas de « ; », « && », « | » ni redirection. « NOM=valeur programme » est accepté. Ex. npm run release:mac:arm64 |
cwd | chemin | non | première racine autorisée | Dossier de travail (dans les dossiers autorisés au robot). Ex. {{depot}}/desktop |
env | texte | non | — | Variables d'environnement, une par ligne NOM=valeur. |
credential | texte | non | — | Identifiant du Coffre injecté en variable d'environnement. |
credential_ | texte | non | ZOKAS_ | Variable qui reçoit le secret (l'identifiant va dans NOM_USER). Ex. ZOKAS_HUB_TOKEN |
timeout | nombre | non | 3600 | Délai maximal en secondes (6 h maximum). |
detach | booléen | non | false | Lancer en arrière-plan sans attendre (redémarrage d'un service). |
delay | nombre | non | 0 | Secondes d'attente avant le lancement (avec detach). |
allow_ | booléen | non | false | Ne pas arrêter le processus si le code de sortie n'est pas 0. |
into | variable | non | commande | Variable de résultat. |
Résultat
- Variable
commande— modifiable parinto- Nature
- objet
- Contenu
- Résultat de la commande. Voir l’objet Résultat de commande.
Remarques
- Liste blanche des programmes : ZOKAS_SHELL_ALLOW (par défaut npm, npx, node, podman, podman-compose, git, curl, unzip). ZOKAS_SHELL=0 désactive l'étape.
- Le robot complète le PATH (Homebrew, nvm, volta, fnm, asdf) ; ZOKAS_SHELL_PATH ajoute des dossiers.
- Les secrets sont retirés de la sortie avant journalisation.
Erreurs fréquentes
| Message | Cause | Solution |
|---|---|---|
programme « X » non autorisé sur ce robot | Programme hors liste blanche. | Ajoutez-le à ZOKAS_SHELL_ALLOW sur le robot. |
programme « npm » introuvable sur robot-vm-01 | Node.js absent du robot ou hors PATH. | Installez Node.js, ou indiquez son dossier dans ZOKAS_SHELL_PATH. |
enchaînements et redirections interdits | La ligne contient ; && | > … | Une étape par commande. |
Voir aussi
Source : orchestrator/zokas_orch/runtime.py — PackageRunner._cmd ; robot/zokas_robot/shell.py
Mis à jour le 28 octobre 2026