Aller au contenu
colis

Cas d’usage

Livrer depuis la CI

Chaque build de recette envoyé depuis la CI sous un code, et la réponse du client qui revient en statut : validé ou à corriger.

.github/workflows/recette.yml
# colis is built from the repository until it is on npm
- run: npm run build && tar cz ./dist > recette.tar.gz
- run: |
    CODE=$(colis envoyer ./recette.tar.gz)
    echo "Build de recette : https://livraison.example.com/$CODE" >> "$GITHUB_STEP_SUMMARY"
  env:
    COLIS_REMOTE: https://livraison.example.com/api/transfers
    COLIS_TOKEN: ${{ secrets.DROP_PASSWORD }}

# later, in any script
# colis statut "$CODE" | head -1   → envoyé, ouvert, validé or à corriger

La situation

Ce qui se passe vraiment.

Le problème

Chaque build de recette part par un canal différent : un lien de stockage qui n’expire jamais, un fichier trop lourd pour l’e-mail, une capture dans une messagerie. Le retour du testeur arrive ailleurs, et on ne sait jamais quel build a été testé.

Ce que colis y fait

Le pipeline envoie le build avec colis envoyer vers votre page de livraison. Le code est la seule chose écrite sur stdout, donc il se glisse dans un message ou un commentaire de pull request. Le client ouvre le lien, télécharge, teste, puis valide ou décrit ce qui ne va pas. colis statut <code> | head -1 donne l’état à un script, et --json l’accusé complet.

À surveiller

Les pièges faciles.

La limite de la fonction

La CLI envoie en une seule requête, à travers la fonction de la page de livraison : le fichier doit tenir sous DROP_MAX_SIZE_MB, 4 Mo par défaut pour Vercel. Au-delà, envoyez-le depuis la page, qui passe directement par le bucket en morceaux, ou relevez la limite sur un hébergement qui ne l’impose pas.

Le jeton est le mot de passe d’envoi

--token, ou COLIS_TOKEN en CI, c’est le DROP_PASSWORD de la page. La machine de CI n’a besoin d’aucune clé S3.

Les options de la page ne suivent pas

Un colis créé par la CLI prend les valeurs par défaut du déploiement : pas de mot de passe, pas de message, la durée par défaut. Pour les poser depuis un terminal, envoyez les en-têtes x-drop-* avec curl.

Paquetscoliscolis-drop

Vous envoyez. Ils valident. Vous le savez.

Votre stockage, une page de livraison à votre nom, un webhook à chaque étape. Rien d’hébergé chez un tiers.