Aller au contenu

Tape un mot pour chercher dans les pages.

↑↓ Choisir↵ OuvrirÉchap Fermer

Guides

Écris ton propre workflow avec la CLI Vercel, sans passer par l'app GitHub de Host.

Tu préfères garder la main sur ton workflow, ou tu utilises une autre CI ? L’app GitHub n’est pas nécessaire : la CLI suffit. Ce guide met en place un workflow qui construit et déploie à chaque push.

Résultat attendu : un push sur la branche principale publie en production, et un push sur une autre branche publie une preview.

Ce que tu perds par rapport à l’app : le déploiement n’apparaît dans Host qu’à l’envoi, sans sortie de build en direct, et le statut du commit n’est pas mis à jour.

Relier le dossier au projet

  1. Lance un premier déploiement en local

    Depuis le dossier du projet, avec ta clé d’organisation :

    export VERCEL_TOKEN=ah_…
    vercel --api https://api.host.hgdc.ch deploy --yes

    La commande crée .vercel/project.json, qui contient orgId et projectId.

    Vérification : le fichier .vercel/project.json existe, et le projet apparaît dans Host.

  2. Ajoute les secrets au dépôt

    Dans le dépôt GitHub, ouvre Settings → Secrets and variables → Actions et crée trois secrets :

    SecretValeur
    VERCEL_TOKENUne clé d’API ah_… d’organisation
    VERCEL_ORG_IDLa valeur orgId de .vercel/project.json
    VERCEL_PROJECT_IDLa valeur projectId de .vercel/project.json

    Ne mets ni la clé ni les identifiants dans le fichier de workflow.

  3. Ajoute le workflow

    Crée .github/workflows/deploy.yml :

    name: Déploiement
    on:
    push:
    branches: [main]
    pull_request:
    permissions:
    contents: read
    env:
    VERCEL_TOKEN: ${{ secrets.VERCEL_TOKEN }}
    VERCEL_ORG_ID: ${{ secrets.VERCEL_ORG_ID }}
    VERCEL_PROJECT_ID: ${{ secrets.VERCEL_PROJECT_ID }}
    API: https://api.host.hgdc.ch
    jobs:
    deploy:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v7
    - uses: actions/setup-node@v7
    with:
    node-version: 24
    - run: npm install --global vercel@63
    - name: Production
    if: github.ref == 'refs/heads/main'
    run: |
    vercel pull --yes --environment=production --api "$API"
    vercel build --prod --api "$API"
    vercel deploy --prebuilt --prod --api "$API"
    - name: Preview
    if: github.ref != 'refs/heads/main'
    run: |
    vercel pull --yes --environment=preview --api "$API"
    vercel build --api "$API"
    vercel deploy --prebuilt --api "$API"

    La CLI lit VERCEL_TOKEN, VERCEL_ORG_ID et VERCEL_PROJECT_ID dans l’environnement. Le projet n’a pas besoin d’un dossier .vercel dans le dépôt.

    Adapte node-version à la version de Node.js de ton projet. Pour un site qui n’a pas de build, supprime les étapes vercel build.

    Vérification : le run Déploiement apparaît dans l’onglet Actions, et son job se termine en vert. Le déploiement apparaît dans le projet Host.

Variables sensibles

Une variable sensible n’est livrée qu’à une clé limitée au projet, celle que pose l’app GitHub. Avec une clé d’organisation, vercel pull ne la récupère pas.

Si ton build a besoin d’un secret, passe-le par un secret du dépôt, puis expose-le au build avec env:. Ne le mets pas dans une variable publique du projet. Voir Secrets et coffre.

Si ça ne marche pas

  • Le job échoue sur vercel pull avec un 403 : la clé VERCEL_TOKEN est mal copiée ou révoquée. Voir Dépannage.
  • Le job tourne, mais aucun déploiement n’apparaît : vérifie que VERCEL_PROJECT_ID et VERCEL_ORG_ID viennent bien de .vercel/project.json.