Ce projet utilise GitHub Actions pour automatiser le déploiement d’une application web sur Firebase Hosting à chaque push ou pull request sur la branche production.
Avant de configurer le système CI/CD, assure-toi d’avoir :
- Un projet Firebase configuré et initialisé (
firebase init) - Le site déployé une première fois manuellement (optionnel mais recommandé)
- Un dépôt GitHub
- Node.js installé localement
Dans ton dépôt GitHub :
- Va dans
Settings→Secrets and variables→Actions - Clique sur "New repository secret"
- Ajoute la clé suivante :
| Nom du secret | Description |
|---|---|
FIREBASE_SERVICE_ACCOUNT |
Contenu JSON de ta clé de compte de service Firebase (voir ci-dessous) |
- Va sur console.firebase.google.com
- Ouvre ton projet (
amt-systems-website) - Clique sur Paramètres du projet (roue dentée)
- Onglet Comptes de service
- Clique sur "Générer une nouvelle clé privée"
- Télécharge le fichier
.jsonet copie tout son contenu dans le secretFIREBASE_SERVICE_ACCOUNT
Voici le fichier .github/workflows/firebase-deploy.yml à ajouter :
name: Firebase Deployment
permissions:
checks: write
contents: read
pull-requests: write
on:
push:
branches:
- production
pull_request:
branches:
- production
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v2
- name: Set up Node.js
uses: actions/setup-node@v2
with:
node-version: '20'
- name: Install dependencies
run: npm install
- name: Build the app
run: npm run build
- name: Deploy to Firebase Hosting (Preview Channel)
uses: FirebaseExtended/action-hosting-deploy@v0
with:
firebaseServiceAccount: ${{ secrets.FIREBASE_SERVICE_ACCOUNT }}
projectId: amt-systems-website
channelId: preview-${{ github.event.number || github.sha }}
expires: 7d