docs(database): Fix #4 #3
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Check branch rules | |
| on: | |
| pull_request: | |
| jobs: | |
| check-branch-rules: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Validate branch name and flow | |
| run: | | |
| SOURCE_BRANCH="${GITHUB_HEAD_REF}" | |
| TARGET_BRANCH="${GITHUB_BASE_REF}" | |
| echo "🔎 Analyse de la Pull Request" | |
| echo "➡️ Branche source : $SOURCE_BRANCH" | |
| echo "➡️ Branche cible : $TARGET_BRANCH" | |
| echo "" | |
| NAME_REGEX="^(main|dev|feat\/.+|feature\/.+|fix\/.+|hotfix\/.+)$" | |
| if [[ ! "$SOURCE_BRANCH" =~ $NAME_REGEX ]]; then | |
| echo "❌ Nom de branche source invalide" | |
| echo "" | |
| echo "👉 Branche détectée : $SOURCE_BRANCH" | |
| echo "👉 Formats autorisés :" | |
| echo " - main" | |
| echo " - dev" | |
| echo " - feat/ma-feature ou feature/ma-feature" | |
| echo " - fix/mon-correctif" | |
| echo " - hotfix/incident-production" | |
| echo "" | |
| echo "🛠️ Action attendue : renomme ta branche avant de créer la PR." | |
| exit 1 | |
| fi | |
| if [[ ! "$TARGET_BRANCH" =~ $NAME_REGEX ]]; then | |
| echo "❌ Nom de branche cible invalide" | |
| echo "" | |
| echo "👉 Branche cible détectée : $TARGET_BRANCH" | |
| echo "👉 Seules les branches standards sont autorisées comme cible (main, dev)." | |
| echo "" | |
| echo "🛠️ Action attendue : modifie la branche cible de la PR." | |
| exit 1 | |
| fi | |
| if [[ "$SOURCE_BRANCH" =~ ^(feat\/|feature\/) && "$TARGET_BRANCH" != "dev" ]]; then | |
| echo "❌ Règle de workflow non respectée" | |
| echo "" | |
| echo "👉 Une branche de feature doit être fusionnée dans dev." | |
| echo "👉 Actuel : $SOURCE_BRANCH → $TARGET_BRANCH" | |
| echo "" | |
| echo "🛠️ Action attendue : change la cible de la PR vers dev." | |
| exit 1 | |
| fi | |
| if [[ "$SOURCE_BRANCH" =~ ^fix\/ && ! "$TARGET_BRANCH" =~ ^(feat\/|feature\/) ]]; then | |
| echo "❌ Règle de workflow non respectée" | |
| echo "" | |
| echo "👉 Une branche fix sert à corriger une feature." | |
| echo "👉 Elle doit donc cibler la branche feature correspondante." | |
| echo "👉 Actuel : $SOURCE_BRANCH → $TARGET_BRANCH" | |
| echo "" | |
| echo "🛠️ Action attendue : cible la branche feat/* ou feature/* concernée." | |
| exit 1 | |
| fi | |
| if [[ "$SOURCE_BRANCH" =~ ^hotfix\/ && "$TARGET_BRANCH" != "main" ]]; then | |
| echo "❌ Règle de workflow non respectée" | |
| echo "" | |
| echo "👉 Une branche hotfix corrige un problème en production." | |
| echo "👉 Elle doit être fusionnée directement dans main." | |
| echo "👉 Actuel : $SOURCE_BRANCH → $TARGET_BRANCH" | |
| echo "" | |
| echo "🛠️ Action attendue : change la cible de la PR vers main." | |
| exit 1 | |
| fi | |
| if [[ "$SOURCE_BRANCH" == "dev" && "$TARGET_BRANCH" != "main" ]]; then | |
| echo "❌ Règle de workflow non respectée" | |
| echo "" | |
| echo "👉 La branche dev ne peut être fusionnée que dans main." | |
| echo "👉 Actuel : dev → $TARGET_BRANCH" | |
| echo "" | |
| echo "🛠️ Action attendue : change la cible de la PR vers main." | |
| exit 1 | |
| fi | |
| echo "✅ Toutes les règles de branches sont respectées" | |
| echo "🚀 La Pull Request peut être revue et fusionnée" |