ForgejoActions/determineBumpType/README.md

63 lines
2.4 KiB
Markdown
Raw Permalink Normal View History

# Action "Determine bump type from commit message"
2026-06-26 09:39:30 +02:00
## Description
Une action composite permettant de déterminer le type de bump de version
(`MAJOR`, `MINOR`, `PATCH`) à effectuer à partir du message de commit.
2026-06-26 09:39:30 +02:00
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.<id>.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`).