Saltar al contenido principal

Integración con CI/CD

Semaphore puede ser un paso dentro de una canalización externa y también puede ejecutar sus propias canalizaciones sencillas de compilación y despliegue.

Canalizaciones de compilación y despliegue dentro de Semaphore​

Los tipos de plantilla Build y Deploy, el versionado de artefactos y la variable semaphore_vars se describen en la guía del usuario: Plantillas de compilación y despliegue. Las canalizaciones de varios pasos con aprobaciones se construyen con Workflows.

Iniciar tareas de Semaphore desde un sistema de CI externo​

Hay dos formas de disparar una tarea desde GitHub Actions, GitLab CI, Jenkins o cualquier otro sistema:

  • Integraciones: una URL de webhook por proyecto que inicia una plantilla cuando la petición coincide. Admite firmas de GitHub, tokens y HMAC, y puede pasar campos de la petición a la tarea como variables. Consulte Integraciones.
  • API REST: cree una tarea con un token de 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 respuesta contiene el identificador de la tarea. Consulte GET /api/project/1/tasks/{task_id} de forma periódica hasta que el status sea success, error o stopped. Consulte API para obtener información sobre los tokens y la referencia de Swagger integrada.