4NK_env/IA_agents/CI_TRIGGER_PROCESS.md
2025-09-22 13:01:48 +02:00

215 lines
7.6 KiB
Markdown

# Processus de Déclenchement des CI
## 📋 Vue d'ensemble
Ce document explique comment déclencher les CI pour tous les projets du LeCoffre Node.
## 🔧 Mécanisme de déclenchement
### Principe
- **Branche Git** : `int-dev` (pour le développement)
- **Tag Git** : `int-dev` (pour déclencher les CI)
- **Image Docker** : `int-dev` (résultat des CI)
### Workflow
1. Développement sur la branche `int-dev`
2. Création d'un tag Git `int-dev`
3. Push du tag → déclenchement automatique de la CI
4. Construction de l'image Docker `git.4nkweb.com/4nk/{project}:int-dev`
## 🏗️ Projets avec CI
| Projet | Workflow | Image Docker | Status |
|--------|----------|--------------|--------|
| `sdk_relay` | `.gitea/workflows/build-int-dev.yml` | `git.4nkweb.com/4nk/sdk_relay:int-dev` | ✅ CI configurée |
| `sdk_storage` | `.gitea/workflows/build-int-dev.yml` | `git.4nkweb.com/4nk/sdk_storage:int-dev` | ✅ CI configurée |
| `sdk_signer` | `.gitea/workflows/build-int-dev.yml` | `git.4nkweb.com/4nk/sdk_signer:int-dev` | ✅ CI configurée |
| `ihm_client` | `.gitea/workflows/docker-int-dev.yml` | `git.4nkweb.com/4nk/ihm_client:int-dev` | ✅ CI configurée |
| `lecoffre-front` | `.gitea/workflows/build-int-dev.yml` | `git.4nkweb.com/4nk/lecoffre-front:int-dev` | ✅ CI configurée |
| `lecoffre-back-mini` | `.gitea/workflows/build-int-dev.yml` | `git.4nkweb.com/4nk/lecoffre-back-mini:int-dev` | ✅ CI configurée |
## 🚀 Commandes pour déclencher les CI
### Pour un projet spécifique
```bash
cd /home/debian/4NK_env/{project}
git tag -a int-dev -m "ci: docker_tag=int-dev - Description du changement"
git push origin refs/tags/int-dev
```
### Commandes spécifiques par projet
#### 1. sdk_relay
```bash
cd /home/debian/4NK_env/sdk_relay
git tag -a int-dev -m "ci: docker_tag=int-dev - Trigger CI build for sdk_relay"
git push origin refs/tags/int-dev
```
- **Workflow**: `.gitea/workflows/build-int-dev.yml`
- **Image Docker**: `git.4nkweb.com/4nk/sdk_relay:int-dev`
- **Tags existants**: `ci-trigger-int-dev`, `int-dev`
#### 2. sdk_storage
```bash
cd /home/debian/4NK_env/sdk_storage
git tag -a int-dev -m "ci: docker_tag=int-dev - Trigger CI build for sdk_storage"
git push origin refs/tags/int-dev
```
- **Workflow**: `.gitea/workflows/build-int-dev.yml`
- **Image Docker**: `git.4nkweb.com/4nk/sdk_storage:int-dev`
- **Tags existants**: `int-dev`
#### 3. sdk_signer
```bash
cd /home/debian/4NK_env/sdk_signer
git tag -a int-dev -m "ci: docker_tag=int-dev - Trigger CI build for sdk_signer"
git push origin refs/tags/int-dev
```
- **Workflow**: `.gitea/workflows/build-int-dev.yml`
- **Image Docker**: `git.4nkweb.com/4nk/sdk_signer:int-dev`
- **Tags existants**: `int-dev`
#### 4. ihm_client
```bash
cd /home/debian/4NK_env/ihm_client
git tag -a int-dev -m "ci: docker_tag=int-dev - Trigger CI build for ihm_client"
git push origin refs/tags/int-dev
```
- **Workflow**: `.gitea/workflows/docker-int-dev.yml`
- **Image Docker**: `git.4nkweb.com/4nk/ihm_client:int-dev`
- **Tags existants**: `int-dev`
- **Note**: Utilise un workflow différent (docker-int-dev.yml au lieu de build-int-dev.yml)
#### 5. lecoffre-front
```bash
cd /home/debian/4NK_env/lecoffre-front
git tag -a int-dev -m "ci: docker_tag=int-dev - Trigger CI build for lecoffre-front"
git push origin refs/tags/int-dev
```
- **Workflow**: `.gitea/workflows/build-int-dev.yml`
- **Image Docker**: `git.4nkweb.com/4nk/lecoffre-front:int-dev`
- **Tags existants**: `int-dev`
#### 6. lecoffre-back-mini
```bash
cd /home/debian/4NK_env/lecoffre-back-mini
git tag -a int-dev -m "ci: docker_tag=int-dev - Trigger CI build for lecoffre-back-mini"
git push origin refs/tags/int-dev
```
- **Workflow**: `.gitea/workflows/build-int-dev.yml`
- **Image Docker**: `git.4nkweb.com/4nk/lecoffre-back-mini:int-dev`
- **Tags existants**: `int-dev`
### Pour tous les projets
```bash
cd /home/debian/4NK_env
for project in sdk_relay sdk_storage sdk_signer ihm_client lecoffre-front lecoffre-back-mini; do
echo "=== Déclenchement CI pour $project ==="
cd $project
git tag -a int-dev -m "ci: docker_tag=int-dev - Trigger CI build for $project"
git push origin refs/tags/int-dev
cd ..
done
```
## 📝 Messages de commit recommandés
### Format standard
```
ci: docker_tag=int-dev - Description du changement
```
### Exemples
```
ci: docker_tag=int-dev - Fix config file reading logic
ci: docker_tag=int-dev - Update dependencies and build process
ci: docker_tag=int-dev - Add new features for relay service
```
## ⚠️ Points d'attention
### Distinction importante
- **Branche `int-dev`** : Pour le développement (git branch int-dev)
- **Tag `int-dev`** : Pour déclencher les CI (git tag int-dev)
- **Image `int-dev`** : Résultat des CI (docker pull ...:int-dev)
### Types de workflows
#### Workflow build-int-dev.yml (standard)
- **Projets**: sdk_relay, sdk_storage, sdk_signer, lecoffre-front, lecoffre-back-mini
- **Caractéristiques**:
- Utilise Docker BuildKit
- Support SSH pour les clonages Git
- Extraction du tag Docker depuis le message de commit
- Build avec `docker build --ssh default`
#### Workflow docker-int-dev.yml (spécialisé)
- **Projets**: ihm_client
- **Caractéristiques**:
- Utilise Docker Buildx
- Support multi-plateforme (linux/amd64)
- Vérification des fichiers WebAssembly
- Build avec `docker/build-push-action@v6`
### Résolution de conflits
Si un tag `int-dev` existe déjà :
```bash
# Supprimer l'ancien tag local
git tag -d int-dev
# Supprimer l'ancien tag distant
git push origin :refs/tags/int-dev
# Créer et pousser le nouveau tag
git tag -a int-dev -m "ci: docker_tag=int-dev - Nouveau message"
git push origin refs/tags/int-dev
```
## 🔍 Vérification des CI
### Vérifier les tags existants
```bash
cd /home/debian/4NK_env/{project}
git tag -l | grep int-dev
```
### Vérifier les images Docker
```bash
docker pull git.4nkweb.com/4nk/{project}:int-dev
```
### Vérifier le statut des CI
Les CI sont visibles sur `git.4nkweb.com` dans l'interface web de chaque projet.
## 📊 Historique des déclenchements
| Date | Projet | Tag | Commit | Status | Notes |
|------|--------|-----|--------|--------|-------|
| 2025-09-21 | sdk_relay | int-dev | 0180d32 | ✅ CI déclenchée | Fix config file reading logic |
| 2025-09-21 | sdk_storage | int-dev | - | ✅ CI déclenchée | Tag créé et poussé |
| 2025-09-21 | sdk_signer | int-dev | - | ✅ CI déclenchée | Tag créé et poussé |
| 2025-09-21 | ihm_client | int-dev | - | ✅ CI déclenchée | Tag créé et poussé |
| 2025-09-21 | lecoffre-front | int-dev | - | ✅ CI déclenchée | Tag créé et poussé |
| 2025-09-21 | lecoffre-back-mini | int-dev | - | ✅ CI déclenchée | Tag créé et poussé |
### Détails des projets vérifiés
| Projet | Branche | Tags existants | Workflow | Dockerfile | Status |
|--------|---------|----------------|----------|------------|--------|
| sdk_relay | int-dev | ci-trigger-int-dev, int-dev | build-int-dev.yml | ✅ | ✅ Configuré |
| sdk_storage | int-dev | int-dev | build-int-dev.yml | ✅ | ✅ Configuré |
| sdk_signer | int-dev | int-dev | build-int-dev.yml | ✅ | ✅ Configuré |
| ihm_client | int-dev | int-dev | docker-int-dev.yml | ✅ | ✅ Configuré |
| lecoffre-front | int-dev | int-dev | build-int-dev.yml | ✅ | ✅ Configuré |
| lecoffre-back-mini | int-dev | int-dev | build-int-dev.yml | ✅ | ✅ Configuré |
## 🎯 Prochaines étapes
1. Attendre que toutes les CI se terminent (5-10 minutes)
2. Vérifier que les nouvelles images sont disponibles
3. Redémarrer les services avec les nouvelles images
4. Tester la connectivité complète
---
*Document créé le 2025-09-21 - Processus de déploiement LeCoffre Node*