Compare commits

..

4 Commits

Author SHA1 Message Date
Manus CI
bba0e175a2 CI fix : npm install au lieu de npm ci (pas de package-lock.json)
All checks were successful
Validation applicative / Build backend et frontend (push) Successful in 1m11s
2026-08-21 11:03:22 +00:00
Manus CI
325a0f82ae CI : workflow validate.yml (build backend + frontend), manifeste ci.required:true
Some checks failed
Validation applicative / Build backend et frontend (push) Failing after 10s
2026-08-21 10:58:18 +00:00
Manus Automation
6afe340cce fix(deploy): conserver le routage Traefik de recette 2026-08-18 09:26:22 +00:00
Manus Automation
6f73a3951e fix(deploy): utiliser le nom MySQL unique sur le réseau web 2026-08-18 09:22:38 +00:00
3 changed files with 45 additions and 12 deletions

View File

@@ -0,0 +1,26 @@
name: Validation applicative
on:
push:
branches: [main, master]
paths-ignore:
- "**.md"
- "docs/**"
pull_request:
branches: [main, master]
workflow_dispatch:
jobs:
verify:
name: Build backend et frontend
runs-on: ci-node22
timeout-minutes: 10
steps:
- name: Récupérer les sources
uses: actions/checkout@v4
- name: Installer et build backend
run: cd backend && npm install --ignore-scripts && npm run build
- name: Installer et build frontend
run: cd frontend && npm install --ignore-scripts && npm run build

View File

@@ -9,5 +9,8 @@
"containerName": "santinova-facturation-app", "containerName": "santinova-facturation-app",
"image": "images/facturation.png", "image": "images/facturation.png",
"giteaRepo": "facturation-santinova", "giteaRepo": "facturation-santinova",
"giteaOwner": "manus-admin" "giteaOwner": "manus-admin",
"ci": {
"required": true
}
} }

View File

@@ -13,12 +13,10 @@ services:
MYSQL_DATABASE: facturation_santinova MYSQL_DATABASE: facturation_santinova
MYSQL_CHARACTER_SET_SERVER: utf8mb4 MYSQL_CHARACTER_SET_SERVER: utf8mb4
MYSQL_COLLATION_SERVER: utf8mb4_unicode_ci MYSQL_COLLATION_SERVER: utf8mb4_unicode_ci
ports:
- "${DB_PORT:-3306}:3306"
volumes: volumes:
- mysql_data:/var/lib/mysql - mysql_data:/var/lib/mysql
networks: networks:
- santinova-network - web
healthcheck: healthcheck:
test: ["CMD", "mysqladmin", "ping", "-h", "localhost", "-u", "root", "-p${DB_ROOT_PASSWORD:-santinova_db_pass}"] test: ["CMD", "mysqladmin", "ping", "-h", "localhost", "-u", "root", "-p${DB_ROOT_PASSWORD:-santinova_db_pass}"]
interval: 10s interval: 10s
@@ -41,17 +39,23 @@ services:
environment: environment:
NODE_ENV: production NODE_ENV: production
PORT: 3001 PORT: 3001
DATABASE_URL: mysql://root:${DB_ROOT_PASSWORD:-santinova_db_pass}@db:3306/facturation_santinova # Le réseau web est partagé par plusieurs projets : ne jamais utiliser lalias générique `db`.
DATABASE_URL: mysql://root:${DB_ROOT_PASSWORD:-santinova_db_pass}@santinova-facturation-db:3306/facturation_santinova
JWT_SECRET: ${JWT_SECRET:-santinova-jwt-secret-change-in-production} JWT_SECRET: ${JWT_SECRET:-santinova-jwt-secret-change-in-production}
JWT_EXPIRES_IN: ${JWT_EXPIRES_IN:-24h} JWT_EXPIRES_IN: ${JWT_EXPIRES_IN:-24h}
UPLOAD_DIR: /app/uploads UPLOAD_DIR: /app/uploads
OPENAI_API_KEY: ${OPENAI_API_KEY:-} OPENAI_API_KEY: ${OPENAI_API_KEY:-}
ports:
- "${APP_PORT:-8080}:3001"
volumes: volumes:
- uploads_data:/app/uploads - uploads_data:/app/uploads
networks: networks:
- santinova-network - web
labels:
- "traefik.enable=true"
- "traefik.docker.network=web"
- "traefik.http.routers.facturation-santinova.rule=Host(`facturation.recette.santinova-soft.org`)"
- "traefik.http.routers.facturation-santinova.entrypoints=websecure"
- "traefik.http.routers.facturation-santinova.tls.certresolver=letsencrypt"
- "traefik.http.services.facturation-santinova.loadbalancer.server.port=3001"
healthcheck: healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:3001/api/health"] test: ["CMD", "curl", "-f", "http://localhost:3001/api/health"]
interval: 30s interval: 30s
@@ -71,9 +75,9 @@ services:
db: db:
condition: service_healthy condition: service_healthy
environment: environment:
DATABASE_URL: mysql://root:${DB_ROOT_PASSWORD:-santinova_db_pass}@db:3306/facturation_santinova DATABASE_URL: mysql://root:${DB_ROOT_PASSWORD:-santinova_db_pass}@santinova-facturation-db:3306/facturation_santinova
networks: networks:
- santinova-network - web
restart: "no" restart: "no"
volumes: volumes:
@@ -83,5 +87,5 @@ volumes:
driver: local driver: local
networks: networks:
santinova-network: web:
driver: bridge external: true