2026-06-29 11:58:09 +02:00
|
|
|
# Action "Determine bump type from commit message"
|
2026-06-26 09:39:30 +02:00
|
|
|
|
|
|
|
|
## Description
|
|
|
|
|
|
2026-06-29 11:58:09 +02:00
|
|
|
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
|
|
|
|
2026-06-29 11:58:09 +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
|
2026-06-29 12:06:06 +02:00
|
|
|
uses: https://forgejo.pixao.fr/CI-CD/ForgejoActions/determineBumpType@master
|
2026-06-29 11:58:09 +02:00
|
|
|
with:
|
|
|
|
|
COMMIT_MESSAGE: ${{ github.event.head_commit.message }}
|
|
|
|
|
|
|
|
|
|
- name: Bump de la version
|
2026-06-29 12:06:06 +02:00
|
|
|
uses: https://forgejo.pixao.fr/CI-CD/ForgejoActions/versionBumper@master
|
2026-06-29 11:58:09 +02:00
|
|
|
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`).
|