73 lines
2.9 KiB
Markdown
73 lines
2.9 KiB
Markdown
# Action "Version Bumper"
|
|
|
|
## Description
|
|
|
|
Une action composite permettant de récupérer et d'incrémenter la version
|
|
contenue dans le fichier `.version` à la racine du dépôt.
|
|
|
|
La version suit le format [SemVer](https://semver.org/lang/fr/) :
|
|
`MAJOR.MINOR.PATCH` (ex. `1.4.2`). Selon le type de bump demandé, l'action
|
|
incrémente la partie correspondante :
|
|
|
|
- `MAJOR` : `1.4.2` → `2.0.0` (réinitialise minor et patch).
|
|
- `MINOR` : `1.4.2` → `1.5.0` (réinitialise patch).
|
|
- `PATCH` : `1.4.2` → `1.4.3`.
|
|
|
|
L'action configure ensuite un utilisateur git, écrit la nouvelle version dans
|
|
`.version`, puis **commit et push** le changement.
|
|
|
|
> Astuce : le type de bump peut être déterminé automatiquement à partir du
|
|
> message de commit grâce à l'action `determineBumpType`, dont la sortie peut
|
|
> alimenter le paramètre `bumpType`.
|
|
|
|
## Paramètres
|
|
|
|
| Paramètre | Obligatoire | Défaut | Description |
|
|
| ---------- | ----------- | ------- | ------------------------------------------------------- |
|
|
| `bumpType` | Non | `PATCH` | Type de bump de version : `MAJOR`, `MINOR` ou `PATCH`. |
|
|
|
|
## Exemple d'utilisation
|
|
|
|
```yaml
|
|
steps:
|
|
- name: Bump de la version
|
|
uses: https://forgejo.pixao.fr/CI-CD/ForgejoActions/versionBumper@master
|
|
with:
|
|
bumpType: MINOR
|
|
```
|
|
|
|
Combiné avec `determineBumpType` :
|
|
|
|
```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
|
|
|
|
- **Fichier `.version` requis** : le fichier `.version` doit exister à la racine
|
|
du dépôt et contenir une version valide au format `MAJOR.MINOR.PATCH`. Sinon
|
|
le `cat` échoue ou produit une version incohérente.
|
|
- **Valeurs sensibles à la casse** : le paramètre `bumpType` est comparé en
|
|
majuscules (`MAJOR`, `MINOR`, `PATCH`). Une valeur comme `minor` ou `Patch`
|
|
ne déclenchera aucune des étapes et **aucun bump ne sera effectué**.
|
|
- **Commit & push automatiques** : l'action pousse directement sur la branche
|
|
courante. Le runner doit donc disposer des droits d'écriture (token avec
|
|
permission `contents: write` / accès push configuré).
|
|
- **`[skip ci]`** : le message de commit contient `[skip ci]` afin d'éviter de
|
|
redéclencher un pipeline en boucle. Vérifiez que votre CI respecte bien cette
|
|
convention.
|
|
- **Checkout complet** : assurez-vous que l'étape de checkout permet le push
|
|
(branche correctement positionnée, pas en état *detached HEAD*).
|
|
- **Échec si rien à committer** : l'étape `Commit & push` échoue si aucun
|
|
changement n'a été ajouté (par exemple si `bumpType` est invalide), car
|
|
`git commit` n'a rien à committer.
|