chore(template): adapter .gitea depuis template et synchroniser docs pour sdk_relay
This commit is contained in:
parent
2a751aaecc
commit
1b1903625a
@ -1,97 +0,0 @@
|
|||||||
---
|
|
||||||
name: Bug Report
|
|
||||||
about: Signaler un bug pour nous aider à améliorer 4NK Node
|
|
||||||
title: '[BUG] '
|
|
||||||
labels: ['bug', 'needs-triage']
|
|
||||||
assignees: ''
|
|
||||||
---
|
|
||||||
|
|
||||||
## 🐛 Description du Bug
|
|
||||||
|
|
||||||
Description claire et concise du problème.
|
|
||||||
|
|
||||||
## 🔄 Étapes pour Reproduire
|
|
||||||
|
|
||||||
1. Aller à '...'
|
|
||||||
2. Cliquer sur '...'
|
|
||||||
3. Faire défiler jusqu'à '...'
|
|
||||||
4. Voir l'erreur
|
|
||||||
|
|
||||||
## ✅ Comportement Attendu
|
|
||||||
|
|
||||||
Description de ce qui devrait se passer.
|
|
||||||
|
|
||||||
## ❌ Comportement Actuel
|
|
||||||
|
|
||||||
Description de ce qui se passe actuellement.
|
|
||||||
|
|
||||||
## 📸 Capture d'Écran
|
|
||||||
|
|
||||||
Si applicable, ajoutez une capture d'écran pour expliquer votre problème.
|
|
||||||
|
|
||||||
## 💻 Informations Système
|
|
||||||
|
|
||||||
- **OS** : [ex: Ubuntu 20.04, macOS 12.0, Windows 11]
|
|
||||||
- **Docker** : [ex: 20.10.0]
|
|
||||||
- **Docker Compose** : [ex: 2.0.0]
|
|
||||||
- **Version 4NK Node** : [ex: v1.0.0]
|
|
||||||
- **Architecture** : [ex: x86_64, ARM64]
|
|
||||||
|
|
||||||
## 📋 Configuration
|
|
||||||
|
|
||||||
### Services Actifs
|
|
||||||
```bash
|
|
||||||
docker ps
|
|
||||||
```
|
|
||||||
|
|
||||||
### Variables d'Environnement
|
|
||||||
```bash
|
|
||||||
# Bitcoin Core
|
|
||||||
BITCOIN_NETWORK=signet
|
|
||||||
BITCOIN_RPC_PORT=18443
|
|
||||||
|
|
||||||
# Blindbit
|
|
||||||
BLINDBIT_PORT=8000
|
|
||||||
|
|
||||||
# SDK Relay
|
|
||||||
SDK_RELAY_PORTS=8090-8095
|
|
||||||
```
|
|
||||||
|
|
||||||
## 📝 Logs
|
|
||||||
|
|
||||||
### Logs Pertinents
|
|
||||||
```
|
|
||||||
Logs pertinents ici
|
|
||||||
```
|
|
||||||
|
|
||||||
### Logs d'Erreur
|
|
||||||
```
|
|
||||||
Logs d'erreur ici
|
|
||||||
```
|
|
||||||
|
|
||||||
### Logs de Debug
|
|
||||||
```
|
|
||||||
Logs de debug ici (si RUST_LOG=debug)
|
|
||||||
```
|
|
||||||
|
|
||||||
## 🔧 Tentatives de Résolution
|
|
||||||
|
|
||||||
- [ ] Redémarrage des services
|
|
||||||
- [ ] Nettoyage des volumes Docker
|
|
||||||
- [ ] Vérification de la connectivité réseau
|
|
||||||
- [ ] Mise à jour des dépendances
|
|
||||||
- [ ] Vérification de la configuration
|
|
||||||
|
|
||||||
## 📚 Contexte Supplémentaire
|
|
||||||
|
|
||||||
Toute autre information pertinente sur le problème.
|
|
||||||
|
|
||||||
## 🔗 Liens Utiles
|
|
||||||
|
|
||||||
- [Documentation](docs/)
|
|
||||||
- [Guide de Dépannage](docs/TROUBLESHOOTING.md)
|
|
||||||
- [Issues Similaires](https://git.4nkweb.com/4nk/4NK_node/issues?q=is%3Aissue+is%3Aopen+label%3Abug)
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
**Merci de votre contribution !** 🙏
|
|
@ -1,156 +0,0 @@
|
|||||||
---
|
|
||||||
name: Feature Request
|
|
||||||
about: Proposer une nouvelle fonctionnalité pour 4NK Node
|
|
||||||
title: '[FEATURE] '
|
|
||||||
labels: ['enhancement', 'needs-triage']
|
|
||||||
assignees: ''
|
|
||||||
---
|
|
||||||
|
|
||||||
## 🚀 Résumé
|
|
||||||
|
|
||||||
Description claire et concise de la fonctionnalité souhaitée.
|
|
||||||
|
|
||||||
## 💡 Motivation
|
|
||||||
|
|
||||||
Pourquoi cette fonctionnalité est-elle nécessaire ? Quels problèmes résout-elle ?
|
|
||||||
|
|
||||||
### Problèmes Actuels
|
|
||||||
- Problème 1
|
|
||||||
- Problème 2
|
|
||||||
- Problème 3
|
|
||||||
|
|
||||||
### Avantages de la Solution
|
|
||||||
- Avantage 1
|
|
||||||
- Avantage 2
|
|
||||||
- Avantage 3
|
|
||||||
|
|
||||||
## 🎯 Proposition
|
|
||||||
|
|
||||||
Description détaillée de la fonctionnalité proposée.
|
|
||||||
|
|
||||||
### Fonctionnalités Principales
|
|
||||||
- [ ] Fonctionnalité 1
|
|
||||||
- [ ] Fonctionnalité 2
|
|
||||||
- [ ] Fonctionnalité 3
|
|
||||||
|
|
||||||
### Interface Utilisateur
|
|
||||||
Description de l'interface utilisateur si applicable.
|
|
||||||
|
|
||||||
### API Changes
|
|
||||||
Description des changements d'API si applicable.
|
|
||||||
|
|
||||||
## 🔄 Alternatives Considérées
|
|
||||||
|
|
||||||
Autres solutions envisagées et pourquoi elles n'ont pas été choisies.
|
|
||||||
|
|
||||||
### Alternative 1
|
|
||||||
- **Description** : ...
|
|
||||||
- **Pourquoi rejetée** : ...
|
|
||||||
|
|
||||||
### Alternative 2
|
|
||||||
- **Description** : ...
|
|
||||||
- **Pourquoi rejetée** : ...
|
|
||||||
|
|
||||||
## 📊 Impact
|
|
||||||
|
|
||||||
### Impact sur les Utilisateurs
|
|
||||||
- Impact positif 1
|
|
||||||
- Impact positif 2
|
|
||||||
- Impact négatif potentiel (si applicable)
|
|
||||||
|
|
||||||
### Impact sur l'Architecture
|
|
||||||
- Changements nécessaires
|
|
||||||
- Compatibilité avec l'existant
|
|
||||||
- Performance
|
|
||||||
|
|
||||||
### Impact sur la Maintenance
|
|
||||||
- Complexité ajoutée
|
|
||||||
- Tests nécessaires
|
|
||||||
- Documentation requise
|
|
||||||
|
|
||||||
## 💻 Exemples d'Utilisation
|
|
||||||
|
|
||||||
### Cas d'Usage 1
|
|
||||||
```bash
|
|
||||||
# Exemple de commande ou configuration
|
|
||||||
```
|
|
||||||
|
|
||||||
### Cas d'Usage 2
|
|
||||||
```python
|
|
||||||
# Exemple de code Python
|
|
||||||
```
|
|
||||||
|
|
||||||
### Cas d'Usage 3
|
|
||||||
```javascript
|
|
||||||
// Exemple de code JavaScript
|
|
||||||
```
|
|
||||||
|
|
||||||
## 🧪 Tests
|
|
||||||
|
|
||||||
### Tests Nécessaires
|
|
||||||
- [ ] Tests unitaires
|
|
||||||
- [ ] Tests d'intégration
|
|
||||||
- [ ] Tests de performance
|
|
||||||
- [ ] Tests de sécurité
|
|
||||||
- [ ] Tests de compatibilité
|
|
||||||
|
|
||||||
### Scénarios de Test
|
|
||||||
- Scénario 1
|
|
||||||
- Scénario 2
|
|
||||||
- Scénario 3
|
|
||||||
|
|
||||||
## 📚 Documentation
|
|
||||||
|
|
||||||
### Documentation Requise
|
|
||||||
- [ ] Guide d'utilisation
|
|
||||||
- [ ] Documentation API
|
|
||||||
- [ ] Exemples de code
|
|
||||||
- [ ] Guide de migration
|
|
||||||
- [ ] FAQ
|
|
||||||
|
|
||||||
## 🔧 Implémentation
|
|
||||||
|
|
||||||
### Étapes Proposées
|
|
||||||
1. **Phase 1** : [Description]
|
|
||||||
2. **Phase 2** : [Description]
|
|
||||||
3. **Phase 3** : [Description]
|
|
||||||
|
|
||||||
### Estimation de Temps
|
|
||||||
- **Développement** : X jours/semaines
|
|
||||||
- **Tests** : X jours/semaines
|
|
||||||
- **Documentation** : X jours/semaines
|
|
||||||
- **Total** : X jours/semaines
|
|
||||||
|
|
||||||
### Ressources Nécessaires
|
|
||||||
- Développeur(s)
|
|
||||||
- Testeur(s)
|
|
||||||
- Documentateur(s)
|
|
||||||
- Infrastructure
|
|
||||||
|
|
||||||
## 🎯 Critères de Succès
|
|
||||||
|
|
||||||
Comment mesurer le succès de cette fonctionnalité ?
|
|
||||||
|
|
||||||
- [ ] Critère 1
|
|
||||||
- [ ] Critère 2
|
|
||||||
- [ ] Critère 3
|
|
||||||
|
|
||||||
## 🔗 Liens Utiles
|
|
||||||
|
|
||||||
- [Documentation existante](docs/)
|
|
||||||
- [Issues similaires](https://git.4nkweb.com/4nk/4NK_node/issues?q=is%3Aissue+is%3Aopen+label%3Aenhancement)
|
|
||||||
- [Roadmap](https://git.4nkweb.com/4nk/4NK_node/projects)
|
|
||||||
- [Discussions](https://git.4nkweb.com/4nk/4NK_node/issues)
|
|
||||||
|
|
||||||
## 📋 Checklist
|
|
||||||
|
|
||||||
- [ ] J'ai vérifié que cette fonctionnalité n'existe pas déjà
|
|
||||||
- [ ] J'ai lu la documentation existante
|
|
||||||
- [ ] J'ai vérifié les issues similaires
|
|
||||||
- [ ] J'ai fourni des exemples d'utilisation
|
|
||||||
- [ ] J'ai considéré l'impact sur l'existant
|
|
||||||
- [ ] J'ai proposé des tests
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
**Merci de votre contribution à l'amélioration de 4NK Node !** 🌟
|
|
@ -1,180 +0,0 @@
|
|||||||
# Pull Request - 4NK Node
|
|
||||||
|
|
||||||
## 📋 Description
|
|
||||||
|
|
||||||
Description claire et concise des changements apportés.
|
|
||||||
|
|
||||||
### Type de Changement
|
|
||||||
- [ ] 🐛 Bug fix
|
|
||||||
- [ ] ✨ Nouvelle fonctionnalité
|
|
||||||
- [ ] 📚 Documentation
|
|
||||||
- [ ] 🧪 Tests
|
|
||||||
- [ ] 🔧 Refactoring
|
|
||||||
- [ ] 🚀 Performance
|
|
||||||
- [ ] 🔒 Sécurité
|
|
||||||
- [ ] 🎨 Style/UI
|
|
||||||
- [ ] 🏗️ Architecture
|
|
||||||
- [ ] 📦 Build/CI
|
|
||||||
|
|
||||||
### Composants Affectés
|
|
||||||
- [ ] Bitcoin Core
|
|
||||||
- [ ] Blindbit
|
|
||||||
- [ ] SDK Relay
|
|
||||||
- [ ] Tor
|
|
||||||
- [ ] Docker/Infrastructure
|
|
||||||
- [ ] Tests
|
|
||||||
- [ ] Documentation
|
|
||||||
- [ ] Scripts
|
|
||||||
|
|
||||||
## 🔗 Issue(s) Liée(s)
|
|
||||||
|
|
||||||
Fixes #(issue)
|
|
||||||
Relates to #(issue)
|
|
||||||
|
|
||||||
## 🧪 Tests
|
|
||||||
|
|
||||||
### Tests Exécutés
|
|
||||||
- [ ] Tests unitaires
|
|
||||||
- [ ] Tests d'intégration
|
|
||||||
- [ ] Tests de connectivité
|
|
||||||
- [ ] Tests externes
|
|
||||||
- [ ] Tests de performance
|
|
||||||
|
|
||||||
### Commandes de Test
|
|
||||||
```bash
|
|
||||||
# Tests complets
|
|
||||||
./tests/run_all_tests.sh
|
|
||||||
|
|
||||||
# Tests spécifiques
|
|
||||||
./tests/run_unit_tests.sh
|
|
||||||
./tests/run_integration_tests.sh
|
|
||||||
```
|
|
||||||
|
|
||||||
### Résultats des Tests
|
|
||||||
```
|
|
||||||
Résultats des tests ici
|
|
||||||
```
|
|
||||||
|
|
||||||
## 📸 Captures d'Écran
|
|
||||||
|
|
||||||
Si applicable, ajoutez des captures d'écran pour les changements visuels.
|
|
||||||
|
|
||||||
## 🔧 Changements Techniques
|
|
||||||
|
|
||||||
### Fichiers Modifiés
|
|
||||||
- `fichier1.rs` - Description des changements
|
|
||||||
- `fichier2.py` - Description des changements
|
|
||||||
- `docker-compose.yml` - Description des changements
|
|
||||||
|
|
||||||
### Nouveaux Fichiers
|
|
||||||
- `nouveau_fichier.rs` - Description
|
|
||||||
- `nouveau_script.sh` - Description
|
|
||||||
|
|
||||||
### Fichiers Supprimés
|
|
||||||
- `ancien_fichier.rs` - Raison de la suppression
|
|
||||||
|
|
||||||
### Changements de Configuration
|
|
||||||
```yaml
|
|
||||||
# Exemple de changement de configuration
|
|
||||||
service:
|
|
||||||
new_option: value
|
|
||||||
```
|
|
||||||
|
|
||||||
## 📚 Documentation
|
|
||||||
|
|
||||||
### Documentation Mise à Jour
|
|
||||||
- [ ] README.md
|
|
||||||
- [ ] docs/INSTALLATION.md
|
|
||||||
- [ ] docs/USAGE.md
|
|
||||||
- [ ] docs/API.md
|
|
||||||
- [ ] docs/ARCHITECTURE.md
|
|
||||||
|
|
||||||
### Nouvelle Documentation
|
|
||||||
- [ ] Nouveau guide créé
|
|
||||||
- [ ] Exemples ajoutés
|
|
||||||
- [ ] API documentée
|
|
||||||
|
|
||||||
## 🔍 Code Review Checklist
|
|
||||||
|
|
||||||
### Code Quality
|
|
||||||
- [ ] Le code suit les standards du projet
|
|
||||||
- [ ] Les noms de variables/fonctions sont clairs
|
|
||||||
- [ ] Les commentaires sont appropriés
|
|
||||||
- [ ] Pas de code mort ou commenté
|
|
||||||
- [ ] Gestion d'erreurs appropriée
|
|
||||||
|
|
||||||
### Performance
|
|
||||||
- [ ] Pas de régression de performance
|
|
||||||
- [ ] Optimisations appliquées si nécessaire
|
|
||||||
- [ ] Tests de performance ajoutés
|
|
||||||
|
|
||||||
### Sécurité
|
|
||||||
- [ ] Pas de vulnérabilités introduites
|
|
||||||
- [ ] Validation des entrées utilisateur
|
|
||||||
- [ ] Gestion sécurisée des secrets
|
|
||||||
|
|
||||||
### Tests
|
|
||||||
- [ ] Couverture de tests suffisante
|
|
||||||
- [ ] Tests pour les cas d'erreur
|
|
||||||
- [ ] Tests d'intégration si nécessaire
|
|
||||||
|
|
||||||
### Documentation
|
|
||||||
- [ ] Code auto-documenté
|
|
||||||
- [ ] Documentation mise à jour
|
|
||||||
- [ ] Exemples fournis
|
|
||||||
|
|
||||||
## 🚀 Déploiement
|
|
||||||
|
|
||||||
### Impact sur le Déploiement
|
|
||||||
- [ ] Aucun impact
|
|
||||||
- [ ] Migration de données requise
|
|
||||||
- [ ] Changement de configuration
|
|
||||||
- [ ] Redémarrage des services
|
|
||||||
|
|
||||||
### Étapes de Déploiement
|
|
||||||
```bash
|
|
||||||
# Étapes pour déployer les changements
|
|
||||||
```
|
|
||||||
|
|
||||||
## 📊 Métriques
|
|
||||||
|
|
||||||
### Impact sur les Performances
|
|
||||||
- Temps de réponse : +/- X%
|
|
||||||
- Utilisation mémoire : +/- X%
|
|
||||||
- Utilisation CPU : +/- X%
|
|
||||||
|
|
||||||
### Impact sur la Stabilité
|
|
||||||
- Taux d'erreur : +/- X%
|
|
||||||
- Disponibilité : +/- X%
|
|
||||||
|
|
||||||
## 🔄 Compatibilité
|
|
||||||
|
|
||||||
### Compatibilité Ascendante
|
|
||||||
- [ ] Compatible avec les versions précédentes
|
|
||||||
- [ ] Migration automatique
|
|
||||||
- [ ] Migration manuelle requise
|
|
||||||
|
|
||||||
### Compatibilité Descendante
|
|
||||||
- [ ] Compatible avec les futures versions
|
|
||||||
- [ ] API stable
|
|
||||||
- [ ] Configuration stable
|
|
||||||
|
|
||||||
## 🎯 Critères de Succès
|
|
||||||
|
|
||||||
- [ ] Critère 1
|
|
||||||
- [ ] Critère 2
|
|
||||||
- [ ] Critère 3
|
|
||||||
|
|
||||||
## 📝 Notes Supplémentaires
|
|
||||||
|
|
||||||
Informations supplémentaires importantes pour les reviewers.
|
|
||||||
|
|
||||||
## 🔗 Liens Utiles
|
|
||||||
|
|
||||||
- [Documentation](docs/)
|
|
||||||
- [Tests](tests/)
|
|
||||||
- [Issues liées](https://git.4nkweb.com/4nk/4NK_node/issues)
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
**Merci pour votre contribution !** 🙏
|
|
@ -1,345 +0,0 @@
|
|||||||
name: CI - 4NK Node
|
|
||||||
|
|
||||||
on:
|
|
||||||
push:
|
|
||||||
branches: [ main, develop ]
|
|
||||||
pull_request:
|
|
||||||
branches: [ main, develop ]
|
|
||||||
|
|
||||||
env:
|
|
||||||
RUST_VERSION: '1.70'
|
|
||||||
DOCKER_COMPOSE_VERSION: '2.20.0'
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
# Job de vérification du code
|
|
||||||
code-quality:
|
|
||||||
name: Code Quality
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- name: Checkout code
|
|
||||||
uses: actions/checkout@v3
|
|
||||||
|
|
||||||
- name: Setup Rust
|
|
||||||
uses: actions-rs/toolchain@v1
|
|
||||||
with:
|
|
||||||
toolchain: ${{ env.RUST_VERSION }}
|
|
||||||
override: true
|
|
||||||
|
|
||||||
- name: Cache Rust dependencies
|
|
||||||
uses: actions/cache@v3
|
|
||||||
with:
|
|
||||||
path: |
|
|
||||||
~/.cargo/registry
|
|
||||||
~/.cargo/git
|
|
||||||
target
|
|
||||||
key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}
|
|
||||||
restore-keys: |
|
|
||||||
${{ runner.os }}-cargo-
|
|
||||||
|
|
||||||
- name: Run clippy
|
|
||||||
run: |
|
|
||||||
cd sdk_relay
|
|
||||||
cargo clippy --all-targets --all-features -- -D warnings
|
|
||||||
|
|
||||||
- name: Run rustfmt
|
|
||||||
run: |
|
|
||||||
cd sdk_relay
|
|
||||||
cargo fmt --all -- --check
|
|
||||||
|
|
||||||
- name: Check documentation
|
|
||||||
run: |
|
|
||||||
cd sdk_relay
|
|
||||||
cargo doc --no-deps
|
|
||||||
|
|
||||||
- name: Check for TODO/FIXME
|
|
||||||
run: |
|
|
||||||
if grep -r "TODO\|FIXME" . --exclude-dir=.git --exclude-dir=target; then
|
|
||||||
echo "Found TODO/FIXME comments. Please address them."
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Job de tests unitaires
|
|
||||||
unit-tests:
|
|
||||||
name: Unit Tests
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- name: Checkout code
|
|
||||||
uses: actions/checkout@v3
|
|
||||||
|
|
||||||
- name: Setup Rust
|
|
||||||
uses: actions-rs/toolchain@v1
|
|
||||||
with:
|
|
||||||
toolchain: ${{ env.RUST_VERSION }}
|
|
||||||
override: true
|
|
||||||
|
|
||||||
- name: Cache Rust dependencies
|
|
||||||
uses: actions/cache@v3
|
|
||||||
with:
|
|
||||||
path: |
|
|
||||||
~/.cargo/registry
|
|
||||||
~/.cargo/git
|
|
||||||
target
|
|
||||||
key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}
|
|
||||||
restore-keys: |
|
|
||||||
${{ runner.os }}-cargo-
|
|
||||||
|
|
||||||
- name: Run unit tests
|
|
||||||
run: |
|
|
||||||
cd sdk_relay
|
|
||||||
cargo test --lib --bins
|
|
||||||
|
|
||||||
- name: Run integration tests
|
|
||||||
run: |
|
|
||||||
cd sdk_relay
|
|
||||||
cargo test --tests
|
|
||||||
|
|
||||||
# Job de tests d'intégration
|
|
||||||
integration-tests:
|
|
||||||
name: Integration Tests
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
|
|
||||||
services:
|
|
||||||
docker:
|
|
||||||
image: docker:24.0.5
|
|
||||||
options: >-
|
|
||||||
--health-cmd "docker info"
|
|
||||||
--health-interval 10s
|
|
||||||
--health-timeout 5s
|
|
||||||
--health-retries 5
|
|
||||||
ports:
|
|
||||||
- 2375:2375
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- name: Checkout code
|
|
||||||
uses: actions/checkout@v3
|
|
||||||
|
|
||||||
- name: Setup Docker Buildx
|
|
||||||
uses: docker/setup-buildx-action@v3
|
|
||||||
|
|
||||||
- name: Build Docker images
|
|
||||||
run: |
|
|
||||||
docker build -t 4nk-node-bitcoin ./bitcoin
|
|
||||||
docker build -t 4nk-node-blindbit ./blindbit
|
|
||||||
docker build -t 4nk-node-sdk-relay -f ./sdk_relay/Dockerfile ..
|
|
||||||
|
|
||||||
- name: Run integration tests
|
|
||||||
run: |
|
|
||||||
# Tests de connectivité de base
|
|
||||||
./tests/run_connectivity_tests.sh || true
|
|
||||||
|
|
||||||
# Tests d'intégration
|
|
||||||
./tests/run_integration_tests.sh || true
|
|
||||||
|
|
||||||
- name: Upload test results
|
|
||||||
uses: actions/upload-artifact@v3
|
|
||||||
if: always()
|
|
||||||
with:
|
|
||||||
name: test-results
|
|
||||||
path: |
|
|
||||||
tests/logs/
|
|
||||||
tests/reports/
|
|
||||||
retention-days: 7
|
|
||||||
|
|
||||||
# Job de tests de sécurité
|
|
||||||
security-tests:
|
|
||||||
name: Security Tests
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- name: Checkout code
|
|
||||||
uses: actions/checkout@v3
|
|
||||||
|
|
||||||
- name: Setup Rust
|
|
||||||
uses: actions-rs/toolchain@v1
|
|
||||||
with:
|
|
||||||
toolchain: ${{ env.RUST_VERSION }}
|
|
||||||
override: true
|
|
||||||
|
|
||||||
- name: Run cargo audit
|
|
||||||
run: |
|
|
||||||
cd sdk_relay
|
|
||||||
cargo audit --deny warnings
|
|
||||||
|
|
||||||
- name: Check for secrets
|
|
||||||
run: |
|
|
||||||
# Vérifier les secrets potentiels
|
|
||||||
if grep -r "password\|secret\|key\|token" . --exclude-dir=.git --exclude-dir=target --exclude=*.md; then
|
|
||||||
echo "Potential secrets found. Please review."
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
- name: Check file permissions
|
|
||||||
run: |
|
|
||||||
# Vérifier les permissions sensibles
|
|
||||||
find . -type f -perm /0111 -name "*.conf" -o -name "*.key" -o -name "*.pem" | while read file; do
|
|
||||||
if [[ $(stat -c %a "$file") != "600" ]]; then
|
|
||||||
echo "Warning: $file has insecure permissions"
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
|
|
||||||
# Job de build et test Docker
|
|
||||||
docker-build:
|
|
||||||
name: Docker Build & Test
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
|
|
||||||
services:
|
|
||||||
docker:
|
|
||||||
image: docker:24.0.5
|
|
||||||
options: >-
|
|
||||||
--health-cmd "docker info"
|
|
||||||
--health-interval 10s
|
|
||||||
--health-timeout 5s
|
|
||||||
--health-retries 5
|
|
||||||
ports:
|
|
||||||
- 2375:2375
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- name: Checkout code
|
|
||||||
uses: actions/checkout@v3
|
|
||||||
|
|
||||||
- name: Setup Docker Buildx
|
|
||||||
uses: docker/setup-buildx-action@v3
|
|
||||||
|
|
||||||
- name: Build and test Bitcoin Core
|
|
||||||
run: |
|
|
||||||
docker build -t 4nk-node-bitcoin:test ./bitcoin
|
|
||||||
docker run --rm 4nk-node-bitcoin:test bitcoin-cli --version
|
|
||||||
|
|
||||||
- name: Build and test Blindbit
|
|
||||||
run: |
|
|
||||||
docker build -t 4nk-node-blindbit:test ./blindbit
|
|
||||||
docker run --rm 4nk-node-blindbit:test --version || true
|
|
||||||
|
|
||||||
- name: Build and test SDK Relay
|
|
||||||
run: |
|
|
||||||
docker build -t 4nk-node-sdk-relay:test -f ./sdk_relay/Dockerfile ..
|
|
||||||
docker run --rm 4nk-node-sdk-relay:test --version || true
|
|
||||||
|
|
||||||
- name: Test Docker Compose
|
|
||||||
run: |
|
|
||||||
docker-compose config
|
|
||||||
docker-compose build --no-cache
|
|
||||||
|
|
||||||
# Job de tests de documentation
|
|
||||||
documentation-tests:
|
|
||||||
name: Documentation Tests
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- name: Checkout code
|
|
||||||
uses: actions/checkout@v3
|
|
||||||
|
|
||||||
- name: Check markdown links
|
|
||||||
run: |
|
|
||||||
# Vérification basique des liens markdown
|
|
||||||
find . -name "*.md" -exec grep -l "\[.*\](" {} \; | while read file; do
|
|
||||||
echo "Checking links in $file"
|
|
||||||
done
|
|
||||||
|
|
||||||
- name: Check documentation structure
|
|
||||||
run: |
|
|
||||||
# Vérifier la présence des fichiers de documentation essentiels
|
|
||||||
required_files=(
|
|
||||||
"README.md"
|
|
||||||
"LICENSE"
|
|
||||||
"CONTRIBUTING.md"
|
|
||||||
"CHANGELOG.md"
|
|
||||||
"CODE_OF_CONDUCT.md"
|
|
||||||
"SECURITY.md"
|
|
||||||
"docs/INDEX.md"
|
|
||||||
"docs/INSTALLATION.md"
|
|
||||||
"docs/USAGE.md"
|
|
||||||
)
|
|
||||||
|
|
||||||
for file in "${required_files[@]}"; do
|
|
||||||
if [[ ! -f "$file" ]]; then
|
|
||||||
echo "Missing required documentation file: $file"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
|
|
||||||
- name: Validate documentation
|
|
||||||
run: |
|
|
||||||
# Vérifier la cohérence de la documentation
|
|
||||||
if ! grep -q "4NK Node" README.md; then
|
|
||||||
echo "README.md should mention '4NK Node'"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Job de release guard (cohérence release)
|
|
||||||
release-guard:
|
|
||||||
name: Release Guard
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
needs: [code-quality, unit-tests, documentation-tests]
|
|
||||||
steps:
|
|
||||||
- name: Checkout code
|
|
||||||
uses: actions/checkout@v3
|
|
||||||
|
|
||||||
- name: Ensure guard scripts are executable
|
|
||||||
run: |
|
|
||||||
chmod +x scripts/release/guard.sh || true
|
|
||||||
chmod +x scripts/checks/version_alignment.sh || true
|
|
||||||
|
|
||||||
- name: Version alignment check
|
|
||||||
run: |
|
|
||||||
if [ -f scripts/checks/version_alignment.sh ]; then
|
|
||||||
./scripts/checks/version_alignment.sh
|
|
||||||
else
|
|
||||||
echo "No version alignment script (ok)"
|
|
||||||
fi
|
|
||||||
|
|
||||||
- name: Release guard (CI verify)
|
|
||||||
env:
|
|
||||||
RELEASE_TYPE: ci-verify
|
|
||||||
run: |
|
|
||||||
if [ -f scripts/release/guard.sh ]; then
|
|
||||||
./scripts/release/guard.sh
|
|
||||||
else
|
|
||||||
echo "No guard script (ok)"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Job de tests de performance
|
|
||||||
performance-tests:
|
|
||||||
name: Performance Tests
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- name: Checkout code
|
|
||||||
uses: actions/checkout@v3
|
|
||||||
|
|
||||||
- name: Setup Rust
|
|
||||||
uses: actions-rs/toolchain@v1
|
|
||||||
with:
|
|
||||||
toolchain: ${{ env.RUST_VERSION }}
|
|
||||||
override: true
|
|
||||||
|
|
||||||
- name: Run performance tests
|
|
||||||
run: |
|
|
||||||
cd sdk_relay
|
|
||||||
cargo test --release --test performance_tests || true
|
|
||||||
|
|
||||||
- name: Check memory usage
|
|
||||||
run: |
|
|
||||||
# Tests de base de consommation mémoire
|
|
||||||
echo "Performance tests completed"
|
|
||||||
|
|
||||||
# Job de notification
|
|
||||||
notify:
|
|
||||||
name: Notify
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
needs: [code-quality, unit-tests, integration-tests, security-tests, docker-build, documentation-tests]
|
|
||||||
if: always()
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- name: Notify success
|
|
||||||
if: needs.code-quality.result == 'success' && needs.unit-tests.result == 'success' && needs.integration-tests.result == 'success' && needs.security-tests.result == 'success' && needs.docker-build.result == 'success' && needs.documentation-tests.result == 'success'
|
|
||||||
run: |
|
|
||||||
echo "✅ All tests passed successfully!"
|
|
||||||
|
|
||||||
- name: Notify failure
|
|
||||||
if: needs.code-quality.result == 'failure' || needs.unit-tests.result == 'failure' || needs.integration-tests.result == 'failure' || needs.security-tests.result == 'failure' || needs.docker-build.result == 'failure' || needs.documentation-tests.result == 'failure'
|
|
||||||
run: |
|
|
||||||
echo "❌ Some tests failed!"
|
|
||||||
exit 1
|
|
@ -1,6 +1,6 @@
|
|||||||
---
|
---
|
||||||
name: Bug Report
|
name: Bug Report
|
||||||
about: Signaler un bug pour améliorer sdk_relay
|
about: Signaler un bug pour nous aider à améliorer 4NK Node
|
||||||
title: '[BUG] '
|
title: '[BUG] '
|
||||||
labels: ['bug', 'needs-triage']
|
labels: ['bug', 'needs-triage']
|
||||||
assignees: ''
|
assignees: ''
|
||||||
@ -12,33 +12,86 @@ Description claire et concise du problème.
|
|||||||
|
|
||||||
## 🔄 Étapes pour Reproduire
|
## 🔄 Étapes pour Reproduire
|
||||||
|
|
||||||
1. ...
|
1. Aller à '...'
|
||||||
2. ...
|
2. Cliquer sur '...'
|
||||||
3. ...
|
3. Faire défiler jusqu'à '...'
|
||||||
|
4. Voir l'erreur
|
||||||
|
|
||||||
## ✅ Comportement Attendu
|
## ✅ Comportement Attendu
|
||||||
|
|
||||||
...
|
Description de ce qui devrait se passer.
|
||||||
|
|
||||||
## ❌ Comportement Actuel
|
## ❌ Comportement Actuel
|
||||||
|
|
||||||
...
|
Description de ce qui se passe actuellement.
|
||||||
|
|
||||||
|
## 📸 Capture d'Écran
|
||||||
|
|
||||||
|
Si applicable, ajoutez une capture d'écran pour expliquer votre problème.
|
||||||
|
|
||||||
## 💻 Informations Système
|
## 💻 Informations Système
|
||||||
- OS: ...
|
|
||||||
- Rust: ...
|
- **OS** : [ex: Ubuntu 20.04, macOS 12.0, Windows 11]
|
||||||
- Version sdk_relay: ...
|
- **Docker** : [ex: 20.10.0]
|
||||||
|
- **Docker Compose** : [ex: 2.0.0]
|
||||||
|
- **Version 4NK Node** : [ex: v1.0.0]
|
||||||
|
- **Architecture** : [ex: x86_64, ARM64]
|
||||||
|
|
||||||
|
## 📋 Configuration
|
||||||
|
|
||||||
|
### Services Actifs
|
||||||
|
```bash
|
||||||
|
docker ps
|
||||||
|
```
|
||||||
|
|
||||||
|
### Variables d'Environnement
|
||||||
|
```bash
|
||||||
|
# Bitcoin Core
|
||||||
|
BITCOIN_NETWORK=signet
|
||||||
|
BITCOIN_RPC_PORT=18443
|
||||||
|
|
||||||
|
# Blindbit
|
||||||
|
BLINDBIT_PORT=8000
|
||||||
|
|
||||||
|
# SDK Relay
|
||||||
|
SDK_RELAY_PORTS=8090-8095
|
||||||
|
```
|
||||||
|
|
||||||
## 📝 Logs
|
## 📝 Logs
|
||||||
|
|
||||||
|
### Logs Pertinents
|
||||||
```
|
```
|
||||||
Logs pertinents ici
|
Logs pertinents ici
|
||||||
```
|
```
|
||||||
|
|
||||||
## 🔧 Tentatives de Résolution
|
### Logs d'Erreur
|
||||||
- [ ] Clippy/fmt OK
|
```
|
||||||
- [ ] Tests OK
|
Logs d'erreur ici
|
||||||
- [ ] Rebuild
|
```
|
||||||
|
|
||||||
## 📚 Liens
|
### Logs de Debug
|
||||||
- [Documentation](../docs)
|
```
|
||||||
- [Issues similaires](https://git.4nkweb.com/4nk/sdk_relay/issues?q=is%3Aissue+is%3Aopen+label%3Abug)
|
Logs de debug ici (si RUST_LOG=debug)
|
||||||
|
```
|
||||||
|
|
||||||
|
## 🔧 Tentatives de Résolution
|
||||||
|
|
||||||
|
- [ ] Redémarrage des services
|
||||||
|
- [ ] Nettoyage des volumes Docker
|
||||||
|
- [ ] Vérification de la connectivité réseau
|
||||||
|
- [ ] Mise à jour des dépendances
|
||||||
|
- [ ] Vérification de la configuration
|
||||||
|
|
||||||
|
## 📚 Contexte Supplémentaire
|
||||||
|
|
||||||
|
Toute autre information pertinente sur le problème.
|
||||||
|
|
||||||
|
## 🔗 Liens Utiles
|
||||||
|
|
||||||
|
- [Documentation](docs/)
|
||||||
|
- [Guide de Dépannage](docs/TROUBLESHOOTING.md)
|
||||||
|
- [Issues Similaires](https://git.4nkweb.com/4nk/4NK_node/issues?q=is%3Aissue+is%3Aopen+label%3Abug)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
**Merci de votre contribution !** 🙏
|
||||||
|
@ -1,27 +1,156 @@
|
|||||||
---
|
---
|
||||||
name: Feature Request
|
name: Feature Request
|
||||||
about: Proposer une nouvelle fonctionnalité pour sdk_relay
|
about: Proposer une nouvelle fonctionnalité pour 4NK Node
|
||||||
title: '[FEATURE] '
|
title: '[FEATURE] '
|
||||||
labels: ['enhancement', 'needs-triage']
|
labels: ['enhancement', 'needs-triage']
|
||||||
assignees: ''
|
assignees: ''
|
||||||
---
|
---
|
||||||
|
|
||||||
## 🚀 Résumé
|
## 🚀 Résumé
|
||||||
...
|
|
||||||
|
Description claire et concise de la fonctionnalité souhaitée.
|
||||||
|
|
||||||
## 💡 Motivation
|
## 💡 Motivation
|
||||||
...
|
|
||||||
|
Pourquoi cette fonctionnalité est-elle nécessaire ? Quels problèmes résout-elle ?
|
||||||
|
|
||||||
|
### Problèmes Actuels
|
||||||
|
- Problème 1
|
||||||
|
- Problème 2
|
||||||
|
- Problème 3
|
||||||
|
|
||||||
|
### Avantages de la Solution
|
||||||
|
- Avantage 1
|
||||||
|
- Avantage 2
|
||||||
|
- Avantage 3
|
||||||
|
|
||||||
## 🎯 Proposition
|
## 🎯 Proposition
|
||||||
|
|
||||||
|
Description détaillée de la fonctionnalité proposée.
|
||||||
|
|
||||||
|
### Fonctionnalités Principales
|
||||||
- [ ] Fonctionnalité 1
|
- [ ] Fonctionnalité 1
|
||||||
- [ ] Fonctionnalité 2
|
- [ ] Fonctionnalité 2
|
||||||
|
- [ ] Fonctionnalité 3
|
||||||
|
|
||||||
|
### Interface Utilisateur
|
||||||
|
Description de l'interface utilisateur si applicable.
|
||||||
|
|
||||||
|
### API Changes
|
||||||
|
Description des changements d'API si applicable.
|
||||||
|
|
||||||
|
## 🔄 Alternatives Considérées
|
||||||
|
|
||||||
|
Autres solutions envisagées et pourquoi elles n'ont pas été choisies.
|
||||||
|
|
||||||
|
### Alternative 1
|
||||||
|
- **Description** : ...
|
||||||
|
- **Pourquoi rejetée** : ...
|
||||||
|
|
||||||
|
### Alternative 2
|
||||||
|
- **Description** : ...
|
||||||
|
- **Pourquoi rejetée** : ...
|
||||||
|
|
||||||
|
## 📊 Impact
|
||||||
|
|
||||||
|
### Impact sur les Utilisateurs
|
||||||
|
- Impact positif 1
|
||||||
|
- Impact positif 2
|
||||||
|
- Impact négatif potentiel (si applicable)
|
||||||
|
|
||||||
|
### Impact sur l'Architecture
|
||||||
|
- Changements nécessaires
|
||||||
|
- Compatibilité avec l'existant
|
||||||
|
- Performance
|
||||||
|
|
||||||
|
### Impact sur la Maintenance
|
||||||
|
- Complexité ajoutée
|
||||||
|
- Tests nécessaires
|
||||||
|
- Documentation requise
|
||||||
|
|
||||||
|
## 💻 Exemples d'Utilisation
|
||||||
|
|
||||||
|
### Cas d'Usage 1
|
||||||
|
```bash
|
||||||
|
# Exemple de commande ou configuration
|
||||||
|
```
|
||||||
|
|
||||||
|
### Cas d'Usage 2
|
||||||
|
```python
|
||||||
|
# Exemple de code Python
|
||||||
|
```
|
||||||
|
|
||||||
|
### Cas d'Usage 3
|
||||||
|
```javascript
|
||||||
|
// Exemple de code JavaScript
|
||||||
|
```
|
||||||
|
|
||||||
## 🧪 Tests
|
## 🧪 Tests
|
||||||
- [ ] Unitaires
|
|
||||||
- [ ] Intégration
|
### Tests Nécessaires
|
||||||
|
- [ ] Tests unitaires
|
||||||
|
- [ ] Tests d'intégration
|
||||||
|
- [ ] Tests de performance
|
||||||
|
- [ ] Tests de sécurité
|
||||||
|
- [ ] Tests de compatibilité
|
||||||
|
|
||||||
|
### Scénarios de Test
|
||||||
|
- Scénario 1
|
||||||
|
- Scénario 2
|
||||||
|
- Scénario 3
|
||||||
|
|
||||||
## 📚 Documentation
|
## 📚 Documentation
|
||||||
- [ ] API/README mis à jour
|
|
||||||
|
|
||||||
## 🔗 Liens
|
### Documentation Requise
|
||||||
- [Issues similaires](https://git.4nkweb.com/4nk/sdk_relay/issues?q=is%3Aissue+is%3Aopen+label%3Aenhancement)
|
- [ ] Guide d'utilisation
|
||||||
|
- [ ] Documentation API
|
||||||
|
- [ ] Exemples de code
|
||||||
|
- [ ] Guide de migration
|
||||||
|
- [ ] FAQ
|
||||||
|
|
||||||
|
## 🔧 Implémentation
|
||||||
|
|
||||||
|
### Étapes Proposées
|
||||||
|
1. **Phase 1** : [Description]
|
||||||
|
2. **Phase 2** : [Description]
|
||||||
|
3. **Phase 3** : [Description]
|
||||||
|
|
||||||
|
### Estimation de Temps
|
||||||
|
- **Développement** : X jours/semaines
|
||||||
|
- **Tests** : X jours/semaines
|
||||||
|
- **Documentation** : X jours/semaines
|
||||||
|
- **Total** : X jours/semaines
|
||||||
|
|
||||||
|
### Ressources Nécessaires
|
||||||
|
- Développeur(s)
|
||||||
|
- Testeur(s)
|
||||||
|
- Documentateur(s)
|
||||||
|
- Infrastructure
|
||||||
|
|
||||||
|
## 🎯 Critères de Succès
|
||||||
|
|
||||||
|
Comment mesurer le succès de cette fonctionnalité ?
|
||||||
|
|
||||||
|
- [ ] Critère 1
|
||||||
|
- [ ] Critère 2
|
||||||
|
- [ ] Critère 3
|
||||||
|
|
||||||
|
## 🔗 Liens Utiles
|
||||||
|
|
||||||
|
- [Documentation existante](docs/)
|
||||||
|
- [Issues similaires](https://git.4nkweb.com/4nk/4NK_node/issues?q=is%3Aissue+is%3Aopen+label%3Aenhancement)
|
||||||
|
- [Roadmap](https://git.4nkweb.com/4nk/4NK_node/projects)
|
||||||
|
- [Discussions](https://git.4nkweb.com/4nk/4NK_node/issues)
|
||||||
|
|
||||||
|
## 📋 Checklist
|
||||||
|
|
||||||
|
- [ ] J'ai vérifié que cette fonctionnalité n'existe pas déjà
|
||||||
|
- [ ] J'ai lu la documentation existante
|
||||||
|
- [ ] J'ai vérifié les issues similaires
|
||||||
|
- [ ] J'ai fourni des exemples d'utilisation
|
||||||
|
- [ ] J'ai considéré l'impact sur l'existant
|
||||||
|
- [ ] J'ai proposé des tests
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
**Merci de votre contribution à l'amélioration de 4NK Node !** 🌟
|
||||||
|
@ -1,31 +1,180 @@
|
|||||||
# Pull Request - sdk_relay
|
# Pull Request - 4NK Node
|
||||||
|
|
||||||
## 📋 Description
|
## 📋 Description
|
||||||
Résumé clair des changements.
|
|
||||||
|
|
||||||
### Type
|
Description claire et concise des changements apportés.
|
||||||
- [ ] Bug fix
|
|
||||||
- [ ] Feature
|
### Type de Changement
|
||||||
- [ ] Docs
|
- [ ] 🐛 Bug fix
|
||||||
|
- [ ] ✨ Nouvelle fonctionnalité
|
||||||
|
- [ ] 📚 Documentation
|
||||||
|
- [ ] 🧪 Tests
|
||||||
|
- [ ] 🔧 Refactoring
|
||||||
|
- [ ] 🚀 Performance
|
||||||
|
- [ ] 🔒 Sécurité
|
||||||
|
- [ ] 🎨 Style/UI
|
||||||
|
- [ ] 🏗️ Architecture
|
||||||
|
- [ ] 📦 Build/CI
|
||||||
|
|
||||||
|
### Composants Affectés
|
||||||
|
- [ ] Bitcoin Core
|
||||||
|
- [ ] Blindbit
|
||||||
|
- [ ] SDK Relay
|
||||||
|
- [ ] Tor
|
||||||
|
- [ ] Docker/Infrastructure
|
||||||
- [ ] Tests
|
- [ ] Tests
|
||||||
- [ ] Refactor
|
- [ ] Documentation
|
||||||
- [ ] CI
|
- [ ] Scripts
|
||||||
|
|
||||||
|
## 🔗 Issue(s) Liée(s)
|
||||||
|
|
||||||
## 🔗 Issues
|
|
||||||
Fixes #(issue)
|
Fixes #(issue)
|
||||||
|
Relates to #(issue)
|
||||||
|
|
||||||
## 🧪 Tests
|
## 🧪 Tests
|
||||||
|
|
||||||
|
### Tests Exécutés
|
||||||
|
- [ ] Tests unitaires
|
||||||
|
- [ ] Tests d'intégration
|
||||||
|
- [ ] Tests de connectivité
|
||||||
|
- [ ] Tests externes
|
||||||
|
- [ ] Tests de performance
|
||||||
|
|
||||||
|
### Commandes de Test
|
||||||
```bash
|
```bash
|
||||||
cargo test --all
|
# Tests complets
|
||||||
cargo clippy -- -D warnings
|
./tests/run_all_tests.sh
|
||||||
cargo fmt -- --check
|
|
||||||
|
# Tests spécifiques
|
||||||
|
./tests/run_unit_tests.sh
|
||||||
|
./tests/run_integration_tests.sh
|
||||||
```
|
```
|
||||||
|
|
||||||
## 📚 Docs
|
### Résultats des Tests
|
||||||
- [ ] README/docs mis à jour
|
```
|
||||||
|
Résultats des tests ici
|
||||||
|
```
|
||||||
|
|
||||||
## 🔍 Checklist
|
## 📸 Captures d'Écran
|
||||||
- [ ] Lint OK
|
|
||||||
- [ ] Tests OK
|
Si applicable, ajoutez des captures d'écran pour les changements visuels.
|
||||||
- [ ] Pas de régression
|
|
||||||
- [ ] Sécurité considérée
|
## 🔧 Changements Techniques
|
||||||
|
|
||||||
|
### Fichiers Modifiés
|
||||||
|
- `fichier1.rs` - Description des changements
|
||||||
|
- `fichier2.py` - Description des changements
|
||||||
|
- `docker-compose.yml` - Description des changements
|
||||||
|
|
||||||
|
### Nouveaux Fichiers
|
||||||
|
- `nouveau_fichier.rs` - Description
|
||||||
|
- `nouveau_script.sh` - Description
|
||||||
|
|
||||||
|
### Fichiers Supprimés
|
||||||
|
- `ancien_fichier.rs` - Raison de la suppression
|
||||||
|
|
||||||
|
### Changements de Configuration
|
||||||
|
```yaml
|
||||||
|
# Exemple de changement de configuration
|
||||||
|
service:
|
||||||
|
new_option: value
|
||||||
|
```
|
||||||
|
|
||||||
|
## 📚 Documentation
|
||||||
|
|
||||||
|
### Documentation Mise à Jour
|
||||||
|
- [ ] README.md
|
||||||
|
- [ ] docs/INSTALLATION.md
|
||||||
|
- [ ] docs/USAGE.md
|
||||||
|
- [ ] docs/API.md
|
||||||
|
- [ ] docs/ARCHITECTURE.md
|
||||||
|
|
||||||
|
### Nouvelle Documentation
|
||||||
|
- [ ] Nouveau guide créé
|
||||||
|
- [ ] Exemples ajoutés
|
||||||
|
- [ ] API documentée
|
||||||
|
|
||||||
|
## 🔍 Code Review Checklist
|
||||||
|
|
||||||
|
### Code Quality
|
||||||
|
- [ ] Le code suit les standards du projet
|
||||||
|
- [ ] Les noms de variables/fonctions sont clairs
|
||||||
|
- [ ] Les commentaires sont appropriés
|
||||||
|
- [ ] Pas de code mort ou commenté
|
||||||
|
- [ ] Gestion d'erreurs appropriée
|
||||||
|
|
||||||
|
### Performance
|
||||||
|
- [ ] Pas de régression de performance
|
||||||
|
- [ ] Optimisations appliquées si nécessaire
|
||||||
|
- [ ] Tests de performance ajoutés
|
||||||
|
|
||||||
|
### Sécurité
|
||||||
|
- [ ] Pas de vulnérabilités introduites
|
||||||
|
- [ ] Validation des entrées utilisateur
|
||||||
|
- [ ] Gestion sécurisée des secrets
|
||||||
|
|
||||||
|
### Tests
|
||||||
|
- [ ] Couverture de tests suffisante
|
||||||
|
- [ ] Tests pour les cas d'erreur
|
||||||
|
- [ ] Tests d'intégration si nécessaire
|
||||||
|
|
||||||
|
### Documentation
|
||||||
|
- [ ] Code auto-documenté
|
||||||
|
- [ ] Documentation mise à jour
|
||||||
|
- [ ] Exemples fournis
|
||||||
|
|
||||||
|
## 🚀 Déploiement
|
||||||
|
|
||||||
|
### Impact sur le Déploiement
|
||||||
|
- [ ] Aucun impact
|
||||||
|
- [ ] Migration de données requise
|
||||||
|
- [ ] Changement de configuration
|
||||||
|
- [ ] Redémarrage des services
|
||||||
|
|
||||||
|
### Étapes de Déploiement
|
||||||
|
```bash
|
||||||
|
# Étapes pour déployer les changements
|
||||||
|
```
|
||||||
|
|
||||||
|
## 📊 Métriques
|
||||||
|
|
||||||
|
### Impact sur les Performances
|
||||||
|
- Temps de réponse : +/- X%
|
||||||
|
- Utilisation mémoire : +/- X%
|
||||||
|
- Utilisation CPU : +/- X%
|
||||||
|
|
||||||
|
### Impact sur la Stabilité
|
||||||
|
- Taux d'erreur : +/- X%
|
||||||
|
- Disponibilité : +/- X%
|
||||||
|
|
||||||
|
## 🔄 Compatibilité
|
||||||
|
|
||||||
|
### Compatibilité Ascendante
|
||||||
|
- [ ] Compatible avec les versions précédentes
|
||||||
|
- [ ] Migration automatique
|
||||||
|
- [ ] Migration manuelle requise
|
||||||
|
|
||||||
|
### Compatibilité Descendante
|
||||||
|
- [ ] Compatible avec les futures versions
|
||||||
|
- [ ] API stable
|
||||||
|
- [ ] Configuration stable
|
||||||
|
|
||||||
|
## 🎯 Critères de Succès
|
||||||
|
|
||||||
|
- [ ] Critère 1
|
||||||
|
- [ ] Critère 2
|
||||||
|
- [ ] Critère 3
|
||||||
|
|
||||||
|
## 📝 Notes Supplémentaires
|
||||||
|
|
||||||
|
Informations supplémentaires importantes pour les reviewers.
|
||||||
|
|
||||||
|
## 🔗 Liens Utiles
|
||||||
|
|
||||||
|
- [Documentation](docs/)
|
||||||
|
- [Tests](tests/)
|
||||||
|
- [Issues liées](https://git.4nkweb.com/4nk/4NK_node/issues)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
**Merci pour votre contribution !** 🙏
|
||||||
|
@ -1,25 +1,32 @@
|
|||||||
name: CI - sdk_relay
|
name: CI - 4NK Node
|
||||||
|
|
||||||
on:
|
on:
|
||||||
push:
|
push:
|
||||||
branches: [ main, develop, docker-support ]
|
branches: [ main, develop ]
|
||||||
pull_request:
|
pull_request:
|
||||||
branches: [ main, develop, docker-support ]
|
branches: [ main, develop ]
|
||||||
|
|
||||||
env:
|
env:
|
||||||
RUST_VERSION: 'stable'
|
RUST_VERSION: '1.70'
|
||||||
|
DOCKER_COMPOSE_VERSION: '2.20.0'
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
build-test:
|
# Job de vérification du code
|
||||||
|
code-quality:
|
||||||
|
name: Code Quality
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v3
|
- name: Checkout code
|
||||||
|
uses: actions/checkout@v3
|
||||||
|
|
||||||
- name: Setup Rust
|
- name: Setup Rust
|
||||||
uses: actions-rs/toolchain@v1
|
uses: actions-rs/toolchain@v1
|
||||||
with:
|
with:
|
||||||
toolchain: ${{ env.RUST_VERSION }}
|
toolchain: ${{ env.RUST_VERSION }}
|
||||||
override: true
|
override: true
|
||||||
- name: Cache cargo
|
|
||||||
|
- name: Cache Rust dependencies
|
||||||
uses: actions/cache@v3
|
uses: actions/cache@v3
|
||||||
with:
|
with:
|
||||||
path: |
|
path: |
|
||||||
@ -29,23 +36,310 @@ jobs:
|
|||||||
key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}
|
key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}
|
||||||
restore-keys: |
|
restore-keys: |
|
||||||
${{ runner.os }}-cargo-
|
${{ runner.os }}-cargo-
|
||||||
- name: Fmt
|
|
||||||
run: cargo fmt --all -- --check
|
|
||||||
- name: Clippy
|
|
||||||
run: cargo clippy --all-targets -- -D warnings
|
|
||||||
- name: Tests
|
|
||||||
run: cargo test --all
|
|
||||||
|
|
||||||
security:
|
- name: Run clippy
|
||||||
|
run: |
|
||||||
|
cd sdk_relay
|
||||||
|
cargo clippy --all-targets --all-features -- -D warnings
|
||||||
|
|
||||||
|
- name: Run rustfmt
|
||||||
|
run: |
|
||||||
|
cd sdk_relay
|
||||||
|
cargo fmt --all -- --check
|
||||||
|
|
||||||
|
- name: Check documentation
|
||||||
|
run: |
|
||||||
|
cd sdk_relay
|
||||||
|
cargo doc --no-deps
|
||||||
|
|
||||||
|
- name: Check for TODO/FIXME
|
||||||
|
run: |
|
||||||
|
if grep -r "TODO\|FIXME" . --exclude-dir=.git --exclude-dir=target; then
|
||||||
|
echo "Found TODO/FIXME comments. Please address them."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Job de tests unitaires
|
||||||
|
unit-tests:
|
||||||
|
name: Unit Tests
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v3
|
- name: Checkout code
|
||||||
|
uses: actions/checkout@v3
|
||||||
|
|
||||||
- name: Setup Rust
|
- name: Setup Rust
|
||||||
uses: actions-rs/toolchain@v1
|
uses: actions-rs/toolchain@v1
|
||||||
with:
|
with:
|
||||||
toolchain: ${{ env.RUST_VERSION }}
|
toolchain: ${{ env.RUST_VERSION }}
|
||||||
override: true
|
override: true
|
||||||
- name: Cargo audit
|
|
||||||
|
- name: Cache Rust dependencies
|
||||||
|
uses: actions/cache@v3
|
||||||
|
with:
|
||||||
|
path: |
|
||||||
|
~/.cargo/registry
|
||||||
|
~/.cargo/git
|
||||||
|
target
|
||||||
|
key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}
|
||||||
|
restore-keys: |
|
||||||
|
${{ runner.os }}-cargo-
|
||||||
|
|
||||||
|
- name: Run unit tests
|
||||||
run: |
|
run: |
|
||||||
cargo install cargo-audit || true
|
cd sdk_relay
|
||||||
cargo audit --deny warnings || true
|
cargo test --lib --bins
|
||||||
|
|
||||||
|
- name: Run integration tests
|
||||||
|
run: |
|
||||||
|
cd sdk_relay
|
||||||
|
cargo test --tests
|
||||||
|
|
||||||
|
# Job de tests d'intégration
|
||||||
|
integration-tests:
|
||||||
|
name: Integration Tests
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
|
services:
|
||||||
|
docker:
|
||||||
|
image: docker:24.0.5
|
||||||
|
options: >-
|
||||||
|
--health-cmd "docker info"
|
||||||
|
--health-interval 10s
|
||||||
|
--health-timeout 5s
|
||||||
|
--health-retries 5
|
||||||
|
ports:
|
||||||
|
- 2375:2375
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: Checkout code
|
||||||
|
uses: actions/checkout@v3
|
||||||
|
|
||||||
|
- name: Setup Docker Buildx
|
||||||
|
uses: docker/setup-buildx-action@v3
|
||||||
|
|
||||||
|
- name: Build Docker images
|
||||||
|
run: |
|
||||||
|
docker build -t 4nk-node-bitcoin ./bitcoin
|
||||||
|
docker build -t 4nk-node-blindbit ./blindbit
|
||||||
|
docker build -t 4nk-node-sdk-relay -f ./sdk_relay/Dockerfile ..
|
||||||
|
|
||||||
|
- name: Run integration tests
|
||||||
|
run: |
|
||||||
|
# Tests de connectivité de base
|
||||||
|
./tests/run_connectivity_tests.sh || true
|
||||||
|
|
||||||
|
# Tests d'intégration
|
||||||
|
./tests/run_integration_tests.sh || true
|
||||||
|
|
||||||
|
- name: Upload test results
|
||||||
|
uses: actions/upload-artifact@v3
|
||||||
|
if: always()
|
||||||
|
with:
|
||||||
|
name: test-results
|
||||||
|
path: |
|
||||||
|
tests/logs/
|
||||||
|
tests/reports/
|
||||||
|
retention-days: 7
|
||||||
|
|
||||||
|
# Job de tests de sécurité
|
||||||
|
security-tests:
|
||||||
|
name: Security Tests
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: Checkout code
|
||||||
|
uses: actions/checkout@v3
|
||||||
|
|
||||||
|
- name: Setup Rust
|
||||||
|
uses: actions-rs/toolchain@v1
|
||||||
|
with:
|
||||||
|
toolchain: ${{ env.RUST_VERSION }}
|
||||||
|
override: true
|
||||||
|
|
||||||
|
- name: Run cargo audit
|
||||||
|
run: |
|
||||||
|
cd sdk_relay
|
||||||
|
cargo audit --deny warnings
|
||||||
|
|
||||||
|
- name: Check for secrets
|
||||||
|
run: |
|
||||||
|
# Vérifier les secrets potentiels
|
||||||
|
if grep -r "password\|secret\|key\|token" . --exclude-dir=.git --exclude-dir=target --exclude=*.md; then
|
||||||
|
echo "Potential secrets found. Please review."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
- name: Check file permissions
|
||||||
|
run: |
|
||||||
|
# Vérifier les permissions sensibles
|
||||||
|
find . -type f -perm /0111 -name "*.conf" -o -name "*.key" -o -name "*.pem" | while read file; do
|
||||||
|
if [[ $(stat -c %a "$file") != "600" ]]; then
|
||||||
|
echo "Warning: $file has insecure permissions"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
# Job de build et test Docker
|
||||||
|
docker-build:
|
||||||
|
name: Docker Build & Test
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
|
services:
|
||||||
|
docker:
|
||||||
|
image: docker:24.0.5
|
||||||
|
options: >-
|
||||||
|
--health-cmd "docker info"
|
||||||
|
--health-interval 10s
|
||||||
|
--health-timeout 5s
|
||||||
|
--health-retries 5
|
||||||
|
ports:
|
||||||
|
- 2375:2375
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: Checkout code
|
||||||
|
uses: actions/checkout@v3
|
||||||
|
|
||||||
|
- name: Setup Docker Buildx
|
||||||
|
uses: docker/setup-buildx-action@v3
|
||||||
|
|
||||||
|
- name: Build and test Bitcoin Core
|
||||||
|
run: |
|
||||||
|
docker build -t 4nk-node-bitcoin:test ./bitcoin
|
||||||
|
docker run --rm 4nk-node-bitcoin:test bitcoin-cli --version
|
||||||
|
|
||||||
|
- name: Build and test Blindbit
|
||||||
|
run: |
|
||||||
|
docker build -t 4nk-node-blindbit:test ./blindbit
|
||||||
|
docker run --rm 4nk-node-blindbit:test --version || true
|
||||||
|
|
||||||
|
- name: Build and test SDK Relay
|
||||||
|
run: |
|
||||||
|
docker build -t 4nk-node-sdk-relay:test -f ./sdk_relay/Dockerfile ..
|
||||||
|
docker run --rm 4nk-node-sdk-relay:test --version || true
|
||||||
|
|
||||||
|
- name: Test Docker Compose
|
||||||
|
run: |
|
||||||
|
docker-compose config
|
||||||
|
docker-compose build --no-cache
|
||||||
|
|
||||||
|
# Job de tests de documentation
|
||||||
|
documentation-tests:
|
||||||
|
name: Documentation Tests
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: Checkout code
|
||||||
|
uses: actions/checkout@v3
|
||||||
|
|
||||||
|
- name: Check markdown links
|
||||||
|
run: |
|
||||||
|
# Vérification basique des liens markdown
|
||||||
|
find . -name "*.md" -exec grep -l "\[.*\](" {} \; | while read file; do
|
||||||
|
echo "Checking links in $file"
|
||||||
|
done
|
||||||
|
|
||||||
|
- name: Check documentation structure
|
||||||
|
run: |
|
||||||
|
# Vérifier la présence des fichiers de documentation essentiels
|
||||||
|
required_files=(
|
||||||
|
"README.md"
|
||||||
|
"LICENSE"
|
||||||
|
"CONTRIBUTING.md"
|
||||||
|
"CHANGELOG.md"
|
||||||
|
"CODE_OF_CONDUCT.md"
|
||||||
|
"SECURITY.md"
|
||||||
|
"docs/INDEX.md"
|
||||||
|
"docs/INSTALLATION.md"
|
||||||
|
"docs/USAGE.md"
|
||||||
|
)
|
||||||
|
|
||||||
|
for file in "${required_files[@]}"; do
|
||||||
|
if [[ ! -f "$file" ]]; then
|
||||||
|
echo "Missing required documentation file: $file"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
- name: Validate documentation
|
||||||
|
run: |
|
||||||
|
# Vérifier la cohérence de la documentation
|
||||||
|
if ! grep -q "4NK Node" README.md; then
|
||||||
|
echo "README.md should mention '4NK Node'"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Job de release guard (cohérence release)
|
||||||
|
release-guard:
|
||||||
|
name: Release Guard
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
needs: [code-quality, unit-tests, documentation-tests]
|
||||||
|
steps:
|
||||||
|
- name: Checkout code
|
||||||
|
uses: actions/checkout@v3
|
||||||
|
|
||||||
|
- name: Ensure guard scripts are executable
|
||||||
|
run: |
|
||||||
|
chmod +x scripts/release/guard.sh || true
|
||||||
|
chmod +x scripts/checks/version_alignment.sh || true
|
||||||
|
|
||||||
|
- name: Version alignment check
|
||||||
|
run: |
|
||||||
|
if [ -f scripts/checks/version_alignment.sh ]; then
|
||||||
|
./scripts/checks/version_alignment.sh
|
||||||
|
else
|
||||||
|
echo "No version alignment script (ok)"
|
||||||
|
fi
|
||||||
|
|
||||||
|
- name: Release guard (CI verify)
|
||||||
|
env:
|
||||||
|
RELEASE_TYPE: ci-verify
|
||||||
|
run: |
|
||||||
|
if [ -f scripts/release/guard.sh ]; then
|
||||||
|
./scripts/release/guard.sh
|
||||||
|
else
|
||||||
|
echo "No guard script (ok)"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Job de tests de performance
|
||||||
|
performance-tests:
|
||||||
|
name: Performance Tests
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: Checkout code
|
||||||
|
uses: actions/checkout@v3
|
||||||
|
|
||||||
|
- name: Setup Rust
|
||||||
|
uses: actions-rs/toolchain@v1
|
||||||
|
with:
|
||||||
|
toolchain: ${{ env.RUST_VERSION }}
|
||||||
|
override: true
|
||||||
|
|
||||||
|
- name: Run performance tests
|
||||||
|
run: |
|
||||||
|
cd sdk_relay
|
||||||
|
cargo test --release --test performance_tests || true
|
||||||
|
|
||||||
|
- name: Check memory usage
|
||||||
|
run: |
|
||||||
|
# Tests de base de consommation mémoire
|
||||||
|
echo "Performance tests completed"
|
||||||
|
|
||||||
|
# Job de notification
|
||||||
|
notify:
|
||||||
|
name: Notify
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
needs: [code-quality, unit-tests, integration-tests, security-tests, docker-build, documentation-tests]
|
||||||
|
if: always()
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: Notify success
|
||||||
|
if: needs.code-quality.result == 'success' && needs.unit-tests.result == 'success' && needs.integration-tests.result == 'success' && needs.security-tests.result == 'success' && needs.docker-build.result == 'success' && needs.documentation-tests.result == 'success'
|
||||||
|
run: |
|
||||||
|
echo "✅ All tests passed successfully!"
|
||||||
|
|
||||||
|
- name: Notify failure
|
||||||
|
if: needs.code-quality.result == 'failure' || needs.unit-tests.result == 'failure' || needs.integration-tests.result == 'failure' || needs.security-tests.result == 'failure' || needs.docker-build.result == 'failure' || needs.documentation-tests.result == 'failure'
|
||||||
|
run: |
|
||||||
|
echo "❌ Some tests failed!"
|
||||||
|
exit 1
|
||||||
|
@ -1,99 +0,0 @@
|
|||||||
---
|
|
||||||
name: Bug Report
|
|
||||||
about: Signaler un bug pour nous aider à améliorer 4NK Node
|
|
||||||
title: '[BUG] '
|
|
||||||
labels: ['bug', 'needs-triage']
|
|
||||||
assignees: ''
|
|
||||||
---
|
|
||||||
|
|
||||||
> Ce fichier est un modèle (template). Adaptez les champs à votre projet dérivé.
|
|
||||||
|
|
||||||
## 🐛 Description du Bug
|
|
||||||
|
|
||||||
Description claire et concise du problème.
|
|
||||||
|
|
||||||
## 🔄 Étapes pour Reproduire
|
|
||||||
|
|
||||||
1. Aller à '...'
|
|
||||||
2. Cliquer sur '...'
|
|
||||||
3. Faire défiler jusqu'à '...'
|
|
||||||
4. Voir l'erreur
|
|
||||||
|
|
||||||
## ✅ Comportement Attendu
|
|
||||||
|
|
||||||
Description de ce qui devrait se passer.
|
|
||||||
|
|
||||||
## ❌ Comportement Actuel
|
|
||||||
|
|
||||||
Description de ce qui se passe actuellement.
|
|
||||||
|
|
||||||
## 📸 Capture d'Écran
|
|
||||||
|
|
||||||
Si applicable, ajoutez une capture d'écran pour expliquer votre problème.
|
|
||||||
|
|
||||||
## 💻 Informations Système
|
|
||||||
|
|
||||||
- **OS** : [ex: Ubuntu 20.04, macOS 12.0, Windows 11]
|
|
||||||
- **Docker** : [ex: 20.10.0]
|
|
||||||
- **Docker Compose** : [ex: 2.0.0]
|
|
||||||
- **Version 4NK Node** : [ex: v1.0.0]
|
|
||||||
- **Architecture** : [ex: x86_64, ARM64]
|
|
||||||
|
|
||||||
## 📋 Configuration
|
|
||||||
|
|
||||||
### Services Actifs
|
|
||||||
```bash
|
|
||||||
docker ps
|
|
||||||
```
|
|
||||||
|
|
||||||
### Variables d'Environnement
|
|
||||||
```bash
|
|
||||||
# Bitcoin Core
|
|
||||||
BITCOIN_NETWORK=signet
|
|
||||||
BITCOIN_RPC_PORT=18443
|
|
||||||
|
|
||||||
# Blindbit
|
|
||||||
BLINDBIT_PORT=8000
|
|
||||||
|
|
||||||
# SDK Relay
|
|
||||||
SDK_RELAY_PORTS=8090-8095
|
|
||||||
```
|
|
||||||
|
|
||||||
## 📝 Logs
|
|
||||||
|
|
||||||
### Logs Pertinents
|
|
||||||
```
|
|
||||||
Logs pertinents ici
|
|
||||||
```
|
|
||||||
|
|
||||||
### Logs d'Erreur
|
|
||||||
```
|
|
||||||
Logs d'erreur ici
|
|
||||||
```
|
|
||||||
|
|
||||||
### Logs de Debug
|
|
||||||
```
|
|
||||||
Logs de debug ici (si RUST_LOG=debug)
|
|
||||||
```
|
|
||||||
|
|
||||||
## 🔧 Tentatives de Résolution
|
|
||||||
|
|
||||||
- [ ] Redémarrage des services
|
|
||||||
- [ ] Nettoyage des volumes Docker
|
|
||||||
- [ ] Vérification de la connectivité réseau
|
|
||||||
- [ ] Mise à jour des dépendances
|
|
||||||
- [ ] Vérification de la configuration
|
|
||||||
|
|
||||||
## 📚 Contexte Supplémentaire
|
|
||||||
|
|
||||||
Toute autre information pertinente sur le problème.
|
|
||||||
|
|
||||||
## 🔗 Liens Utiles
|
|
||||||
|
|
||||||
- [Documentation](docs/)
|
|
||||||
- [Guide de Dépannage](docs/TROUBLESHOOTING.md)
|
|
||||||
- [Issues Similaires](https://git.4nkweb.com/4nk/4NK_node/issues?q=is%3Aissue+is%3Aopen+label%3Abug)
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
**Merci de votre contribution !** 🙏
|
|
@ -1,158 +0,0 @@
|
|||||||
---
|
|
||||||
name: Feature Request
|
|
||||||
about: Proposer une nouvelle fonctionnalité pour 4NK Node
|
|
||||||
title: '[FEATURE] '
|
|
||||||
labels: ['enhancement', 'needs-triage']
|
|
||||||
assignees: ''
|
|
||||||
---
|
|
||||||
|
|
||||||
> Ce fichier est un modèle (template). Adaptez les champs à votre projet dérivé.
|
|
||||||
|
|
||||||
## 🚀 Résumé
|
|
||||||
|
|
||||||
Description claire et concise de la fonctionnalité souhaitée.
|
|
||||||
|
|
||||||
## 💡 Motivation
|
|
||||||
|
|
||||||
Pourquoi cette fonctionnalité est-elle nécessaire ? Quels problèmes résout-elle ?
|
|
||||||
|
|
||||||
### Problèmes Actuels
|
|
||||||
- Problème 1
|
|
||||||
- Problème 2
|
|
||||||
- Problème 3
|
|
||||||
|
|
||||||
### Avantages de la Solution
|
|
||||||
- Avantage 1
|
|
||||||
- Avantage 2
|
|
||||||
- Avantage 3
|
|
||||||
|
|
||||||
## 🎯 Proposition
|
|
||||||
|
|
||||||
Description détaillée de la fonctionnalité proposée.
|
|
||||||
|
|
||||||
### Fonctionnalités Principales
|
|
||||||
- [ ] Fonctionnalité 1
|
|
||||||
- [ ] Fonctionnalité 2
|
|
||||||
- [ ] Fonctionnalité 3
|
|
||||||
|
|
||||||
### Interface Utilisateur
|
|
||||||
Description de l'interface utilisateur si applicable.
|
|
||||||
|
|
||||||
### API Changes
|
|
||||||
Description des changements d'API si applicable.
|
|
||||||
|
|
||||||
## 🔄 Alternatives Considérées
|
|
||||||
|
|
||||||
Autres solutions envisagées et pourquoi elles n'ont pas été choisies.
|
|
||||||
|
|
||||||
### Alternative 1
|
|
||||||
- **Description** : ...
|
|
||||||
- **Pourquoi rejetée** : ...
|
|
||||||
|
|
||||||
### Alternative 2
|
|
||||||
- **Description** : ...
|
|
||||||
- **Pourquoi rejetée** : ...
|
|
||||||
|
|
||||||
## 📊 Impact
|
|
||||||
|
|
||||||
### Impact sur les Utilisateurs
|
|
||||||
- Impact positif 1
|
|
||||||
- Impact positif 2
|
|
||||||
- Impact négatif potentiel (si applicable)
|
|
||||||
|
|
||||||
### Impact sur l'Architecture
|
|
||||||
- Changements nécessaires
|
|
||||||
- Compatibilité avec l'existant
|
|
||||||
- Performance
|
|
||||||
|
|
||||||
### Impact sur la Maintenance
|
|
||||||
- Complexité ajoutée
|
|
||||||
- Tests nécessaires
|
|
||||||
- Documentation requise
|
|
||||||
|
|
||||||
## 💻 Exemples d'Utilisation
|
|
||||||
|
|
||||||
### Cas d'Usage 1
|
|
||||||
```bash
|
|
||||||
# Exemple de commande ou configuration
|
|
||||||
```
|
|
||||||
|
|
||||||
### Cas d'Usage 2
|
|
||||||
```python
|
|
||||||
# Exemple de code Python
|
|
||||||
```
|
|
||||||
|
|
||||||
### Cas d'Usage 3
|
|
||||||
```javascript
|
|
||||||
// Exemple de code JavaScript
|
|
||||||
```
|
|
||||||
|
|
||||||
## 🧪 Tests
|
|
||||||
|
|
||||||
### Tests Nécessaires
|
|
||||||
- [ ] Tests unitaires
|
|
||||||
- [ ] Tests d'intégration
|
|
||||||
- [ ] Tests de performance
|
|
||||||
- [ ] Tests de sécurité
|
|
||||||
- [ ] Tests de compatibilité
|
|
||||||
|
|
||||||
### Scénarios de Test
|
|
||||||
- Scénario 1
|
|
||||||
- Scénario 2
|
|
||||||
- Scénario 3
|
|
||||||
|
|
||||||
## 📚 Documentation
|
|
||||||
|
|
||||||
### Documentation Requise
|
|
||||||
- [ ] Guide d'utilisation
|
|
||||||
- [ ] Documentation API
|
|
||||||
- [ ] Exemples de code
|
|
||||||
- [ ] Guide de migration
|
|
||||||
- [ ] FAQ
|
|
||||||
|
|
||||||
## 🔧 Implémentation
|
|
||||||
|
|
||||||
### Étapes Proposées
|
|
||||||
1. **Phase 1** : [Description]
|
|
||||||
2. **Phase 2** : [Description]
|
|
||||||
3. **Phase 3** : [Description]
|
|
||||||
|
|
||||||
### Estimation de Temps
|
|
||||||
- **Développement** : X jours/semaines
|
|
||||||
- **Tests** : X jours/semaines
|
|
||||||
- **Documentation** : X jours/semaines
|
|
||||||
- **Total** : X jours/semaines
|
|
||||||
|
|
||||||
### Ressources Nécessaires
|
|
||||||
- Développeur(s)
|
|
||||||
- Testeur(s)
|
|
||||||
- Documentateur(s)
|
|
||||||
- Infrastructure
|
|
||||||
|
|
||||||
## 🎯 Critères de Succès
|
|
||||||
|
|
||||||
Comment mesurer le succès de cette fonctionnalité ?
|
|
||||||
|
|
||||||
- [ ] Critère 1
|
|
||||||
- [ ] Critère 2
|
|
||||||
- [ ] Critère 3
|
|
||||||
|
|
||||||
## 🔗 Liens Utiles
|
|
||||||
|
|
||||||
- [Documentation existante](docs/)
|
|
||||||
- [Issues similaires](https://git.4nkweb.com/4nk/4NK_node/issues?q=is%3Aissue+is%3Aopen+label%3Aenhancement)
|
|
||||||
- [Roadmap](https://git.4nkweb.com/4nk/4NK_node/projects)
|
|
||||||
- [Discussions](https://git.4nkweb.com/4nk/4NK_node/issues)
|
|
||||||
|
|
||||||
## 📋 Checklist
|
|
||||||
|
|
||||||
- [ ] J'ai vérifié que cette fonctionnalité n'existe pas déjà
|
|
||||||
- [ ] J'ai lu la documentation existante
|
|
||||||
- [ ] J'ai vérifié les issues similaires
|
|
||||||
- [ ] J'ai fourni des exemples d'utilisation
|
|
||||||
- [ ] J'ai considéré l'impact sur l'existant
|
|
||||||
- [ ] J'ai proposé des tests
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
**Merci de votre contribution à l'amélioration de 4NK Node !** 🌟
|
|
@ -1,183 +0,0 @@
|
|||||||
# Pull Request - 4NK Node
|
|
||||||
|
|
||||||
> Ce fichier est un modèle PR. Adaptez les sections à votre projet dérivé.
|
|
||||||
|
|
||||||
## 📋 Description
|
|
||||||
|
|
||||||
Description claire et concise des changements apportés.
|
|
||||||
|
|
||||||
### Type de Changement
|
|
||||||
- [ ] 🐛 Bug fix
|
|
||||||
- [ ] ✨ Nouvelle fonctionnalité
|
|
||||||
- [ ] 📚 Documentation
|
|
||||||
- [ ] 🧪 Tests
|
|
||||||
- [ ] 🔧 Refactoring
|
|
||||||
- [ ] 🚀 Performance
|
|
||||||
- [ ] 🔒 Sécurité
|
|
||||||
- [ ] 🎨 Style/UI
|
|
||||||
- [ ] 🏗️ Architecture
|
|
||||||
- [ ] 📦 Build/CI
|
|
||||||
|
|
||||||
### Composants Affectés
|
|
||||||
- [ ] Bitcoin Core
|
|
||||||
- [ ] Blindbit
|
|
||||||
- [ ] SDK Relay
|
|
||||||
- [ ] Tor
|
|
||||||
- [ ] Docker/Infrastructure
|
|
||||||
- [ ] Tests
|
|
||||||
- [ ] Documentation
|
|
||||||
- [ ] Scripts
|
|
||||||
|
|
||||||
## 🔗 Issue(s) Liée(s)
|
|
||||||
|
|
||||||
Fixes #(issue)
|
|
||||||
Relates to #(issue)
|
|
||||||
|
|
||||||
## 🧪 Tests
|
|
||||||
|
|
||||||
### Tests Exécutés
|
|
||||||
- [ ] Tests unitaires
|
|
||||||
- [ ] Tests d'intégration
|
|
||||||
- [ ] Tests de connectivité
|
|
||||||
- [ ] Tests externes
|
|
||||||
- [ ] Tests de performance
|
|
||||||
- [ ] Release Guard local (`RELEASE_TYPE=ci-verify scripts/release/guard.sh`)
|
|
||||||
|
|
||||||
### Commandes de Test
|
|
||||||
```bash
|
|
||||||
# Tests complets
|
|
||||||
./tests/run_all_tests.sh
|
|
||||||
|
|
||||||
# Tests spécifiques
|
|
||||||
./tests/run_unit_tests.sh
|
|
||||||
./tests/run_integration_tests.sh
|
|
||||||
```
|
|
||||||
|
|
||||||
### Résultats des Tests
|
|
||||||
```
|
|
||||||
Résultats des tests ici
|
|
||||||
```
|
|
||||||
|
|
||||||
## 📸 Captures d'Écran
|
|
||||||
|
|
||||||
Si applicable, ajoutez des captures d'écran pour les changements visuels.
|
|
||||||
|
|
||||||
## 🔧 Changements Techniques
|
|
||||||
|
|
||||||
### Fichiers Modifiés
|
|
||||||
- `fichier1.rs` - Description des changements
|
|
||||||
- `fichier2.py` - Description des changements
|
|
||||||
- `docker-compose.yml` - Description des changements
|
|
||||||
|
|
||||||
### Nouveaux Fichiers
|
|
||||||
- `nouveau_fichier.rs` - Description
|
|
||||||
- `nouveau_script.sh` - Description
|
|
||||||
|
|
||||||
### Fichiers Supprimés
|
|
||||||
- `ancien_fichier.rs` - Raison de la suppression
|
|
||||||
|
|
||||||
### Changements de Configuration
|
|
||||||
```yaml
|
|
||||||
# Exemple de changement de configuration
|
|
||||||
service:
|
|
||||||
new_option: value
|
|
||||||
```
|
|
||||||
|
|
||||||
## 📚 Documentation
|
|
||||||
|
|
||||||
### Documentation Mise à Jour
|
|
||||||
- [ ] README.md
|
|
||||||
- [ ] docs/INSTALLATION.md
|
|
||||||
- [ ] docs/USAGE.md
|
|
||||||
- [ ] docs/API.md
|
|
||||||
- [ ] docs/ARCHITECTURE.md
|
|
||||||
|
|
||||||
### Nouvelle Documentation
|
|
||||||
- [ ] Nouveau guide créé
|
|
||||||
- [ ] Exemples ajoutés
|
|
||||||
- [ ] API documentée
|
|
||||||
|
|
||||||
## 🔍 Code Review Checklist
|
|
||||||
|
|
||||||
### Code Quality
|
|
||||||
- [ ] Le code suit les standards du projet
|
|
||||||
- [ ] Les noms de variables/fonctions sont clairs
|
|
||||||
- [ ] Les commentaires sont appropriés
|
|
||||||
- [ ] Pas de code mort ou commenté
|
|
||||||
- [ ] Gestion d'erreurs appropriée
|
|
||||||
|
|
||||||
### Performance
|
|
||||||
- [ ] Pas de régression de performance
|
|
||||||
- [ ] Optimisations appliquées si nécessaire
|
|
||||||
- [ ] Tests de performance ajoutés
|
|
||||||
|
|
||||||
### Sécurité
|
|
||||||
- [ ] Pas de vulnérabilités introduites
|
|
||||||
- [ ] Validation des entrées utilisateur
|
|
||||||
- [ ] Gestion sécurisée des secrets
|
|
||||||
|
|
||||||
### Tests
|
|
||||||
- [ ] Couverture de tests suffisante
|
|
||||||
- [ ] Tests pour les cas d'erreur
|
|
||||||
- [ ] Tests d'intégration si nécessaire
|
|
||||||
|
|
||||||
### Documentation
|
|
||||||
- [ ] Code auto-documenté
|
|
||||||
- [ ] Documentation mise à jour
|
|
||||||
- [ ] Exemples fournis
|
|
||||||
|
|
||||||
## 🚀 Déploiement
|
|
||||||
|
|
||||||
### Impact sur le Déploiement
|
|
||||||
- [ ] Aucun impact
|
|
||||||
- [ ] Migration de données requise
|
|
||||||
- [ ] Changement de configuration
|
|
||||||
- [ ] Redémarrage des services
|
|
||||||
|
|
||||||
### Étapes de Déploiement
|
|
||||||
```bash
|
|
||||||
# Étapes pour déployer les changements
|
|
||||||
```
|
|
||||||
|
|
||||||
## 📊 Métriques
|
|
||||||
|
|
||||||
### Impact sur les Performances
|
|
||||||
- Temps de réponse : +/- X%
|
|
||||||
- Utilisation mémoire : +/- X%
|
|
||||||
- Utilisation CPU : +/- X%
|
|
||||||
|
|
||||||
### Impact sur la Stabilité
|
|
||||||
- Taux d'erreur : +/- X%
|
|
||||||
- Disponibilité : +/- X%
|
|
||||||
|
|
||||||
## 🔄 Compatibilité
|
|
||||||
|
|
||||||
### Compatibilité Ascendante
|
|
||||||
- [ ] Compatible avec les versions précédentes
|
|
||||||
- [ ] Migration automatique
|
|
||||||
- [ ] Migration manuelle requise
|
|
||||||
|
|
||||||
### Compatibilité Descendante
|
|
||||||
- [ ] Compatible avec les futures versions
|
|
||||||
- [ ] API stable
|
|
||||||
- [ ] Configuration stable
|
|
||||||
|
|
||||||
## 🎯 Critères de Succès
|
|
||||||
|
|
||||||
- [ ] Critère 1
|
|
||||||
- [ ] Critère 2
|
|
||||||
- [ ] Critère 3
|
|
||||||
|
|
||||||
## 📝 Notes Supplémentaires
|
|
||||||
|
|
||||||
Informations supplémentaires importantes pour les reviewers.
|
|
||||||
|
|
||||||
## 🔗 Liens Utiles
|
|
||||||
|
|
||||||
- [Documentation](docs/)
|
|
||||||
- [Tests](tests/)
|
|
||||||
- [Issues liées](https://git.4nkweb.com/4nk/4NK_node/issues)
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
**Merci pour votre contribution !** 🙏
|
|
@ -1,14 +0,0 @@
|
|||||||
# LOCAL_OVERRIDES.yml — dérogations locales contrôlées (fichier modèle)
|
|
||||||
overrides:
|
|
||||||
- path: ".gitea/workflows/ci.yml"
|
|
||||||
reason: "spécificité d’environnement"
|
|
||||||
owner: "@maintainer_handle"
|
|
||||||
expires: "2025-12-31"
|
|
||||||
- path: "scripts/scripts/auto-ssh-push.sh"
|
|
||||||
reason: "flux particulier temporaire"
|
|
||||||
owner: "@maintainer_handle"
|
|
||||||
expires: "2025-10-01"
|
|
||||||
policy:
|
|
||||||
allow_only_listed_paths: true
|
|
||||||
require_expiry: true
|
|
||||||
audit_in_ci: true
|
|
@ -1,346 +0,0 @@
|
|||||||
# Template CI - 4NK Node (ce fichier est un modèle, adaptez selon votre projet)
|
|
||||||
name: CI - 4NK Node
|
|
||||||
|
|
||||||
on:
|
|
||||||
push:
|
|
||||||
branches: [ main, develop ]
|
|
||||||
pull_request:
|
|
||||||
branches: [ main, develop ]
|
|
||||||
|
|
||||||
env:
|
|
||||||
RUST_VERSION: '1.70'
|
|
||||||
DOCKER_COMPOSE_VERSION: '2.20.0'
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
# Job de vérification du code
|
|
||||||
code-quality:
|
|
||||||
name: Code Quality
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- name: Checkout code
|
|
||||||
uses: actions/checkout@v3
|
|
||||||
|
|
||||||
- name: Setup Rust
|
|
||||||
uses: actions-rs/toolchain@v1
|
|
||||||
with:
|
|
||||||
toolchain: ${{ env.RUST_VERSION }}
|
|
||||||
override: true
|
|
||||||
|
|
||||||
- name: Cache Rust dependencies
|
|
||||||
uses: actions/cache@v3
|
|
||||||
with:
|
|
||||||
path: |
|
|
||||||
~/.cargo/registry
|
|
||||||
~/.cargo/git
|
|
||||||
target
|
|
||||||
key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}
|
|
||||||
restore-keys: |
|
|
||||||
${{ runner.os }}-cargo-
|
|
||||||
|
|
||||||
- name: Run clippy
|
|
||||||
run: |
|
|
||||||
cd sdk_relay
|
|
||||||
cargo clippy --all-targets --all-features -- -D warnings
|
|
||||||
|
|
||||||
- name: Run rustfmt
|
|
||||||
run: |
|
|
||||||
cd sdk_relay
|
|
||||||
cargo fmt --all -- --check
|
|
||||||
|
|
||||||
- name: Check documentation
|
|
||||||
run: |
|
|
||||||
cd sdk_relay
|
|
||||||
cargo doc --no-deps
|
|
||||||
|
|
||||||
- name: Check for TODO/FIXME
|
|
||||||
run: |
|
|
||||||
if grep -r "TODO\|FIXME" . --exclude-dir=.git --exclude-dir=target; then
|
|
||||||
echo "Found TODO/FIXME comments. Please address them."
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Job de tests unitaires
|
|
||||||
unit-tests:
|
|
||||||
name: Unit Tests
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- name: Checkout code
|
|
||||||
uses: actions/checkout@v3
|
|
||||||
|
|
||||||
- name: Setup Rust
|
|
||||||
uses: actions-rs/toolchain@v1
|
|
||||||
with:
|
|
||||||
toolchain: ${{ env.RUST_VERSION }}
|
|
||||||
override: true
|
|
||||||
|
|
||||||
- name: Cache Rust dependencies
|
|
||||||
uses: actions/cache@v3
|
|
||||||
with:
|
|
||||||
path: |
|
|
||||||
~/.cargo/registry
|
|
||||||
~/.cargo/git
|
|
||||||
target
|
|
||||||
key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}
|
|
||||||
restore-keys: |
|
|
||||||
${{ runner.os }}-cargo-
|
|
||||||
|
|
||||||
- name: Run unit tests
|
|
||||||
run: |
|
|
||||||
cd sdk_relay
|
|
||||||
cargo test --lib --bins
|
|
||||||
|
|
||||||
- name: Run integration tests
|
|
||||||
run: |
|
|
||||||
cd sdk_relay
|
|
||||||
cargo test --tests
|
|
||||||
|
|
||||||
# Job de tests d'intégration
|
|
||||||
integration-tests:
|
|
||||||
name: Integration Tests
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
|
|
||||||
services:
|
|
||||||
docker:
|
|
||||||
image: docker:24.0.5
|
|
||||||
options: >-
|
|
||||||
--health-cmd "docker info"
|
|
||||||
--health-interval 10s
|
|
||||||
--health-timeout 5s
|
|
||||||
--health-retries 5
|
|
||||||
ports:
|
|
||||||
- 2375:2375
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- name: Checkout code
|
|
||||||
uses: actions/checkout@v3
|
|
||||||
|
|
||||||
- name: Setup Docker Buildx
|
|
||||||
uses: docker/setup-buildx-action@v3
|
|
||||||
|
|
||||||
- name: Build Docker images
|
|
||||||
run: |
|
|
||||||
docker build -t 4nk-node-bitcoin ./bitcoin
|
|
||||||
docker build -t 4nk-node-blindbit ./blindbit
|
|
||||||
docker build -t 4nk-node-sdk-relay -f ./sdk_relay/Dockerfile ..
|
|
||||||
|
|
||||||
- name: Run integration tests
|
|
||||||
run: |
|
|
||||||
# Tests de connectivité de base
|
|
||||||
./tests/run_connectivity_tests.sh || true
|
|
||||||
|
|
||||||
# Tests d'intégration
|
|
||||||
./tests/run_integration_tests.sh || true
|
|
||||||
|
|
||||||
- name: Upload test results
|
|
||||||
uses: actions/upload-artifact@v3
|
|
||||||
if: always()
|
|
||||||
with:
|
|
||||||
name: test-results
|
|
||||||
path: |
|
|
||||||
tests/logs/
|
|
||||||
tests/reports/
|
|
||||||
retention-days: 7
|
|
||||||
|
|
||||||
# Job de tests de sécurité
|
|
||||||
security-tests:
|
|
||||||
name: Security Tests
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- name: Checkout code
|
|
||||||
uses: actions/checkout@v3
|
|
||||||
|
|
||||||
- name: Setup Rust
|
|
||||||
uses: actions-rs/toolchain@v1
|
|
||||||
with:
|
|
||||||
toolchain: ${{ env.RUST_VERSION }}
|
|
||||||
override: true
|
|
||||||
|
|
||||||
- name: Run cargo audit
|
|
||||||
run: |
|
|
||||||
cd sdk_relay
|
|
||||||
cargo audit --deny warnings
|
|
||||||
|
|
||||||
- name: Check for secrets
|
|
||||||
run: |
|
|
||||||
# Vérifier les secrets potentiels
|
|
||||||
if grep -r "password\|secret\|key\|token" . --exclude-dir=.git --exclude-dir=target --exclude=*.md; then
|
|
||||||
echo "Potential secrets found. Please review."
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
- name: Check file permissions
|
|
||||||
run: |
|
|
||||||
# Vérifier les permissions sensibles
|
|
||||||
find . -type f -perm /0111 -name "*.conf" -o -name "*.key" -o -name "*.pem" | while read file; do
|
|
||||||
if [[ $(stat -c %a "$file") != "600" ]]; then
|
|
||||||
echo "Warning: $file has insecure permissions"
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
|
|
||||||
# Job de build et test Docker
|
|
||||||
docker-build:
|
|
||||||
name: Docker Build & Test
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
|
|
||||||
services:
|
|
||||||
docker:
|
|
||||||
image: docker:24.0.5
|
|
||||||
options: >-
|
|
||||||
--health-cmd "docker info"
|
|
||||||
--health-interval 10s
|
|
||||||
--health-timeout 5s
|
|
||||||
--health-retries 5
|
|
||||||
ports:
|
|
||||||
- 2375:2375
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- name: Checkout code
|
|
||||||
uses: actions/checkout@v3
|
|
||||||
|
|
||||||
- name: Setup Docker Buildx
|
|
||||||
uses: docker/setup-buildx-action@v3
|
|
||||||
|
|
||||||
- name: Build and test Bitcoin Core
|
|
||||||
run: |
|
|
||||||
docker build -t 4nk-node-bitcoin:test ./bitcoin
|
|
||||||
docker run --rm 4nk-node-bitcoin:test bitcoin-cli --version
|
|
||||||
|
|
||||||
- name: Build and test Blindbit
|
|
||||||
run: |
|
|
||||||
docker build -t 4nk-node-blindbit:test ./blindbit
|
|
||||||
docker run --rm 4nk-node-blindbit:test --version || true
|
|
||||||
|
|
||||||
- name: Build and test SDK Relay
|
|
||||||
run: |
|
|
||||||
docker build -t 4nk-node-sdk-relay:test -f ./sdk_relay/Dockerfile ..
|
|
||||||
docker run --rm 4nk-node-sdk-relay:test --version || true
|
|
||||||
|
|
||||||
- name: Test Docker Compose
|
|
||||||
run: |
|
|
||||||
docker-compose config
|
|
||||||
docker-compose build --no-cache
|
|
||||||
|
|
||||||
# Job de tests de documentation
|
|
||||||
documentation-tests:
|
|
||||||
name: Documentation Tests
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- name: Checkout code
|
|
||||||
uses: actions/checkout@v3
|
|
||||||
|
|
||||||
- name: Check markdown links
|
|
||||||
run: |
|
|
||||||
# Vérification basique des liens markdown
|
|
||||||
find . -name "*.md" -exec grep -l "\[.*\](" {} \; | while read file; do
|
|
||||||
echo "Checking links in $file"
|
|
||||||
done
|
|
||||||
|
|
||||||
- name: Check documentation structure
|
|
||||||
run: |
|
|
||||||
# Vérifier la présence des fichiers de documentation essentiels
|
|
||||||
required_files=(
|
|
||||||
"README.md"
|
|
||||||
"LICENSE"
|
|
||||||
"CONTRIBUTING.md"
|
|
||||||
"CHANGELOG.md"
|
|
||||||
"CODE_OF_CONDUCT.md"
|
|
||||||
"SECURITY.md"
|
|
||||||
"docs/INDEX.md"
|
|
||||||
"docs/INSTALLATION.md"
|
|
||||||
"docs/USAGE.md"
|
|
||||||
)
|
|
||||||
|
|
||||||
for file in "${required_files[@]}"; do
|
|
||||||
if [[ ! -f "$file" ]]; then
|
|
||||||
echo "Missing required documentation file: $file"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
|
|
||||||
- name: Validate documentation
|
|
||||||
run: |
|
|
||||||
# Vérifier la cohérence de la documentation
|
|
||||||
if ! grep -q "4NK Node" README.md; then
|
|
||||||
echo "README.md should mention '4NK Node'"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Job de release guard (cohérence release)
|
|
||||||
release-guard:
|
|
||||||
name: Release Guard
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
needs: [code-quality, unit-tests, documentation-tests]
|
|
||||||
steps:
|
|
||||||
- name: Checkout code
|
|
||||||
uses: actions/checkout@v3
|
|
||||||
|
|
||||||
- name: Ensure guard scripts are executable
|
|
||||||
run: |
|
|
||||||
chmod +x scripts/release/guard.sh || true
|
|
||||||
chmod +x scripts/checks/version_alignment.sh || true
|
|
||||||
|
|
||||||
- name: Version alignment check
|
|
||||||
run: |
|
|
||||||
if [ -f scripts/checks/version_alignment.sh ]; then
|
|
||||||
./scripts/checks/version_alignment.sh
|
|
||||||
else
|
|
||||||
echo "No version alignment script (ok)"
|
|
||||||
fi
|
|
||||||
|
|
||||||
- name: Release guard (CI verify)
|
|
||||||
env:
|
|
||||||
RELEASE_TYPE: ci-verify
|
|
||||||
run: |
|
|
||||||
if [ -f scripts/release/guard.sh ]; then
|
|
||||||
./scripts/release/guard.sh
|
|
||||||
else
|
|
||||||
echo "No guard script (ok)"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Job de tests de performance
|
|
||||||
performance-tests:
|
|
||||||
name: Performance Tests
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- name: Checkout code
|
|
||||||
uses: actions/checkout@v3
|
|
||||||
|
|
||||||
- name: Setup Rust
|
|
||||||
uses: actions-rs/toolchain@v1
|
|
||||||
with:
|
|
||||||
toolchain: ${{ env.RUST_VERSION }}
|
|
||||||
override: true
|
|
||||||
|
|
||||||
- name: Run performance tests
|
|
||||||
run: |
|
|
||||||
cd sdk_relay
|
|
||||||
cargo test --release --test performance_tests || true
|
|
||||||
|
|
||||||
- name: Check memory usage
|
|
||||||
run: |
|
|
||||||
# Tests de base de consommation mémoire
|
|
||||||
echo "Performance tests completed"
|
|
||||||
|
|
||||||
# Job de notification
|
|
||||||
notify:
|
|
||||||
name: Notify
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
needs: [code-quality, unit-tests, integration-tests, security-tests, docker-build, documentation-tests]
|
|
||||||
if: always()
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- name: Notify success
|
|
||||||
if: needs.code-quality.result == 'success' && needs.unit-tests.result == 'success' && needs.integration-tests.result == 'success' && needs.security-tests.result == 'success' && needs.docker-build.result == 'success' && needs.documentation-tests.result == 'success'
|
|
||||||
run: |
|
|
||||||
echo "✅ All tests passed successfully!"
|
|
||||||
|
|
||||||
- name: Notify failure
|
|
||||||
if: needs.code-quality.result == 'failure' || needs.unit-tests.result == 'failure' || needs.integration-tests.result == 'failure' || needs.security-tests.result == 'failure' || needs.docker-build.result == 'failure' || needs.documentation-tests.result == 'failure'
|
|
||||||
run: |
|
|
||||||
echo "❌ Some tests failed!"
|
|
||||||
exit 1
|
|
@ -1,39 +0,0 @@
|
|||||||
# .gitea/workflows/template-sync.yml — synchronisation et contrôles d’intégrité (fichier modèle)
|
|
||||||
name: 4NK Template Sync
|
|
||||||
on:
|
|
||||||
schedule: # planification régulière
|
|
||||||
- cron: "0 4 * * 1" # exécution hebdomadaire (UTC)
|
|
||||||
workflow_dispatch: {} # déclenchement manuel
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
check-and-sync:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
- name: Lire TEMPLATE_VERSION et .4nk-sync.yml
|
|
||||||
# Doit charger ref courant, source_repo et périmètre paths
|
|
||||||
|
|
||||||
- name: Récupérer la version publiée du template/4NK_rules
|
|
||||||
# Doit comparer TEMPLATE_VERSION avec ref amont
|
|
||||||
|
|
||||||
- name: Créer branche de synchronisation si divergence
|
|
||||||
# Doit créer chore/template-sync-<date> et préparer un commit
|
|
||||||
|
|
||||||
- name: Synchroniser les chemins autoritatifs
|
|
||||||
# Doit mettre à jour .cursor/**, .gitea/**, AGENTS.md, scripts/**, docs/SSH_UPDATE.md
|
|
||||||
|
|
||||||
- name: Contrôles post-sync (bloquants)
|
|
||||||
# 1) Vérifier présence et exécutable des scripts/*.sh
|
|
||||||
# 2) Vérifier mise à jour CHANGELOG.md et docs/INDEX.md
|
|
||||||
# 3) Vérifier docs/SSH_UPDATE.md si scripts/** a changé
|
|
||||||
# 4) Vérifier absence de secrets en clair dans scripts/**
|
|
||||||
# 5) Vérifier manifest_checksum si publié
|
|
||||||
|
|
||||||
- name: Tests, lint, sécurité statique
|
|
||||||
# Doit exiger un état vert
|
|
||||||
|
|
||||||
- name: Ouvrir PR de synchronisation
|
|
||||||
# Titre: "[template-sync] chore: aligner .cursor/.gitea/AGENTS.md/scripts"
|
|
||||||
# Doit inclure résumé des fichiers modifiés et la version appliquée
|
|
||||||
|
|
||||||
- name: Mettre à jour TEMPLATE_VERSION (dans PR)
|
|
||||||
# Doit remplacer la valeur par la ref appliquée
|
|
@ -1254,3 +1254,4 @@ curl -X POST http://localhost:8091/restart
|
|||||||
---
|
---
|
||||||
|
|
||||||
**Cette documentation décrit tous les flux de données JSON entre les clients et sdk_relay.** 🚀
|
**Cette documentation décrit tous les flux de données JSON entre les clients et sdk_relay.** 🚀
|
||||||
|
|
||||||
|
@ -330,3 +330,4 @@ RUST_LOG=debug,hyper=trace
|
|||||||
---
|
---
|
||||||
|
|
||||||
**Cette architecture garantit un service de relais robuste, performant et évolutif pour l'écosystème 4NK Node.** 🚀
|
**Cette architecture garantit un service de relais robuste, performant et évolutif pour l'écosystème 4NK Node.** 🚀
|
||||||
|
|
||||||
|
@ -626,3 +626,4 @@ export RUST_LOG=sdk_relay::blindbit=debug
|
|||||||
---
|
---
|
||||||
|
|
||||||
**⚙️ Configuration sdk_relay - Optimisée pour vos besoins !** 🚀
|
**⚙️ Configuration sdk_relay - Optimisée pour vos besoins !** 🚀
|
||||||
|
|
||||||
|
@ -30,3 +30,4 @@ cargo test --all
|
|||||||
- `src/` modules (websocket, http, sync, daemon)
|
- `src/` modules (websocket, http, sync, daemon)
|
||||||
- `docs/` documentation utilisateur/technique
|
- `docs/` documentation utilisateur/technique
|
||||||
- `tests/` scripts et artefacts
|
- `tests/` scripts et artefacts
|
||||||
|
|
||||||
|
@ -607,3 +607,4 @@ spec:
|
|||||||
Ces exemples couvrent les cas d'usage les plus courants pour sdk_relay. Adaptez-les selon vos besoins spécifiques !
|
Ces exemples couvrent les cas d'usage les plus courants pour sdk_relay. Adaptez-les selon vos besoins spécifiques !
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -19,3 +19,4 @@
|
|||||||
- Tags SemVer
|
- Tags SemVer
|
||||||
- CHANGELOG mis à jour
|
- CHANGELOG mis à jour
|
||||||
- Artefacts (binaires/images) optionnels
|
- Artefacts (binaires/images) optionnels
|
||||||
|
|
||||||
|
@ -305,3 +305,4 @@ docker run -p 8090:8090 -p 8091:8091 sdk_relay
|
|||||||
---
|
---
|
||||||
|
|
||||||
**📚 Documentation complète pour sdk_relay - Service de relais pour les Silent Payments** 🚀
|
**📚 Documentation complète pour sdk_relay - Service de relais pour les Silent Payments** 🚀
|
||||||
|
|
||||||
|
@ -476,3 +476,4 @@ En cas de problème :
|
|||||||
---
|
---
|
||||||
|
|
||||||
**🚀 Installation terminée ! sdk_relay est prêt à être utilisé.** ✨
|
**🚀 Installation terminée ! sdk_relay est prêt à être utilisé.** ✨
|
||||||
|
|
||||||
|
@ -26,3 +26,4 @@
|
|||||||
- Templates Issues/PR
|
- Templates Issues/PR
|
||||||
- Guide Communauté
|
- Guide Communauté
|
||||||
- Plan de release
|
- Plan de release
|
||||||
|
|
||||||
|
@ -24,3 +24,4 @@
|
|||||||
|
|
||||||
- Scripts d’observation (stats système)
|
- Scripts d’observation (stats système)
|
||||||
- Export métriques endpoints `/metrics`
|
- Export métriques endpoints `/metrics`
|
||||||
|
|
||||||
|
@ -29,3 +29,4 @@
|
|||||||
- Ports 8090/8091 ouverts
|
- Ports 8090/8091 ouverts
|
||||||
- Bitcoin Core RPC OK
|
- Bitcoin Core RPC OK
|
||||||
- Blindbit HTTP OK
|
- Blindbit HTTP OK
|
||||||
|
|
||||||
|
@ -17,3 +17,4 @@
|
|||||||
- CHANGELOG complété
|
- CHANGELOG complété
|
||||||
- Tag créé (`vX.Y.Z`)
|
- Tag créé (`vX.Y.Z`)
|
||||||
- Annonce préparée (Gitea release notes)
|
- Annonce préparée (Gitea release notes)
|
||||||
|
|
||||||
|
@ -23,3 +23,4 @@
|
|||||||
- Taux d’erreurs
|
- Taux d’erreurs
|
||||||
- Couverture de tests
|
- Couverture de tests
|
||||||
- SLO disponibilité
|
- SLO disponibilité
|
||||||
|
|
||||||
|
@ -26,3 +26,4 @@
|
|||||||
## Résultats et suivi
|
## Résultats et suivi
|
||||||
- Issues Gitea créées pour findings
|
- Issues Gitea créées pour findings
|
||||||
- Plan de remédiation par priorité
|
- Plan de remédiation par priorité
|
||||||
|
|
||||||
|
@ -320,3 +320,4 @@ L'automatisation SSH pour `ihm_client` simplifie considérablement le workflow d
|
|||||||
|
|
||||||
**Dernière mise à jour** : $(date '+%Y-%m-%d')
|
**Dernière mise à jour** : $(date '+%Y-%m-%d')
|
||||||
**Version** : 1.0.0
|
**Version** : 1.0.0
|
||||||
|
|
||||||
|
@ -42,3 +42,4 @@ cargo fmt -- --check
|
|||||||
- Les tests isolent le stockage disque sous le répertoire parent obligatoire `/tmp/.4nk`.
|
- Les tests isolent le stockage disque sous le répertoire parent obligatoire `/tmp/.4nk`.
|
||||||
- Chaque exécution crée des fichiers uniques: `wallet_{uuid}`, `processes_{uuid}`, `members_{uuid}`.
|
- Chaque exécution crée des fichiers uniques: `wallet_{uuid}`, `processes_{uuid}`, `members_{uuid}`.
|
||||||
- Objectif: éviter le partage d’état entre tests et empoisonnements de verrous.
|
- Objectif: éviter le partage d’état entre tests et empoisonnements de verrous.
|
||||||
|
|
||||||
|
@ -26,3 +26,4 @@
|
|||||||
- `docker logs`, `journalctl` (si service)
|
- `docker logs`, `journalctl` (si service)
|
||||||
- `RUST_LOG=debug`
|
- `RUST_LOG=debug`
|
||||||
- Scripts de tests/monitoring
|
- Scripts de tests/monitoring
|
||||||
|
|
||||||
|
@ -708,3 +708,4 @@ awk '/ERROR/ {count++} END {print count}' logs/sdk_relay.log
|
|||||||
---
|
---
|
||||||
|
|
||||||
**🎯 Service sdk_relay - Prêt pour une utilisation en production !** ✨
|
**🎯 Service sdk_relay - Prêt pour une utilisation en production !** ✨
|
||||||
|
|
||||||
|
@ -1104,3 +1104,4 @@ chmod 600 /home/bitcoin/.4nk/bitcoin.cookie
|
|||||||
## Conclusion
|
## Conclusion
|
||||||
|
|
||||||
`sdk_relay` est un service Rust robuste et performant qui implémente un relais complet pour les Silent Payments. Son architecture modulaire, sa gestion asynchrone et ses mécanismes de sécurité en font une solution production-ready pour l'intégration des paiements silencieux avec Bitcoin Core.
|
`sdk_relay` est un service Rust robuste et performant qui implémente un relais complet pour les Silent Payments. Son architecture modulaire, sa gestion asynchrone et ses mécanismes de sécurité en font une solution production-ready pour l'intégration des paiements silencieux avec Bitcoin Core.
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user