Référence de l'API
Builds de la CI
Annoncez un build, envoyez sa sortie en direct et signalez un échec.
Ces trois routes sont propres à SmartFlow Host. Le workflow posé par l'app GitHub s'en sert pour que le déploiement apparaisse dans la console dès le début du build, avec sa sortie en direct. Elles acceptent une clé d'équipe ou une clé de projet.
Démarrer un build
/smartflow/v1/buildsCrée un déploiement à l'état BUILDING, encore sans fichiers.
Corps
projectstringrequis- Identifiant ou nom du projet.
target"production" | "preview"requis- Environnement visé.
branchstring- Branche construite, 255 caractères au plus.
commitShastring- Empreinte du commit, de 7 à 40 caractères hexadécimaux.
commitMessagestring- Message du commit. Seule la première ligne est gardée.
runUrlstring- Lien du run GitHub Actions, de la forme
https://github.com/<propriétaire>/<dépôt>/actions/runs/<id>.
curl -X POST https://api.host.hgdc.ch/smartflow/v1/builds \
-H "Authorization: Bearer $SMARTFLOW_HOST_TOKEN" \
-H "Content-Type: application/json" \
-d '{"project":"site-atelier","target":"preview","branch":"nouvelle-page","commitSha":"4c3e2f1"}'{
"id": "jd7f2k9m3x8q1p5s6t4v0w7y2z",
"url": "https://site-atelier-h3k9x2.hgdc.cloud"
}Gardez id : il sert aux deux routes suivantes, et à vercel deploy --prebuilt --meta smartflowBuild=<id>, qui rattache les fichiers à ce build au lieu d'ouvrir un nouveau déploiement.
Envoyer des lignes de log
/smartflow/v1/builds/:id/logsCorps
linesstring[]requis- Lignes de sortie du build, 1000 au plus par appel. Les codes de couleur du terminal sont retirés, chaque ligne est coupée à 2000 caractères et classée en info, avertissement ou erreur.
curl -X POST https://api.host.hgdc.ch/smartflow/v1/builds/jd7f2k9m3x8q1p5s6t4v0w7y2z/logs \
-H "Authorization: Bearer $SMARTFLOW_HOST_TOKEN" \
-H "Content-Type: application/json" \
-d '{"lines":["$ npm run build","vite v8.3.4 building for production..."]}'{ "ok": true }ok vaut false quand le build est déjà terminé ou annulé : les lignes sont alors ignorées.
Signaler un échec
/smartflow/v1/builds/:id/failCorps
messagestring- Cause de l'échec, 2000 caractères au plus. Un message par défaut est utilisé s'il manque.
canceledbooleantruesi le build a été annulé plutôt qu'il n'a échoué. Par défaut :false.
curl -X POST https://api.host.hgdc.ch/smartflow/v1/builds/jd7f2k9m3x8q1p5s6t4v0w7y2z/fail \
-H "Authorization: Bearer $SMARTFLOW_HOST_TOKEN" \
-H "Content-Type: application/json" \
-d '{"message":"npm run build a échoué (code 1)."}'{ "ok": true }Le déploiement passe à ERROR (ou CANCELED) et le statut du commit GitHub est mis à jour. Un build resté sans nouvelles pendant une heure est fermé en erreur automatiquement.
Erreurs
| Statut | Code | Quand |
|---|---|---|
| 400 | bad_request | Corps invalide. |
| 404 | not_found | Projet ou build inconnu, ou hors de la portée de la clé. |
Toutes les routes peuvent aussi répondre 403 forbidden, 429 rate_limited et 500 internal_server_error. Voir Erreurs.