Tâches
Une tâche est une exécution unique d'un modèle de tâche : une exécution d'un playbook Ansible, d'une configuration Terraform/OpenTofu/Terragrunt, ou d'un script Bash, PowerShell ou Python. Chaque tâche conserve son propre journal, son statut et ses détails, de sorte que vous pouvez toujours voir ce qui a été exécuté, quand, par qui et avec quelle révision du dépôt.
Démarrer une tâche
Vous devez disposer du rôle Task Runner ou supérieur dans le projet (voir Équipes). Démarrez une tâche depuis l'un des deux emplacements suivants :
- Dans Modèles de tâches, cliquez sur le bouton lecture dans la ligne du modèle.
- Sur la page du modèle, cliquez sur le bouton en haut à droite. Son libellé dépend du type de modèle : Run, Build ou Deploy.
Les deux ouvrent la boîte de dialogue Nouvelle tâche. Son contenu dépend de l'application et des options activées dans le modèle.

| Champ | Affiché pour | Description |
|---|---|---|
| Message | tous les modèles | Note facultative enregistrée avec la tâche et affichée dans l'historique et les alertes. |
| Build Version | modèles de déploiement | Quel build déployer. Le dernier build réussi est sélectionné par défaut. Voir Modèles de build et de déploiement. |
| Variables de questionnaire | modèles avec des variables de questionnaire | Un champ de saisie par variable ; les variables obligatoires doivent être remplies. |
Dry Run --check, Diff --diff | Ansible | Exécuter le playbook en mode vérification ou afficher les modifications de fichiers. Les autres invites Ansible (Limit, Tags, Skip tags, Debug) apparaissent lorsqu'elles sont activées dans le modèle, voir Invites. |
| Plan, Destroy, Auto Approve, Upgrade, Reconfigure | Terraform, OpenTofu, Terragrunt | Exécuter uniquement plan, ajouter -destroy, -auto-approve, -upgrade ou -reconfigure. Voir Terraform/OpenTofu. |
| Branche, Inventaire, Arguments CLI | toute application | Remplacer les valeurs du modèle pour cette exécution. Chaque remplacement doit être autorisé dans les paramètres du modèle. |

Cliquez sur Run (ou Build / Deploy) pour placer la tâche dans la file d'attente.
File d'attente et exécution parallèle
Les tâches d'un même modèle s'exécutent l'une après l'autre, sauf si Autoriser les tâches parallèles est activé dans le modèle. Le projet peut également limiter le nombre total de tâches en cours d'exécution avec Nombre maximal de tâches parallèles dans les paramètres du projet. Une tâche qui doit attendre reste au statut waiting et démarre automatiquement dès qu'un emplacement est libre.
Fenêtre de tâche
Cliquer sur une tâche n'importe où dans l'interface ouvre la fenêtre de tâche. L'en-tête affiche le modèle, le numéro de la tâche, le message de commit de la révision du dépôt, le badge de statut, qui a démarré la tâche et quand, ainsi que la durée. L'icône en forme de flèches agrandit la fenêtre en plein écran.

| Onglet | Contenu |
|---|---|
| Log | Sortie en direct de la tâche avec horodatage. Le journal est diffusé pendant l'exécution de la tâche. Raw log ouvre la sortie brute dans un nouvel onglet du navigateur. |
| Détails | Informations sur le modèle (application, modèle), informations sur le commit (message et hachage) et informations d'exécution : message, dates de création, de démarrage et de fin, durée et, le cas échéant, le runner, la branche, la limite et les variables utilisées pour l'exécution. |
| Résumé (Pro) | Pour les tâches Ansible : combien d'hôtes se sont terminés correctement et combien ont échoué, avec un tableau des tâches en échec par serveur. |


Statuts des tâches
| Statut | Signification |
|---|---|
waiting | La tâche est dans la file d'attente : une autre tâche du même modèle est en cours d'exécution, la limite du projet est atteinte, ou aucun runner n'est encore disponible. |
starting | Un runner a pris la tâche et prépare le dépôt et l'environnement. |
waiting_confirmation | L'outil a posé une question et attend un utilisateur, par exemple terraform apply sans Auto Approve ou un script qui lit une entrée. Utilisez Confirmer ou Rejeter dans la fenêtre de tâche. |
confirmed | Un utilisateur a confirmé la question ; la tâche continue. |
rejected | Un utilisateur a rejeté la question ; la tâche se termine. |
running | Le playbook ou le script est en cours d'exécution. |
stopping | Un arrêt a été demandé et le processus est en cours de terminaison. |
stopped | La tâche a été arrêtée par un utilisateur. |
success | Terminée avec le code de sortie 0. |
error | Terminée avec un code de sortie non nul ou n'a pas pu démarrer. Affiché comme Failed dans l'interface. |
Arrêter des tâches
Ouvrez la fenêtre de tâche d'une tâche en cours d'exécution et cliquez sur Stop. Semaphore envoie un signal de terminaison et la tâche passe au statut stopping pendant que le processus se termine. Si le processus ne réagit pas, le bouton devient Force Stop ; cliquez dessus pour tuer immédiatement le processus.
Pour arrêter toutes les tâches en cours d'exécution et en file d'attente d'un modèle, ouvrez la page du modèle et utilisez Tout arrêter. Le menu déroulant propose à la fois Stop et Force stop.
Relancer une tâche
Dans l'onglet Tâches d'un modèle, chaque ligne possède un bouton de relance. Il ouvre la boîte de dialogue Nouvelle tâche avec le message et les paramètres de cette tâche pré-remplis.

Où les tâches sont listées
- Tableau de bord → Historique : toutes les tâches du projet, voir Historique.
- Page du modèle → Tâches : les tâches d'un seul modèle.
- Modèles de tâches : dépliez une ligne avec la flèche à gauche pour voir les dernières tâches du modèle sans quitter la liste.
Variables d'environnement
Chaque tâche, quelle que soit son application (Ansible, Terraform, Bash, PowerShell ou Python), reçoit des variables qui l'identifient dans Semaphore :
| Variable | Valeur |
|---|---|
SEMAPHORE_TASK_ID | ID de la tâche |
SEMAPHORE_PROJECT_ID | ID du projet auquel appartient la tâche |
SEMAPHORE_WORKFLOW_ID | ID du workflow, lorsque la tâche est un nœud d'une exécution de workflow |
SEMAPHORE_WORKFLOW_RUN_ID | ID de l'exécution du workflow à laquelle appartient la tâche |
SEMAPHORE_WORKFLOW_VERSION | Version de l'exécution du workflow à laquelle appartient la tâche, si elle en a une |
SEMAPHORE_WORKFLOW_URL | Lien vers la page de l'exécution du workflow (nécessite web_host dans la configuration du serveur) |
SEMAPHORE_OUTPUTS_FILE | Chemin du fichier dans lequel une tâche de workflow écrit ses sorties |
Les variables de workflow sont absentes si la tâche n'a pas été démarrée par un workflow.
La liste complète, y compris les variables définies pour une seule app et les variables auxiliaires pour git et SSH, se trouve dans la référence : Variables d'environnement des tâches.
D'autres variables sont définies dans certains cas :
SEMAPHORE_TASK_TYPE,SEMAPHORE_TASK_INCOMING_VERSION,SEMAPHORE_TASK_TARGET_VERSIONet la familleSEMAPHORE_TASK_DETAILS_*pour les modèles de build et de déploiement.SEMAPHORE_JWTlorsque le modèle émet un JWT.
Exemple pour Bash :
echo "Task $SEMAPHORE_TASK_ID of project $SEMAPHORE_PROJECT_ID"
if [ -n "$SEMAPHORE_WORKFLOW_RUN_ID" ]; then
echo "Started by workflow run: $SEMAPHORE_WORKFLOW_URL"
fi
Conservation des journaux
Les tâches et les journaux sont conservés indéfiniment par défaut. Utilisez max_tasks_per_template pour ne conserver que les dernières tâches de chaque modèle, voir Historique.