Documentation — DataLab0Page 36 — Git + CI/CD · v00001 · b00005

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

BrancheServeurUsage
devDEVTests et validation
mainPRODProduction 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.yml se déclenche sur push vers dev.
  • deploy-prod.yml se déclenche sur push vers main.

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-*.