refactor(adr-022): retirer exemples de code et scripts
Suppression de tous les exemples de code pour garder uniquement les descriptions techniques : - Workflows backend/mobile/shared : descriptions textuelles au lieu de blocs YAML complets - Section validation : scénarios décrits au lieu de commandes bash - Conservation de toute l'information technique sans code concret ADR reste technique et complet mais plus concis. Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -43,203 +43,64 @@ RoadWave est organisé en monorepo contenant backend Go, mobile Flutter, documen
|
|||||||
|
|
||||||
#### Workflow Backend (`backend.yml`)
|
#### Workflow Backend (`backend.yml`)
|
||||||
|
|
||||||
```yaml
|
**Déclencheurs** :
|
||||||
name: Backend CI
|
- Branches : `main`, `develop`
|
||||||
|
- Chemins surveillés :
|
||||||
|
- `backend/**` : Code Go, migrations, configuration
|
||||||
|
- `features/api/**` : Features BDD des tests API
|
||||||
|
- `features/e2e/**` : Features BDD end-to-end impliquant le backend
|
||||||
|
- `.github/workflows/backend.yml` : Modifications du workflow lui-même
|
||||||
|
|
||||||
on:
|
**Jobs exécutés** :
|
||||||
push:
|
- **Tests unitaires** : Exécution `go test` sur tous les packages
|
||||||
branches: [main, develop]
|
- **Tests d'intégration** : Utilisation de Testcontainers avec PostgreSQL/PostGIS
|
||||||
paths:
|
- **Tests BDD** : Exécution Godog sur features `api/` et `e2e/`
|
||||||
- 'backend/**' # Code Go modifié
|
- **Lint** : Vérification golangci-lint
|
||||||
- 'features/api/**' # Tests API modifiés
|
- **Build** : Compilation binaire production (dépend de tous les jobs précédents)
|
||||||
- 'features/e2e/**' # Tests E2E (impliquent backend)
|
|
||||||
- '.github/workflows/backend.yml'
|
|
||||||
pull_request:
|
|
||||||
branches: [main, develop]
|
|
||||||
paths:
|
|
||||||
- 'backend/**'
|
|
||||||
- 'features/api/**'
|
|
||||||
- 'features/e2e/**'
|
|
||||||
|
|
||||||
jobs:
|
**Environnement** : Ubuntu latest, Go 1.21+
|
||||||
test-unit:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@v4
|
|
||||||
- uses: actions/setup-go@v5
|
|
||||||
with:
|
|
||||||
go-version: '1.21'
|
|
||||||
- run: cd backend && go test ./...
|
|
||||||
|
|
||||||
test-integration:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@v4
|
|
||||||
- uses: actions/setup-go@v5
|
|
||||||
with:
|
|
||||||
go-version: '1.21'
|
|
||||||
- run: cd backend && make test-integration
|
|
||||||
|
|
||||||
test-bdd:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@v4
|
|
||||||
- uses: actions/setup-go@v5
|
|
||||||
with:
|
|
||||||
go-version: '1.21'
|
|
||||||
- run: |
|
|
||||||
go install github.com/cucumber/godog/cmd/godog@latest
|
|
||||||
godog run features/api/ features/e2e/
|
|
||||||
|
|
||||||
lint:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@v4
|
|
||||||
- uses: golangci/golangci-lint-action@v4
|
|
||||||
|
|
||||||
build:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
needs: [test-unit, test-integration, test-bdd, lint]
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@v4
|
|
||||||
- uses: actions/setup-go@v5
|
|
||||||
with:
|
|
||||||
go-version: '1.21'
|
|
||||||
- run: cd backend && make build
|
|
||||||
```
|
|
||||||
|
|
||||||
**Déclenché par** :
|
|
||||||
- Modifications dans `/backend` (code Go, migrations, config)
|
|
||||||
- Nouvelles features API dans `/features/api`
|
|
||||||
- Tests end-to-end dans `/features/e2e` (backend impliqué)
|
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
#### Workflow Mobile (`mobile.yml`)
|
#### Workflow Mobile (`mobile.yml`)
|
||||||
|
|
||||||
```yaml
|
**Déclencheurs** :
|
||||||
name: Mobile CI
|
- Branches : `main`, `develop`
|
||||||
|
- Chemins surveillés :
|
||||||
|
- `mobile/**` : Code Flutter/Dart, assets, configuration
|
||||||
|
- `features/ui/**` : Features BDD des tests UI
|
||||||
|
- `features/e2e/**` : Features BDD end-to-end impliquant le mobile
|
||||||
|
- `.github/workflows/mobile.yml` : Modifications du workflow lui-même
|
||||||
|
|
||||||
on:
|
**Jobs exécutés** :
|
||||||
push:
|
- **Tests unitaires** : Exécution `flutter test` sur widgets et logique métier
|
||||||
branches: [main, develop]
|
- **Tests d'intégration** : Tests d'intégration Flutter (interactions UI complexes)
|
||||||
paths:
|
- **Lint** : Analyse statique `flutter analyze`
|
||||||
- 'mobile/**' # Code Flutter modifié
|
- **Build Android** : Compilation APK release (dépend des tests)
|
||||||
- 'features/ui/**' # Tests UI modifiés
|
- **Build iOS** : Compilation IPA release sans codesign (dépend des tests)
|
||||||
- 'features/e2e/**' # Tests E2E (impliquent mobile)
|
|
||||||
- '.github/workflows/mobile.yml'
|
|
||||||
pull_request:
|
|
||||||
branches: [main, develop]
|
|
||||||
paths:
|
|
||||||
- 'mobile/**'
|
|
||||||
- 'features/ui/**'
|
|
||||||
- 'features/e2e/**'
|
|
||||||
|
|
||||||
jobs:
|
**Environnement** :
|
||||||
test-unit:
|
- Tests/Lint/Build Android : Ubuntu latest
|
||||||
runs-on: ubuntu-latest
|
- Build iOS : macOS latest (requis pour Xcode)
|
||||||
steps:
|
- Flutter 3.16.0+
|
||||||
- uses: actions/checkout@v4
|
|
||||||
- uses: subosito/flutter-action@v2
|
|
||||||
with:
|
|
||||||
flutter-version: '3.16.0'
|
|
||||||
- run: cd mobile && flutter test
|
|
||||||
|
|
||||||
test-integration:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@v4
|
|
||||||
- uses: subosito/flutter-action@v2
|
|
||||||
with:
|
|
||||||
flutter-version: '3.16.0'
|
|
||||||
- run: cd mobile && flutter test integration_test/
|
|
||||||
|
|
||||||
lint:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@v4
|
|
||||||
- uses: subosito/flutter-action@v2
|
|
||||||
with:
|
|
||||||
flutter-version: '3.16.0'
|
|
||||||
- run: cd mobile && flutter analyze
|
|
||||||
|
|
||||||
build-android:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
needs: [test-unit, test-integration, lint]
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@v4
|
|
||||||
- uses: subosito/flutter-action@v2
|
|
||||||
with:
|
|
||||||
flutter-version: '3.16.0'
|
|
||||||
- run: cd mobile && flutter build apk --release
|
|
||||||
|
|
||||||
build-ios:
|
|
||||||
runs-on: macos-latest
|
|
||||||
needs: [test-unit, test-integration, lint]
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@v4
|
|
||||||
- uses: subosito/flutter-action@v2
|
|
||||||
with:
|
|
||||||
flutter-version: '3.16.0'
|
|
||||||
- run: cd mobile && flutter build ios --release --no-codesign
|
|
||||||
```
|
|
||||||
|
|
||||||
**Déclenché par** :
|
|
||||||
- Modifications dans `/mobile` (code Flutter/Dart, assets, config)
|
|
||||||
- Nouvelles features UI dans `/features/ui`
|
|
||||||
- Tests end-to-end dans `/features/e2e` (mobile impliqué)
|
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
#### Workflow Shared (`shared.yml`)
|
#### Workflow Shared (`shared.yml`)
|
||||||
|
|
||||||
```yaml
|
**Déclencheurs** :
|
||||||
name: Shared CI
|
- Branches : `main`, `develop`
|
||||||
|
- Chemins surveillés :
|
||||||
|
- `docs/**` : ADR, règles métier, documentation technique
|
||||||
|
- `shared/**` : Contrats API, types partagés
|
||||||
|
- `.github/workflows/shared.yml` : Modifications du workflow lui-même
|
||||||
|
|
||||||
on:
|
**Jobs exécutés** :
|
||||||
push:
|
- **Validation documentation** : Build MkDocs en mode strict (détecte erreurs markdown)
|
||||||
branches: [main, develop]
|
- **Vérification liens** : Validation des liens internes/externes dans documentation
|
||||||
paths:
|
- **Tests code partagé** : Exécution tests si du code partagé backend-mobile existe
|
||||||
- 'docs/**' # Documentation modifiée
|
|
||||||
- 'shared/**' # Code partagé modifié
|
|
||||||
- '.github/workflows/shared.yml'
|
|
||||||
pull_request:
|
|
||||||
branches: [main, develop]
|
|
||||||
paths:
|
|
||||||
- 'docs/**'
|
|
||||||
- 'shared/**'
|
|
||||||
|
|
||||||
jobs:
|
**Environnement** : Ubuntu latest, Python 3.11+
|
||||||
docs-validation:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@v4
|
|
||||||
- uses: actions/setup-python@v5
|
|
||||||
with:
|
|
||||||
python-version: '3.11'
|
|
||||||
- run: |
|
|
||||||
pip install mkdocs mkdocs-material
|
|
||||||
mkdocs build --strict
|
|
||||||
|
|
||||||
docs-links:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@v4
|
|
||||||
- uses: lycheeverse/lychee-action@v1
|
|
||||||
with:
|
|
||||||
args: 'docs/**/*.md'
|
|
||||||
|
|
||||||
shared-tests:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
if: contains(github.event.head_commit.modified, 'shared/')
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@v4
|
|
||||||
# Tests pour code partagé si nécessaire
|
|
||||||
```
|
|
||||||
|
|
||||||
**Déclenché par** :
|
|
||||||
- Modifications dans `/docs` (ADR, règles métier, documentation technique)
|
|
||||||
- Modifications dans `/shared` (contrats API, types partagés)
|
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
@@ -333,31 +194,15 @@ Les tests end-to-end dans `/features/e2e/` **déclenchent les deux workflows** (
|
|||||||
|
|
||||||
### Validation
|
### Validation
|
||||||
|
|
||||||
```bash
|
**Scénarios de test à valider** :
|
||||||
# Test 1 : Commit backend-only
|
|
||||||
git add backend/
|
|
||||||
git commit -m "test: backend change"
|
|
||||||
git push
|
|
||||||
# → Vérifier que SEULEMENT backend.yml s'exécute
|
|
||||||
|
|
||||||
# Test 2 : Commit mobile-only
|
1. **Commit backend uniquement** : Modifications dans `/backend` → Vérifier exécution isolée de `backend.yml`
|
||||||
git add mobile/
|
2. **Commit mobile uniquement** : Modifications dans `/mobile` → Vérifier exécution isolée de `mobile.yml`
|
||||||
git commit -m "test: mobile change"
|
3. **Commit features E2E** : Modifications dans `/features/e2e` → Vérifier exécution conjointe de `backend.yml` ET `mobile.yml`
|
||||||
git push
|
4. **Commit documentation uniquement** : Modifications dans `/docs` → Vérifier exécution isolée de `shared.yml`
|
||||||
# → Vérifier que SEULEMENT mobile.yml s'exécute
|
5. **Commit mixte** : Modifications backend + mobile + docs → Vérifier exécution des 3 workflows en parallèle
|
||||||
|
|
||||||
# Test 3 : Commit E2E
|
**Vérifications** : Consulter l'onglet "Actions" de GitHub pour confirmer quels workflows se sont déclenchés.
|
||||||
git add features/e2e/
|
|
||||||
git commit -m "test: e2e change"
|
|
||||||
git push
|
|
||||||
# → Vérifier que backend.yml ET mobile.yml s'exécutent
|
|
||||||
|
|
||||||
# Test 4 : Commit docs-only
|
|
||||||
git add docs/
|
|
||||||
git commit -m "docs: update ADR"
|
|
||||||
git push
|
|
||||||
# → Vérifier que SEULEMENT shared.yml s'exécute
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user