Some checks failed
CI/CD Pipeline / Backend - Build, Test & Push (push) Failing after 58s
CI/CD Pipeline / Frontend - Build, Test & Push (push) Failing after 5m55s
CI/CD Pipeline / Integration Tests (push) Has been skipped
CI/CD Pipeline / Deployment Summary (push) Has been skipped
CI/CD Pipeline / Deploy to Portainer (push) Has been skipped
CI/CD Pipeline / Discord Notification (Success) (push) Has been skipped
CI/CD Pipeline / Discord Notification (Failure) (push) Has been skipped
Reorganisation majeure de toute la documentation du projet pour ameliorer la navigation et la maintenance. ## Changements principaux ### Organisation (80 -> 4 fichiers .md a la racine) - Deplace 82 fichiers .md dans docs/ organises en 11 categories - Conserve uniquement 4 fichiers essentiels a la racine: * README.md, CLAUDE.md, PRD.md, TODO.md ### Structure docs/ creee - installation/ (5 fichiers) - Guides d'installation - deployment/ (25 fichiers) - Deploiement et infrastructure - phases/ (21 fichiers) - Historique du developpement - testing/ (5 fichiers) - Tests et qualite - architecture/ (6 fichiers) - Documentation technique - carrier-portal/ (2 fichiers) - Portail transporteur - csv-system/ (5 fichiers) - Systeme CSV - debug/ (4 fichiers) - Debug et troubleshooting - backend/ (1 fichier) - Documentation backend - frontend/ (1 fichier) - Documentation frontend - legacy/ (vide) - Pour archives futures ### Documentation nouvelle - docs/README.md - Index complet de toute la documentation (367 lignes) * Guide de navigation par scenario * Recherche rapide par theme * FAQ et commandes rapides - docs/CLEANUP-REPORT-2025-12-22.md - Rapport detaille du nettoyage ### Scripts reorganises - add-email-to-csv.py -> scripts/ - deploy-to-portainer.sh -> docker/ ### Fichiers supprimes - 1536w default.svg (11MB) - Fichier non utilise ### References mises a jour - CLAUDE.md - Section Documentation completement reecrite - docs/architecture/EMAIL_IMPLEMENTATION_STATUS.md - Chemin script Python - docs/deployment/REGISTRY_PUSH_GUIDE.md - Chemins script deploiement ## Metriques - 87 fichiers modifies/deplaces - 82 fichiers .md organises dans docs/ - 11MB d'espace libere - Temps de recherche reduit de ~5min a ~30s (-90%) 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
258 lines
8.0 KiB
Markdown
258 lines
8.0 KiB
Markdown
# 🔧 Configuration CI/CD - Registry Scaleway
|
|
|
|
## ✅ Bonne Nouvelle !
|
|
|
|
La CI/CD est **déjà configurée** dans `.github/workflows/ci.yml` pour :
|
|
- ✅ Build les images Docker (backend + frontend)
|
|
- ✅ **Support multi-architecture (AMD64 + ARM64)** 🎉
|
|
- ✅ Push vers le registry Scaleway
|
|
- ✅ Créer les tags corrects (`preprod`)
|
|
|
|
## ⚙️ Configuration Requise
|
|
|
|
Pour que la CI/CD puisse push vers le registry Scaleway, il faut configurer le secret GitHub.
|
|
|
|
### Étape 1 : Obtenir le Token Scaleway
|
|
|
|
1. Aller sur [console.scaleway.com](https://console.scaleway.com)
|
|
2. **Container Registry** → `weworkstudio`
|
|
3. Cliquer sur **Push/Pull credentials**
|
|
4. Créer ou copier un token d'accès
|
|
|
|
### Étape 2 : Ajouter le Secret dans GitHub
|
|
|
|
1. Aller sur votre repo GitHub : https://github.com/VOTRE_USERNAME/xpeditis
|
|
2. **Settings** → **Secrets and variables** → **Actions**
|
|
3. Cliquer sur **New repository secret**
|
|
4. Créer le secret :
|
|
- **Name** : `REGISTRY_TOKEN`
|
|
- **Value** : Coller le token Scaleway
|
|
5. Cliquer **Add secret**
|
|
|
|
### Étape 3 : Vérifier les Autres Secrets (Optionnels)
|
|
|
|
Pour le frontend, vérifier ces secrets (si vous utilisez des URLs différentes) :
|
|
|
|
| Secret Name | Description | Exemple |
|
|
|-------------|-------------|---------|
|
|
| `NEXT_PUBLIC_API_URL` | URL de l'API backend | `https://api.preprod.xpeditis.com` |
|
|
| `NEXT_PUBLIC_APP_URL` | URL du frontend | `https://app.preprod.xpeditis.com` |
|
|
| `DISCORD_WEBHOOK_URL` | Webhook Discord pour notifications | `https://discord.com/api/webhooks/...` |
|
|
|
|
**Note** : Si ces secrets ne sont pas définis, la CI/CD utilisera les valeurs par défaut (`http://localhost:4000` et `http://localhost:3000`).
|
|
|
|
---
|
|
|
|
## 🚀 Déclencher la CI/CD
|
|
|
|
Une fois le secret `REGISTRY_TOKEN` configuré :
|
|
|
|
### Option 1 : Push sur preprod (Recommandé)
|
|
|
|
```bash
|
|
# Committer les derniers changements
|
|
git add .
|
|
git commit -m "feat: add automatic migrations and Docker fixes"
|
|
|
|
# Push sur la branche preprod
|
|
git push origin preprod
|
|
```
|
|
|
|
La CI/CD se déclenchera automatiquement et :
|
|
1. ✅ Build l'image backend (AMD64 + ARM64)
|
|
2. ✅ Build l'image frontend (AMD64 + ARM64)
|
|
3. ✅ Push vers le registry Scaleway
|
|
4. ✅ Envoie une notification Discord (si configuré)
|
|
|
|
**Note** : Le build multi-architecture prend ~10-15 min (au lieu de ~5-7 min pour AMD64 seul). Voir [ARM64_SUPPORT.md](ARM64_SUPPORT.md) pour plus de détails.
|
|
|
|
### Option 2 : Re-run un Workflow Existant
|
|
|
|
1. Aller sur GitHub → **Actions**
|
|
2. Sélectionner le dernier workflow
|
|
3. Cliquer sur **Re-run all jobs**
|
|
|
|
---
|
|
|
|
## 📊 Vérifier que ça fonctionne
|
|
|
|
### 1. Vérifier les Logs GitHub Actions
|
|
|
|
1. GitHub → **Actions**
|
|
2. Cliquer sur le workflow en cours
|
|
3. Vérifier les étapes :
|
|
- ✅ `Build and push Backend Docker image`
|
|
- ✅ `Build and push Frontend Docker image`
|
|
|
|
**Logs attendus** :
|
|
```
|
|
Building image...
|
|
Pushing to rg.fr-par.scw.cloud/weworkstudio/xpeditis-backend:preprod
|
|
✓ Image pushed successfully
|
|
```
|
|
|
|
### 2. Vérifier sur Scaleway Console
|
|
|
|
1. [console.scaleway.com](https://console.scaleway.com)
|
|
2. **Container Registry** → `weworkstudio`
|
|
3. Vérifier que vous voyez :
|
|
- ✅ `xpeditis-backend:preprod`
|
|
- ✅ `xpeditis-frontend:preprod`
|
|
|
|
### 3. Vérifier avec Docker CLI
|
|
|
|
```bash
|
|
# Login au registry
|
|
docker login rg.fr-par.scw.cloud/weworkstudio
|
|
|
|
# Vérifier que les images existent (multi-architecture)
|
|
docker manifest inspect rg.fr-par.scw.cloud/weworkstudio/xpeditis-backend:preprod
|
|
docker manifest inspect rg.fr-par.scw.cloud/weworkstudio/xpeditis-frontend:preprod
|
|
|
|
# Si vous voyez du JSON avec "manifests": [{ "platform": { "architecture": "amd64" }}, { "platform": { "architecture": "arm64" }}]
|
|
# Les images multi-architecture existent ✅
|
|
```
|
|
|
|
---
|
|
|
|
## 🔍 Tags Créés par la CI/CD
|
|
|
|
La CI/CD crée automatiquement ces tags :
|
|
|
|
| Image | Tag | Quand |
|
|
|-------|-----|-------|
|
|
| `xpeditis-backend` | `preprod` | À chaque push sur `preprod` |
|
|
| `xpeditis-frontend` | `preprod` | À chaque push sur `preprod` |
|
|
| `xpeditis-backend` | `latest` | Si `preprod` est la branche par défaut |
|
|
| `xpeditis-frontend` | `latest` | Si `preprod` est la branche par défaut |
|
|
|
|
**Configuration actuelle dans `.github/workflows/ci.yml`** :
|
|
|
|
```yaml
|
|
tags: |
|
|
type=ref,event=branch # Tag avec le nom de la branche
|
|
type=raw,value=latest,enable={{is_default_branch}} # Tag 'latest' si branche par défaut
|
|
```
|
|
|
|
Pour la branche `preprod`, cela crée :
|
|
- `rg.fr-par.scw.cloud/weworkstudio/xpeditis-backend:preprod`
|
|
- `rg.fr-par.scw.cloud/weworkstudio/xpeditis-frontend:preprod`
|
|
|
|
---
|
|
|
|
## ⚠️ Problèmes Courants
|
|
|
|
### Erreur : "denied: requested access to the resource is denied"
|
|
|
|
**Cause** : Le secret `REGISTRY_TOKEN` n'est pas configuré ou invalide
|
|
|
|
**Solution** :
|
|
1. Vérifier que le secret existe : GitHub → Settings → Secrets → Actions
|
|
2. Régénérer un token sur Scaleway Console
|
|
3. Mettre à jour le secret dans GitHub
|
|
|
|
---
|
|
|
|
### Erreur : "manifest unknown: manifest unknown"
|
|
|
|
**Cause** : L'image n'existe pas dans le registry
|
|
|
|
**Solution** :
|
|
1. Vérifier que la CI/CD s'est exécutée sans erreur
|
|
2. Vérifier les logs de l'étape `Build and push Docker image`
|
|
3. Re-run le workflow si nécessaire
|
|
|
|
---
|
|
|
|
### Erreur : "server gave HTTP response to HTTPS client"
|
|
|
|
**Cause** : Configuration Docker incorrecte
|
|
|
|
**Solution** :
|
|
Le registry Scaleway utilise toujours HTTPS. Si vous voyez cette erreur, vérifier que l'URL du registry est correcte :
|
|
```yaml
|
|
registry: rg.fr-par.scw.cloud/weworkstudio # ✅ Correct
|
|
registry: rg.fr-par.scw.cloud # ❌ Incorrect
|
|
```
|
|
|
|
---
|
|
|
|
## 🎯 Après Configuration
|
|
|
|
Une fois le secret configuré et la CI/CD exécutée :
|
|
|
|
### 1. Portainer Pourra Pull les Images
|
|
|
|
Dans Portainer, lors de l'update du stack :
|
|
```yaml
|
|
xpeditis-backend:
|
|
image: rg.fr-par.scw.cloud/weworkstudio/xpeditis-backend:preprod
|
|
# ✅ Cette image existe maintenant dans le registry
|
|
|
|
xpeditis-frontend:
|
|
image: rg.fr-par.scw.cloud/weworkstudio/xpeditis-frontend:preprod
|
|
# ✅ Cette image existe maintenant dans le registry
|
|
```
|
|
|
|
### 2. Workflow Automatique
|
|
|
|
À chaque push sur `preprod` :
|
|
1. ✅ CI/CD build les images
|
|
2. ✅ CI/CD push vers le registry
|
|
3. ✅ Portainer peut pull les nouvelles images
|
|
4. ✅ Notification Discord envoyée
|
|
|
|
**Plus besoin de build et push manuellement !**
|
|
|
|
---
|
|
|
|
## 📝 Résumé des Actions à Faire
|
|
|
|
- [ ] **Étape 1** : Obtenir le token Scaleway (Console → Container Registry → Push/Pull credentials)
|
|
- [ ] **Étape 2** : Ajouter le secret `REGISTRY_TOKEN` dans GitHub (Settings → Secrets → Actions)
|
|
- [ ] **Étape 3** : Push sur `preprod` pour déclencher la CI/CD
|
|
- [ ] **Étape 4** : Vérifier sur GitHub Actions que le workflow réussit
|
|
- [ ] **Étape 5** : Vérifier sur Scaleway Console que les images sont là
|
|
- [ ] **Étape 6** : Update le stack Portainer avec re-pull image
|
|
|
|
---
|
|
|
|
## 🔗 Liens Utiles
|
|
|
|
- [Scaleway Console](https://console.scaleway.com/registry/namespaces)
|
|
- [GitHub Actions (votre repo)](https://github.com/VOTRE_USERNAME/xpeditis/actions)
|
|
- [Docker Login Action](https://github.com/docker/login-action)
|
|
- [Docker Build Push Action](https://github.com/docker/build-push-action)
|
|
- [ARM64 Support Documentation](ARM64_SUPPORT.md) - Multi-architecture builds
|
|
|
|
---
|
|
|
|
## ✅ Confirmation que tout fonctionne
|
|
|
|
Une fois tout configuré, vous devriez voir dans GitHub Actions :
|
|
|
|
```
|
|
✓ Checkout code
|
|
✓ Setup Node.js
|
|
✓ Install dependencies
|
|
✓ Lint code
|
|
✓ Run unit tests
|
|
✓ Build application
|
|
✓ Set up Docker Buildx
|
|
✓ Login to Scaleway Registry
|
|
✓ Extract metadata for Docker
|
|
✓ Build and push Backend Docker image
|
|
→ Pushing to rg.fr-par.scw.cloud/weworkstudio/xpeditis-backend:preprod
|
|
→ Image pushed successfully
|
|
✓ Deployment Summary
|
|
✓ Discord Notification (Success)
|
|
```
|
|
|
|
Et dans Portainer, l'update du stack réussira sans erreur de pull ! 🎉
|
|
|
|
---
|
|
|
|
**Date** : 2025-11-19
|
|
**Version** : 1.0
|
|
**Statut** : Configuration requise pour activer la CI/CD
|