Aller au contenu principal

Modèles de tâches

Un modèle de tâche définit ce qu'il faut exécuter et comment : l'application, le dépôt et le fichier à exécuter, l'inventaire, les groupes de variables, les identifiants, et les options qu'un utilisateur peut modifier au moment de démarrer une tâche. Chaque tâche est créée à partir d'un modèle.

Les modèles prennent en charge les applications suivantes :

Les administrateurs peuvent activer ou désactiver des applications et ajouter les leurs, voir Applications.

Liste des modèles​

La section Modèles de tâches liste tous les modèles du projet.

Liste des modèles

ColonneContenu
NomNom du modèle avec l'icône de l'application. Le bouton lecture démarre une nouvelle tâche.
VersionLa dernière version construite pour les modèles de build et de déploiement, sinon l'icône de résultat de la dernière tâche.
StatutBadge de statut de la dernière tâche, ou Non lancé.
Dernière tâcheNuméro de la dernière tâche et qui l'a démarrée.
PlaybookLe fichier que le modèle exécute.
Inventaire, Groupes de variables, DépôtRessources rattachées au modèle.

Les onglets au-dessus de la liste sont des vues : des groupes de modèles nommés. L'icône d'engrenage en haut à droite vous permet de choisir les colonnes affichées. Cliquez sur la flèche à gauche d'une ligne pour déplier les dernières tâches de ce modèle.

Ligne de modèle dépliée

Page du modèle​

Cliquez sur le nom d'un modèle pour ouvrir sa page. Le bouton en haut à droite démarre une tâche (Run, Build ou Deploy selon le type), Tout arrêter interrompt toutes les tâches en cours d'exécution ou en file d'attente du modèle.

OngletContenu
TâchesLes tâches de ce modèle, avec un bouton de relance sur chaque ligne.
DétailsLe playbook, le type, l'inventaire, les groupes de variables et le dépôt, ainsi que le graphique des statuts de tâches avec les mêmes filtres que les Statistiques.
Espaces de travailModèles Terraform, OpenTofu et Terragrunt uniquement : la liste des espaces de travail, voir Espaces de travail.

Détails du modèle

Types de modèle​

TypeObjectif
TaskUne exécution simple. Le type par défaut.
BuildProduit un artefact et lui attribue une version auto-incrémentée.
DeployDéploie une version produite par un modèle de build.

Les modèles de build et de déploiement, ainsi que les semaphore_vars qu'ils transmettent aux playbooks, sont décrits dans Modèles de build et de déploiement.

Formulaire du modèle​

Les utilisateurs ayant le rôle Manager ou supérieur peuvent créer et modifier des modèles avec Nouveau modèle et l'icône en forme de crayon. Le formulaire est organisé selon les groupes suivants. Les champs marqués d'un nom d'application n'apparaissent que pour cette application.

Champs communs​

ChampDescription
NomObligatoire. Nom du modèle.
DescriptionTexte facultatif affiché sous le nom.
AppApplication à exécuter.
DépôtDépôt contenant le playbook ou le script, voir Dépôts.
BrancheBranche Git à extraire. Vide signifie la branche configurée dans le dépôt. Désactivé pour un dépôt monorepo, qui est extrait une seule fois pour tous les modèles.
Nom du fichier Playbook / ScriptChemin du fichier relatif à la racine du dépôt. Pour les applications Terraform : le sous-répertoire contenant la configuration.
Répertoire de travail différentExécuter l'outil depuis un autre répertoire du dépôt.
InventaireInventaire Ansible, ou espace de travail pour les applications Terraform.
Groupes de variablesUn ou plusieurs groupes de variables dont les variables et les secrets sont injectés dans la tâche, voir Groupes de variables.
Mot de passe du vault (Ansible)Clés utilisées pour déverrouiller Ansible Vault, voir Plusieurs mots de passe de coffre.
VueL'onglet de vue dans lequel le modèle apparaît.
CLI argsArguments de ligne de commande supplémentaires sous forme de tableau JSON, par exemple ["-vvv"].

Champs propres au type​

ChampTypeDescription
Version initialeBuildLa première version à attribuer, par exemple 1.0.0.
Modèle de buildDeployLe modèle de build dont ce modèle déploie les artefacts.
Exécution automatiqueDeployDémarrer automatiquement un déploiement après chaque build réussi.

Options avancées​

ChampDescription
Autoriser les tâches parallèlesPermettre à plusieurs tâches de ce modèle de s'exécuter simultanément, voir Tâches parallèles.
Alertes, Envoyer en cas de succès, Envoyer en cas d'erreurIndique si des notifications sont envoyées pour les tâches de ce modèle et pour quels résultats. Les notifications nécessitent également l'option Autoriser les alertes pour ce projet dans les paramètres du projet.
Étiquette de runner (Pro)N'exécuter les tâches que sur les runners portant cette étiquette, voir Runners de projet.
Image de l'exécuteurImage de conteneur pour les runners Docker et Kubernetes, voir Image de l'exécuteur.
Émettre un JWT pour l'exécuteur de tâche, Audience du JWT, TTL du JWTFournir à la tâche un jeton signé, voir JWT de tâche.
Exécuter automatiquement la tâche si un nouveau commit git est détectéInterroger le dépôt à l'intervalle indiqué et démarrer une tâche lorsque la branche avance.
Variables de questionnaireSaisies que l'utilisateur renseigne au démarrage d'une tâche, voir Variables de questionnaire.

Invites​

Les invites sont des cases à cocher qui permettent à l'utilisateur de modifier des options intégrées dans la boîte de dialogue Nouvelle tâche : branche, inventaire, arguments CLI et, pour Ansible, limit, tags, skip tags, niveau de débogage et installation Galaxy. Voir Invites.

Pour un dépôt monorepo, l'invite Branche est désactivée : tous les modèles d'un tel dépôt s'exécutent dans une seule extraction partagée, une tâche ne peut donc pas la basculer vers une autre branche ou un autre commit. Survolez le champ désactivé pour en voir la raison.

Formulaire de modèle sur un dépôt monorepo : le champ Branche et l'invite Branche sont désactivés

Options des applications​

  • Ansible : limit, tags, skip tags et options d'installation Galaxy, voir Ansible.
  • Terraform/OpenTofu/Terragrunt : approbation automatique et remplacement du backend, voir Terraform/OpenTofu et Backend HTTP.

Tâches parallèles​

Par défaut, les tâches issues d'un même modèle s'exécutent séquentiellement. Pour autoriser des exécutions concurrentes du même modèle, activez l'option « Autoriser les tâches parallèles » dans les paramètres du modèle.

Image de l'exécuteur (runners Docker et Kubernetes)​

Lorsqu'un runner de projet utilise l'exécuteur Docker (Pro) ou Kubernetes (Enterprise), chaque tâche s'exécute normalement dans l'image de job par défaut configurée sur le runner (par exemple semaphoreui/job:latest). Vous pouvez remplacer cette image modèle par modèle.

  1. Ouvrez les paramètres du modèle
  2. Définissez Image de l'exécuteur sur la référence de l'image de conteneur (par exemple my-registry/ansible:2.16 ou semaphoreui/job:latest)
  3. Enregistrez le modèle

Comportement :

  • Seuls les exécuteurs de runner Docker et Kubernetes prennent en compte ce champ ; l'exécuteur local l'ignore
  • Laissez le champ vide pour utiliser l'image par défaut du runner issue de runner.executor.docker.image ou runner.executor.k8s.image
  • Effacer le champ dans l'interface supprime le remplacement

Cas d'usage :

  • Modèles nécessitant une chaîne d'outils différente (une version plus ancienne d'Ansible, une version précise de Terraform, des paquets système supplémentaires intégrés dans une image personnalisée)
  • Images isolées pour les modèles sensibles du point de vue de la sécurité, sans modifier la valeur par défaut appliquée à l'ensemble du runner

Consultez Configuration du runner pour les paramètres d'image par défaut et Runners de projet pour la configuration des exécuteurs.