Ce repo utilise GitHub Actions pour tester et compiler l'API automatiquement.
Déclenché:
- ✅ Chaque
pushsurmainoudevelop - ✅ Chaque
pull_requestversmainoudevelop
Actions exécutées:
- 🔧 Setup .NET 10.0
- 📦 Restaure les dépendances NuGet
- 🔨 Build en Release
- 🧪 Exécute les 31 tests unitaires (xUnit)
- 📊 Upload les résultats de test
- 📦 Publie l'API compilée
- 💾 Upload les artefacts
Durée: ~2-3 minutes
✅ 31 / 31 tests passing
- JwtServiceTests: 14 tests (tokens, refresh, extraction)
- AuthControllerTests: 4 tests (login, refresh)
- AuthenticationIntegrationTests: 7 tests (full auth flow)
- UserControllerTests: 3 tests (register, password, delete)
- RestaurantControllerTests: 3 tests (CRUD)
Après chaque run, les artefacts sont disponibles dans Actions → [Run] → Artifacts:
TableMasterApi/
├── TableMasterApi.dll
├── TableMasterApi.runtimeconfig.json
├── appsettings.json
├── appsettings.Development.json
├── Dapper.dll
├── FirebaseAdmin.dll
└── ... (toutes les dépendances)
Utilisation:
# Télécharger l'API compilée
# Déployer sur serveur:
dotnet TableMasterApi.dll --urls "http://0.0.0.0:5000"test-results.trx
Rapport XUnit détaillé des tests.
- Aller à Actions sur GitHub
- Cliquer sur le workflow qui vous intéresse
- Cliquer sur le run
- Voir les logs complets de chaque step
Vérifier:
- ✅ Workflow activé: Actions → ... → Enable workflows
- ✅ Branches
mainetdevelopexistent - ✅ Fichier
.github/workflows/dotnet.ymlexiste
Relancer localement:
dotnet test TableMasterApi.Tests/Vérifier les logs:
dotnet test --verbosity detailedRelancer localement:
dotnet build -c ReleaseVérifier les dépendances:
dotnet restorePour déployer automatiquement après les tests, ajouter un step au workflow:
- name: Deploy to Server
if: success()
run: |
scp -r ./publish/* user@server:/app/tablemaster-api
ssh user@server 'systemctl restart tablemaster-api'
env:
DEPLOY_KEY: ${{ secrets.DEPLOY_KEY }}Ajouter le secret DEPLOY_KEY dans Settings → Secrets and variables → Actions
L'API utilise Sentry.AspNetCore pour remonter les exceptions et traces HTTP. Le DSN ne doit pas être commité :
- local :
dotnet user-secrets set "Sentry:Dsn" "<dsn-api>" - production : variable d'environnement
Sentry__Dsn - test dev : appeler
GET /api/monitoring/sentry-test
Mis à jour: 7 mai 2026