Skip to content

TIOJIO/CI_CD_documentation

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 

Repository files navigation

🚀 CI/CD avec GitHub Actions & Firebase Hosting

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.

📦 Prérequis

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

🔐 Configuration des secrets

Dans ton dépôt GitHub :

  1. Va dans SettingsSecrets and variablesActions
  2. Clique sur "New repository secret"
  3. Ajoute la clé suivante :
Nom du secret Description
FIREBASE_SERVICE_ACCOUNT Contenu JSON de ta clé de compte de service Firebase (voir ci-dessous)

📥 Générer la clé FIREBASE_SERVICE_ACCOUNT

  1. Va sur console.firebase.google.com
  2. Ouvre ton projet (amt-systems-website)
  3. Clique sur Paramètres du projet (roue dentée)
  4. Onglet Comptes de service
  5. Clique sur "Générer une nouvelle clé privée"
  6. Télécharge le fichier .json et copie tout son contenu dans le secret FIREBASE_SERVICE_ACCOUNT

⚙️ Fichier GitHub Actions

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

About

documentation

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors