Task Template
Un Task Template definisce cosa eseguire e come: l'applicazione, il Repository e il file da eseguire, l'Inventory, i Variable Group, le credenziali e le opzioni che un utente può modificare all'avvio di un Task. Ogni Task viene creato a partire da un Task Template.
I Task Template supportano le seguenti applicazioni:
Gli amministratori possono abilitare o disabilitare le applicazioni e aggiungerne di proprie, vedere Applicazioni.
Elenco dei Task Template
La sezione Task Templates elenca tutti i Task Template del Project.

| Colonna | Contenuto |
|---|---|
| Name | Nome del Task Template con l'icona dell'applicazione. Il pulsante play avvia un nuovo Task. |
| Version | L'ultima versione di build per i Task Template di build e deploy, altrimenti l'icona del risultato dell'ultimo Task. |
| Status | Badge dello stato dell'ultimo Task, oppure Not launched. |
| Last Task | Numero dell'ultimo Task e chi lo ha avviato. |
| Playbook | Il file eseguito dal Task Template. |
| Inventory, Variable Groups, Repository | Le risorse associate al Task Template. |
Le schede sopra l'elenco sono le viste: gruppi di Task Template con un nome. L'icona a forma di ingranaggio nell'angolo in alto a destra consente di scegliere quali colonne mostrare. Fare clic sulla freccia a sinistra di una riga per espandere gli ultimi Task di quel Task Template.

Pagina del Task Template
Fare clic sul nome di un Task Template per aprirne la pagina. Il pulsante nell'angolo in alto a destra avvia un Task (Run, Build oppure Deploy a seconda del tipo), Stop all interrompe tutti i Task in esecuzione o in coda del Task Template.
| Scheda | Contenuto |
|---|---|
| Tasks | I Task di questo Task Template, con un pulsante di riesecuzione in ogni riga. |
| Details | Il playbook, il tipo, l'Inventory, i Variable Group e il Repository, oltre al grafico degli stati dei Task con gli stessi filtri di Stats. |
| Workspaces | Solo per i Task Template Terraform, OpenTofu e Terragrunt: l'elenco dei workspace, vedere Workspace. |

Tipi di Task Template
| Tipo | Scopo |
|---|---|
| Task | Una semplice esecuzione. È il tipo predefinito. |
| Build | Produce un artefatto e gli assegna una versione incrementata automaticamente. |
| Deploy | Distribuisce una versione prodotta da un Task Template di build. |
I Task Template di build e deploy e la variabile semaphore_vars che passano ai playbook sono descritti in Task Template di build e deploy.
Modulo del Task Template
Gli utenti con il ruolo Manager o superiore possono creare e modificare i Task Template tramite New Template e l'icona a forma di matita. Il modulo è organizzato nei gruppi seguenti. I campi contrassegnati con il nome di un'applicazione compaiono solo per quell'applicazione.
Campi comuni
| Campo | Descrizione |
|---|---|
| Name | Obbligatorio. Nome del Task Template. |
| Description | Testo facoltativo mostrato sotto il nome. |
| App | Applicazione da eseguire. |
| Repository | Repository con il playbook o lo script, vedere Repository. |
| Branch | Branch Git da estrarre. Se vuoto, viene utilizzato il branch configurato nel Repository. Disabilitato per un Repository monorepo, che viene estratto una sola volta per tutti i Task Template. |
| Playbook / Script filename | Percorso del file relativo alla radice del Repository. Per le App Terraform: la sottodirectory che contiene la configurazione. |
| Different working directory | Esegue lo strumento da un'altra directory del Repository. |
| Inventory | Inventory di Ansible, oppure un workspace per le App Terraform. |
| Variable Groups | Uno o più Variable Group le cui variabili e segreti vengono iniettati nel Task, vedere Variable Group. |
| Vault password (Ansible) | Chiavi utilizzate per sbloccare Ansible Vault, vedere Più password Vault. |
| View | In quale scheda di vista viene mostrato il Task Template. |
| CLI args | Argomenti aggiuntivi della riga di comando come array JSON, ad esempio ["-vvv"]. |
Campi specifici del tipo
| Campo | Tipo | Descrizione |
|---|---|---|
| Start Version | Build | La prima versione da assegnare, ad esempio 1.0.0. |
| Build Template | Deploy | Il Task Template di build i cui artefatti vengono distribuiti da questo Task Template. |
| Autorun | Deploy | Avvia automaticamente un deploy dopo ogni build riuscita. |
Opzioni avanzate
| Campo | Descrizione |
|---|---|
| Allow parallel tasks | Consente l'esecuzione contemporanea di più Task di questo Task Template, vedere Task paralleli. |
| Alerts, Send on success, Send on error | Indicano se vengono inviate notifiche per i Task di questo Task Template e per quali risultati. Le notifiche richiedono inoltre l'opzione Allow alerts for this project nelle impostazioni del Project. |
| Runner tag (Pro) | Esegue i Task solo sui Runner con questo tag, vedere Runner del Project. |
| Executor image | Immagine del container per i Runner Docker e Kubernetes, vedere Immagine dell'executor. |
| Issue JWT to task runner, JWT audience, JWT TTL | Assegna al Task un token firmato, vedere JWT dei Task. |
| Auto-run task if new git commit have been found | Interroga il Repository all'intervallo indicato e avvia un Task quando il branch avanza. |
| Survey variables | Input che l'utente compila all'avvio di un Task, vedere Variabili di survey. |
Prompt
I prompt sono caselle di controllo che consentono all'utente di modificare le opzioni integrate nella finestra di dialogo New Task: branch, Inventory, argomenti CLI e, per Ansible, limit, tags, skip tags, livello di debug e installazione Galaxy. Vedere Prompt.
Per un Repository monorepo il prompt Branch è disabilitato: ogni Task Template di tale Repository viene eseguito in un unico checkout condiviso, quindi un Task non può passare a un altro branch o commit. Passare il mouse sul campo disabilitato per vederne il motivo.

Opzioni delle applicazioni
- Ansible: limit, tags, skip tags e opzioni di installazione Galaxy, vedere Ansible.
- Terraform/OpenTofu/Terragrunt: auto approve e override del backend, vedere Terraform/OpenTofu e Backend HTTP.
Task paralleli
Per impostazione predefinita, i Task dello stesso Task Template vengono eseguiti in sequenza. Per consentire esecuzioni concorrenti dello stesso Task Template, abilitare l'opzione "Allow parallel tasks" nelle impostazioni del Task Template.
Immagine dell'executor (Runner Docker e Kubernetes)
Quando un Runner di Project utilizza l'executor Docker (Pro) o Kubernetes (Enterprise), normalmente ogni Task viene eseguito nell'immagine di job predefinita configurata sul Runner (ad esempio semaphoreui/job:latest). È possibile sovrascrivere quell'immagine per singolo Task Template.
- Aprire le impostazioni del Task Template
- Impostare Executor image con il riferimento all'immagine del container (ad esempio
my-registry/ansible:2.16oppuresemaphoreui/job:latest) - Salvare il Task Template
Comportamento:
- Solo gli executor Runner Docker e Kubernetes tengono conto di questo campo; l'executor local lo ignora
- Lasciare il campo vuoto per utilizzare l'immagine predefinita del Runner da
runner.executor.docker.imageoppurerunner.executor.k8s.image - Svuotando il campo nell'interfaccia si rimuove l'override
Casi d'uso:
- Task Template che necessitano di una toolchain differente (una versione più vecchia di Ansible, una versione specifica di Terraform, pacchetti di sistema aggiuntivi inclusi in un'immagine personalizzata)
- Immagini isolate per Task Template sensibili dal punto di vista della sicurezza, senza modificare il valore predefinito per l'intero Runner
Vedere Configurazione del Runner per le impostazioni delle immagini predefinite e Runner del Project per la configurazione degli executor.