215 lines
7.6 KiB
Markdown
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*
|