I workflow di Semaphore UI collegano le operazioni salvate quando una procedura coinvolge più strumenti. Un’attività OpenTofu può creare un ambiente, un’attività Ansible configurarne gli host e un’attività Python registrarlo in un altro sistema. I rami di successo e di errore determinano il passaggio successivo, e un’approvazione può sospendere la sequenza prima di una modifica. I template restano disponibili separatamente per la manutenzione successiva, quindi una diagnostica non richiede di ripetere l’intera procedura di provisioning.
L’editor dei workflow di Semaphore UI permette a un ingegnere di collegare template salvati e configurarne i percorsi di successo o errore su un grafo. L’editor delle pipeline di GitLab modifica e valida YAML, poi visualizza i job risultanti e le dipendenze needs. La visualizzazione aiuta a esaminare la procedura, mentre le modifiche ai collegamenti restano modifiche alla configurazione della pipeline. Questo conta quando l’operatore vuole comporre visivamente procedure esistenti anziché mantenerne l’orchestrazione in YAML.
GitLab può passare valori calcolati ai job successivi attraverso artefatti di report dotenv, per esempio una versione distribuita o l’URL di un ambiente. JSON complesso o dati su più righe richiedono invece un normale artefatto file. Provisioning e configurazione possono passare valori strutturati tra attività di Semaphore UI. Per esempio, un output Terraform/OpenTofu con l’indirizzo di un nuovo host può diventare un input dell’operazione successiva. Nella versione 2.20, la raccolta degli output copre Ansible set_stats, gli output Terraform/OpenTofu/Terragrunt e JSON da Bash, PowerShell o Python con l’esecutore locale sul server o su un runner remoto. Gli esecutori delle attività Docker e Kubernetes non producono questi output dei workflow. Il template ricevente dichiara l’input, che il suo playbook o la sua configurazione di inventario usa poi per indirizzare il nuovo host.
GitLab può sospendere una pipeline con un job manuale bloccante in qualsiasi piano. Impostate when: manual con allow_failure: false, perché i job manuali facoltativi non bloccano la pipeline. Le approvazioni dei deployment di Premium e Ultimate aggiungono requisiti di approvazione assegnati in modo indipendente per gli ambienti protetti. L’approvazione dei workflow in Semaphore UI 2.20 segue il permesso di eseguire attività del progetto, con un ruolo di approvatore separato annunciato per la versione 2.21. Usate le approvazioni degli ambienti protetti di GitLab quando è necessaria questa separazione dei permessi di approvazione.
I file richiedono un percorso diverso. Un pacchetto compilato o un piano Terraform salvato deve essere conservato dove l’operazione successiva può recuperarlo oppure trasferito esplicitamente. Gli artefatti dei job di GitLab coprono già questa parte di una pipeline di delivery. Quando Semaphore UI gestisce il deployment, la sua automazione può recuperare l’artefatto pubblicato usando la versione o il digest fornito dalla CI. Si mantengono così le evidenze della build in GitLab, permettendo alle operazioni successive sugli host di usare inventari, credenziali e cronologia delle esecuzioni di Semaphore UI.
I componenti CI/CD di GitLab raggruppano configurazioni di pipeline versionate e riutilizzabili, incluse sequenze di job. Semaphore UI riutilizza i singoli Task Template, mentre la sequenza è definita in ogni workflow e non può essere inserita come un unico workflow annidato. I componenti sono utili quando molte pipeline di delivery devono condividere un processo con più passaggi mantenuto centralmente. Il modello di Semaphore UI è utile quando i team riutilizzano soprattutto le operazioni sottostanti e le collegano in modi diversi per provisioning, deployment o ripristino.