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.
- package/.github/workflows/release-please.yml +18 -0
- package/ENGINEERING_PLAYBOOK.md +395 -0
- package/PROJECT_CONFIG.template.md +34 -0
- package/README.md +229 -0
- package/ci-templates/main.yml +76 -0
- package/generator/index.js +700 -0
- package/hooks/commit-msg +27 -0
- package/hooks/pre-commit +46 -0
- package/hooks/pre-push +25 -0
- package/package.json +18 -0
- package/prompts/adr_writing.md +14 -0
- package/prompts/bugfix.md +15 -0
- package/prompts/code_review.md +14 -0
- package/prompts/feature_development.md +29 -0
- package/prompts/new_project_kickoff.md +14 -0
- package/prompts/system_prompt.md +24 -0
|
@@ -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
|