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