Guides
CI et GitHub Actions
Exécutez InboxTap en CI via une étape d’arrière-plan avec vérification de disponibilité ou un serveur programmatique.InboxTap est un simple processus Node 20+ : pas d’image Docker, pas de conteneur de service, rien à mettre en cache. Chaque fournisseur CI le lance de la même façon — installer, démarrer, attendre la vérification de disponibilité, lancer les tests.
Deux façons de le lancer
- Étape en arrière-plan. Démarrez le CLI avant l’étape de test. Cela reflète le développement local et donne à tous les tests de la tâche un serveur partagé sur les ports par défaut.
- Serveur programmatique. Démarrez
InboxTapServeravecapiPort: 0etsmtpPort: 0depuis la configuration globale de l’outil d’exécution, comme montré dans le guide des outils d’exécution de tests. Aucune étape CI supplémentaire, et des ports assignés automatiquement ne peuvent jamais entrer en collision.
Le reste de cette page montre le motif de l’étape en arrière-plan.
Attendre la vérification de disponibilité
Interrogez /health avant de passer la main à l’étape de test. Échouer vite ici vaut mieux que
déboguer l’expiration du délai du premier test :
npx inboxtap &
timeout 10 bash -c 'until curl -fsS http://localhost:8025/health > /dev/null; do sleep 0.1; done'/health répond une fois les écouteurs SMTP et HTTP liés, et rapporte les adresses et le domaine
destinataire en usage.
Processus GitHub Actions
name: e2e
on: push
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 20
- run: npm ci
- name: Start InboxTap
run: |
npx inboxtap &
timeout 10 bash -c 'until curl -fsS http://localhost:8025/health > /dev/null; do sleep 0.1; done'
- name: Run tests
run: npm test
env:
SMTP_HOST: localhost
SMTP_PORT: "1025"Le processus en arrière-plan reste actif pendant le reste de la tâche, et l’outil d’exécution l’arrête à la fin — aucune étape de nettoyage n’est nécessaire.
Ports et autres fournisseurs
Les ports par défaut 1025 et 8025 sont libres sur les processus d’exécution hébergés de GitHub,
GitLab et CircleCI. Gardez InboxTap sur l’interface de bouclage en CI ; il n’y a aucune raison
d’élargir --smtp-host ou --api-host pour une exécution de tests. Sur des processus d’exécution
auto-hébergés et partagés où des tâches concurrentes peuvent entrer en collision, passez des valeurs
--smtp-port et --api-port explicites par tâche, ou basculez sur le serveur programmatique avec le
port 0. Quel que soit le fournisseur, la séquence tient en trois étapes : installer, démarrer avec
une vérification de disponibilité, tester.