36 - Git + CI/CD
Cette page documente le versionning Git, les branches DEV/PROD, GitHub Actions et le déploiement automatique DataLab0.
Workflow global
ZIP ChatGPT
→ extraction locale dans C:\DriveProton_marius.fernandez\DataLab0
→ git add / commit / push
→ GitHub Actions
→ SSH serveur
→ ~/deploy.sh
→ git pull
→ docker compose -p v1_3 up -d --build
Branches
| Branche | Serveur | Usage |
|---|---|---|
dev | DEV | Tests et validation |
main | PROD | Production stable |
Commandes locales
Livraison DEV
cd C:\DriveProton_marius.fernandez\DataLab0
git checkout dev
git add .
git commit -m "Nouvelle livraison DEV"
git push origin dev
Livraison PROD
cd C:\DriveProton_marius.fernandez\DataLab0
git checkout main
git merge dev
git push origin main
Script deploy.sh robuste
Important : le déploiement doit forcer le nom de projet Docker Compose avec
-p v1_3. Sinon Docker peut créer une stack projects-* et provoquer des conflits sur les ports 8080 ou 9001.#!/usr/bin/env bash
set -e
APP_DIR="$HOME/projects/v1_3"
PROJECT_NAME="v1_3"
cd "$APP_DIR"
echo "== Current dir =="
pwd
echo "== Pull Git =="
git pull
echo "== Docker rebuild/restart =="
docker compose -p "$PROJECT_NAME" up -d --build
echo "== Healthcheck =="
sleep 5
curl -I http://localhost:8080
echo "== Deploy OK =="
GitHub Actions
Les workflows sont dans .github/workflows/.
deploy-dev.ymlse déclenche sur push versdev.deploy-prod.ymlse déclenche sur push versmain.
Secrets GitHub
DEV
DEV_HOST
DEV_PORT
DEV_USER
DEV_SSH_KEY
PROD
PROD_HOST
PROD_PORT
PROD_USER
PROD_SSH_KEY
Résolution du bug projects-*
Symptômes :
Bind for 0.0.0.0:8080 failed: port is already allocated
Bind for 0.0.0.0:9001 failed: port is already allocated
Nettoyage :
cd ~/projects
docker compose down
docker rm -f projects-reverse-proxy-1 projects-api-1 projects-worker-1 projects-scheduler-1 projects-workspace-web-1 projects-viewer-web-1 projects-postgres-1 projects-redis-1 projects-minio-1 2>/dev/null || true
Correction permanente :
docker compose -p v1_3 up -d --build
Avec cette correction, les prochaines livraisons CI/CD utilisent la stack officielle
v1_3-*.