Passa al contenuto principale

Integrazione CI/CD

Semaphore può essere uno step di una pipeline esterna e può eseguire le proprie semplici pipeline di build e deploy.

Pipeline di build e deploy all'interno di Semaphore​

I tipi di Task Template Build e Deploy, il versionamento degli artefatti e la variabile semaphore_vars sono descritti nella guida per utenti: Task Template di build e deploy. Le pipeline multi-step con approvazioni si realizzano con i Workflow.

Avvio di Task di Semaphore da un sistema CI esterno​

Esistono due modi per avviare un Task da GitHub Actions, GitLab CI, Jenkins o qualsiasi altro sistema:

  • Integration: un URL webhook per ogni Project che avvia un Task Template quando la richiesta corrisponde. Supporta firme GitHub, token e HMAC e può passare i campi della richiesta al Task come variabili. Vedere Integration.
  • API REST: creare un Task con un token API:
curl -X POST https://semaphore.example.com/api/project/1/tasks \
-H 'Authorization: Bearer YOUR_API_TOKEN' \
-H 'Content-Type: application/json' \
-d '{"template_id": 5, "message": "Triggered by CI"}'

La risposta contiene l'ID del Task. Interrogare GET /api/project/1/tasks/{task_id} fino a quando lo status non è success, error oppure stopped. Vedere API per i token e il riferimento Swagger integrato.