215 lines
7.1 KiB
Markdown
215 lines
7.1 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** : `ext` (pour le développement)
|
|
- **Tag Git** : `ext` (pour déclencher les CI)
|
|
- **Image Docker** : `ext` (résultat des CI)
|
|
|
|
### Workflow
|
|
1. Développement sur la branche `ext`
|
|
2. Création d'un tag Git `ext`
|
|
3. Push du tag → déclenchement automatique de la CI
|
|
4. Construction de l'image Docker `git.4nkweb.com/4nk/{project}:ext`
|
|
|
|
## 🏗️ Projets avec CI
|
|
|
|
| Projet | Workflow | Image Docker | Status |
|
|
|--------|----------|--------------|--------|
|
|
| `sdk_relay` | `.gitea/workflows/build-ext.yml` | `git.4nkweb.com/4nk/sdk_relay:ext` | ✅ CI configurée |
|
|
| `sdk_storage` | `.gitea/workflows/build-ext.yml` | `git.4nkweb.com/4nk/sdk_storage:ext` | ✅ CI configurée |
|
|
| `sdk_signer` | `.gitea/workflows/build-ext.yml` | `git.4nkweb.com/4nk/sdk_signer:ext` | ✅ CI configurée |
|
|
| `ihm_client` | `.gitea/workflows/docker-ext.yml` | `git.4nkweb.com/4nk/ihm_client:ext` | ✅ CI configurée |
|
|
| `lecoffre-front` | `.gitea/workflows/build-ext.yml` | `git.4nkweb.com/4nk/lecoffre-front:ext` | ✅ CI configurée |
|
|
| `lecoffre-back-mini` | `.gitea/workflows/build-ext.yml` | `git.4nkweb.com/4nk/lecoffre-back-mini:ext` | ✅ CI configurée |
|
|
|
|
## 🚀 Commandes pour déclencher les CI
|
|
|
|
### Pour un projet spécifique
|
|
```bash
|
|
cd /home/debian/4NK_env/{project}
|
|
git tag -a ext -m "ci: docker_tag=ext - Description du changement"
|
|
git push origin refs/tags/ext
|
|
```
|
|
|
|
### Commandes spécifiques par projet
|
|
|
|
#### 1. sdk_relay
|
|
```bash
|
|
cd /home/debian/4NK_env/sdk_relay
|
|
git tag -a ext -m "ci: docker_tag=ext - Trigger CI build for sdk_relay"
|
|
git push origin refs/tags/ext
|
|
```
|
|
- **Workflow**: `.gitea/workflows/build-ext.yml`
|
|
- **Image Docker**: `git.4nkweb.com/4nk/sdk_relay:ext`
|
|
- **Tags existants**: `ci-trigger-ext`, `ext`
|
|
|
|
#### 2. sdk_storage
|
|
```bash
|
|
cd /home/debian/4NK_env/sdk_storage
|
|
git tag -a ext -m "ci: docker_tag=ext - Trigger CI build for sdk_storage"
|
|
git push origin refs/tags/ext
|
|
```
|
|
- **Workflow**: `.gitea/workflows/build-ext.yml`
|
|
- **Image Docker**: `git.4nkweb.com/4nk/sdk_storage:ext`
|
|
- **Tags existants**: `ext`
|
|
|
|
#### 3. sdk_signer
|
|
```bash
|
|
cd /home/debian/4NK_env/sdk_signer
|
|
git tag -a ext -m "ci: docker_tag=ext - Trigger CI build for sdk_signer"
|
|
git push origin refs/tags/ext
|
|
```
|
|
- **Workflow**: `.gitea/workflows/build-ext.yml`
|
|
- **Image Docker**: `git.4nkweb.com/4nk/sdk_signer:ext`
|
|
- **Tags existants**: `ext`
|
|
|
|
#### 4. ihm_client
|
|
```bash
|
|
cd /home/debian/4NK_env/ihm_client
|
|
git tag -a ext -m "ci: docker_tag=ext - Trigger CI build for ihm_client"
|
|
git push origin refs/tags/ext
|
|
```
|
|
- **Workflow**: `.gitea/workflows/docker-ext.yml`
|
|
- **Image Docker**: `git.4nkweb.com/4nk/ihm_client:ext`
|
|
- **Tags existants**: `ext`
|
|
- **Note**: Utilise un workflow différent (docker-ext.yml au lieu de build-ext.yml)
|
|
|
|
#### 5. lecoffre-front
|
|
```bash
|
|
cd /home/debian/4NK_env/lecoffre-front
|
|
git tag -a ext -m "ci: docker_tag=ext - Trigger CI build for lecoffre-front"
|
|
git push origin refs/tags/ext
|
|
```
|
|
- **Workflow**: `.gitea/workflows/build-ext.yml`
|
|
- **Image Docker**: `git.4nkweb.com/4nk/lecoffre-front:ext`
|
|
- **Tags existants**: `ext`
|
|
|
|
#### 6. lecoffre-back-mini
|
|
```bash
|
|
cd /home/debian/4NK_env/lecoffre-back-mini
|
|
git tag -a ext -m "ci: docker_tag=ext - Trigger CI build for lecoffre-back-mini"
|
|
git push origin refs/tags/ext
|
|
```
|
|
- **Workflow**: `.gitea/workflows/build-ext.yml`
|
|
- **Image Docker**: `git.4nkweb.com/4nk/lecoffre-back-mini:ext`
|
|
- **Tags existants**: `ext`
|
|
|
|
### 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 ext -m "ci: docker_tag=ext - Trigger CI build for $project"
|
|
git push origin refs/tags/ext
|
|
cd ..
|
|
done
|
|
```
|
|
|
|
## 📝 Messages de commit recommandés
|
|
|
|
### Format standard
|
|
```
|
|
ci: docker_tag=ext - Description du changement
|
|
```
|
|
|
|
### Exemples
|
|
```
|
|
ci: docker_tag=ext - Fix config file reading logic
|
|
ci: docker_tag=ext - Update dependencies and build process
|
|
ci: docker_tag=ext - Add new features for relay service
|
|
```
|
|
|
|
## ⚠️ Points d'attention
|
|
|
|
### Distinction importante
|
|
- **Branche `ext`** : Pour le développement (git branch ext)
|
|
- **Tag `ext`** : Pour déclencher les CI (git tag ext)
|
|
- **Image `ext`** : Résultat des CI (docker pull ...:ext)
|
|
|
|
### Types de workflows
|
|
|
|
#### Workflow build-ext.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-ext.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 `ext` existe déjà :
|
|
```bash
|
|
# Supprimer l'ancien tag local
|
|
git tag -d ext
|
|
|
|
# Supprimer l'ancien tag distant
|
|
git push origin :refs/tags/ext
|
|
|
|
# Créer et pousser le nouveau tag
|
|
git tag -a ext -m "ci: docker_tag=ext - Nouveau message"
|
|
git push origin refs/tags/ext
|
|
```
|
|
|
|
## 🔍 Vérification des CI
|
|
|
|
### Vérifier les tags existants
|
|
```bash
|
|
cd /home/debian/4NK_env/{project}
|
|
git tag -l | grep ext
|
|
```
|
|
|
|
### Vérifier les images Docker
|
|
```bash
|
|
docker pull git.4nkweb.com/4nk/{project}:ext
|
|
```
|
|
|
|
### 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 | ext | 0180d32 | ✅ CI déclenchée | Fix config file reading logic |
|
|
| 2025-09-21 | sdk_storage | ext | - | ✅ CI déclenchée | Tag créé et poussé |
|
|
| 2025-09-21 | sdk_signer | ext | - | ✅ CI déclenchée | Tag créé et poussé |
|
|
| 2025-09-21 | ihm_client | ext | - | ✅ CI déclenchée | Tag créé et poussé |
|
|
| 2025-09-21 | lecoffre-front | ext | - | ✅ CI déclenchée | Tag créé et poussé |
|
|
| 2025-09-21 | lecoffre-back-mini | ext | - | ✅ CI déclenchée | Tag créé et poussé |
|
|
|
|
### Détails des projets vérifiés
|
|
|
|
| Projet | Branche | Tags existants | Workflow | Dockerfile | Status |
|
|
|--------|---------|----------------|----------|------------|--------|
|
|
| sdk_relay | ext | ci-trigger-ext, ext | build-ext.yml | ✅ | ✅ Configuré |
|
|
| sdk_storage | ext | ext | build-ext.yml | ✅ | ✅ Configuré |
|
|
| sdk_signer | ext | ext | build-ext.yml | ✅ | ✅ Configuré |
|
|
| ihm_client | ext | ext | docker-ext.yml | ✅ | ✅ Configuré |
|
|
| lecoffre-front | ext | ext | build-ext.yml | ✅ | ✅ Configuré |
|
|
| lecoffre-back-mini | ext | ext | build-ext.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*
|