# Action "Determine bump type from commit message" ## Description Une action composite permettant de déterminer le type de bump de version (`MAJOR`, `MINOR`, `PATCH`) à effectuer à partir du message de commit. L'action recherche les chaînes suivantes dans le message de commit : - `[MAJOR]` → bump `MAJOR`. - `[MINOR]` → bump `MINOR`. - Aucune des deux → bump `PATCH` (valeur par défaut). > Note : `[MAJOR]` est prioritaire sur `[MINOR]` si les deux sont présents dans > le message. Le résultat est exposé via la sortie `bumpType`, qui peut alimenter directement l'action `versionBumper`. ## Paramètres | Paramètre | Obligatoire | Défaut | Description | | ---------------- | ----------- | ------ | ------------------------------------ | | `COMMIT_MESSAGE` | Oui | — | Message du commit à parser. | ## Sorties | Sortie | Description | | ---------- | ----------------------------------------------------------------- | | `bumpType` | Type de bump détecté : `MAJOR`, `MINOR` ou `PATCH`. | ## Exemple d'utilisation ```yaml steps: - name: Déterminer le type de bump id: bump uses: https://forgejo.pixao.fr/CI-CD/ForgejoActions/determineBumpType@master with: COMMIT_MESSAGE: ${{ github.event.head_commit.message }} - name: Bump de la version uses: https://forgejo.pixao.fr/CI-CD/ForgejoActions/versionBumper@master with: bumpType: ${{ steps.bump.outputs.bumpType }} ``` ## Points d'attention - **Sortie via `$FORGEJO_OUTPUT`** : l'action écrit dans `$FORGEJO_OUTPUT`. Elle est donc prévue pour s'exécuter sur un runner Forgejo. Pour la récupérer, il faut donner un `id` à l'étape et lire `steps..outputs.bumpType`. - **Recherche sensible à la casse** : les marqueurs recherchés sont exactement `[MAJOR]` et `[MINOR]` (en majuscules et avec les crochets). Une variante comme `[major]` ou `MAJOR` (sans crochets) ne sera pas reconnue et donnera `PATCH`. - **Priorité** : `[MAJOR]` l'emporte sur `[MINOR]` lorsque les deux marqueurs sont présents. - **Comportement par défaut** : tout message ne contenant aucun marqueur retourne `PATCH` — il n'y a jamais d'échec lié à un message "non reconnu". - **Message multi-lignes** : le `COMMIT_MESSAGE` peut contenir plusieurs lignes ; pensez à bien passer le message complet (ex. `head_commit.message`).