My App
CI/CD

GitHub Actions

Le workflow d'intégration continue de Vantablvck, étape par étape.

Le workflow vit dans .github/workflows/ci.yml. Il définit un seul job, quality, qui exécute toute la chaîne de vérification sur une machine ubuntu-latest.

Déclencheurs

Le workflow se lance sur deux évènements.

ÉvènementDéclenchement
pushSur la branche main
pull_requestSur toute pull request

Une clé de concurrence annule les exécutions dépassées : si un nouveau commit arrive pendant qu'une CI tourne encore sur la même référence, l'ancienne est arrêtée. On évite ainsi de gaspiller des minutes de CI sur du code déjà remplacé.

concurrency:
  group: ci-${{ github.ref }}
  cancel-in-progress: true

Les étapes

Le job enchaîne les étapes dans un ordre volontaire, du moins cher au plus cher, pour échouer tôt.

jobs:
  quality:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4

      - name: Setup Bun
        uses: oven-sh/setup-bun@v2
        with:
          bun-version: 1.3.8

      - name: Install dependencies
        run: bun install --frozen-lockfile

      - name: Lint and format
        run: bunx biome ci .

      - name: Type check
        run: bunx nx run-many -t check-types --exclude=native

      - name: Unit tests
        run: bun run test

      - name: Build
        run: bunx nx run-many -t build --exclude=native
ÉtapeRôle
CheckoutRécupère le code du dépôt
Setup BunInstalle Bun en version 1.3.8, la même que le packageManager du projet
InstallInstalle les dépendances en respectant le lockfile (--frozen-lockfile)
Lint and formatbiome ci vérifie le style et le format sans rien modifier
Type checkVérifie les types de tous les projets sauf l'app native
Unit testsLance les tests via Nx, sur le runner natif de Bun
BuildConstruit tous les projets sauf l'app native

Pourquoi l'app native est exclue

L'application Expo est gelée pour le MVP, la priorité va au web et à la PWA. Ses builds sont sensibles en environnement d'intégration continue, et son code ne bouge pas. On l'exclut donc de la vérification de types et du build (--exclude=native) pour garder la CI verte et rapide. Elle sera réintégrée le jour où le natif sortira du gel.

Le lint via biome ci couvre l'ensemble du dépôt, y compris l'app native. Seuls la vérification de types et le build sont restreints, car ce sont eux qui posent problème sur une app Expo gelée.

On this page