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

POST/smartflow/v1/builds

Cré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"}'
200
{
  "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

POST/smartflow/v1/builds/:id/logs

Corps

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..."]}'
200
{ "ok": true }

ok vaut false quand le build est déjà terminé ou annulé : les lignes sont alors ignorées.

Signaler un échec

POST/smartflow/v1/builds/:id/fail

Corps

messagestring
Cause de l'échec, 2000 caractères au plus. Un message par défaut est utilisé s'il manque.
canceledboolean
true si 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)."}'
200
{ "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

StatutCodeQuand
400bad_requestCorps invalide.
404not_foundProjet 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.