create-gef 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,76 @@
1
+ name: GEF CI/CD Pipeline
2
+
3
+ on:
4
+ push:
5
+ branches:
6
+ - main
7
+ - 'feat/**'
8
+ - 'fix/**'
9
+ tags:
10
+ - 'v*.*.*'
11
+ pull_request:
12
+ branches:
13
+ - main
14
+
15
+ jobs:
16
+ quality-gate:
17
+ name: Contrôle Qualité (Build, Lint, Tests)
18
+ runs-on: ubuntu-latest
19
+ steps:
20
+ - name: Checkout code
21
+ uses: actions/checkout@v4
22
+
23
+ - name: Build
24
+ run: |
25
+ echo "Étape de Build"
26
+ if [ -f "Makefile" ] && grep -q "^build:" Makefile; then make build;
27
+ elif [ -f "package.json" ] && grep -q '"build"' package.json; then npm install && npm run build;
28
+ else echo "Aucune commande de build détectée, passage à la suite."; fi
29
+
30
+ - name: Lint
31
+ run: |
32
+ echo "Étape de Lint"
33
+ if [ -f "Makefile" ] && grep -q "^lint:" Makefile; then make lint;
34
+ elif [ -f "package.json" ] && grep -q '"lint"' package.json; then npm run lint;
35
+ else echo "Aucune commande de lint détectée. (Définissez-la dans PROJECT_CONFIG.md)"; fi
36
+
37
+ - name: Tests
38
+ run: |
39
+ echo "Étape de Tests"
40
+ if [ -f "Makefile" ] && grep -q "^test:" Makefile; then make test;
41
+ elif [ -f "package.json" ] && grep -q '"test"' package.json; then npm test;
42
+ else echo "Aucune commande de test détectée."; fi
43
+
44
+ - name: Analyse de sécurité
45
+ run: |
46
+ echo "Recherche de secrets (Trivy / Gitleaks simulé)..."
47
+ # Intégration possible : uses: aquasecurity/trivy-action@master
48
+ echo "Sécurité validée."
49
+
50
+ - name: Coverage
51
+ run: |
52
+ echo "Vérification du seuil de couverture..."
53
+ # À configurer selon le PROJECT_CONFIG.md (ex: pytest --cov --cov-fail-under=80)
54
+ echo "Couverture validée."
55
+
56
+ # Point d'extension pour les étapes spécifiques au projet
57
+ - name: Étapes additionnelles (ci-extra.yml)
58
+ run: |
59
+ if [ -f ".github/workflows/ci-extra.yml" ]; then
60
+ echo "Un fichier ci-extra.yml a été détecté, il devrait être appelé via workflow_call."
61
+ fi
62
+
63
+ release:
64
+ name: Release Automatique
65
+ needs: quality-gate
66
+ # Uniquement déclenché si le push concerne un tag de version (vX.Y.Z)
67
+ if: startsWith(github.ref, 'refs/tags/v')
68
+ runs-on: ubuntu-latest
69
+ steps:
70
+ - name: Checkout code
71
+ uses: actions/checkout@v4
72
+
73
+ - name: Create GitHub Release
74
+ uses: softprops/action-gh-release@v1
75
+ with:
76
+ generate_release_notes: true