Dans le développement de sites web, maintenir un suivi rigoureux du changelog et des versions peut vite devenir fastidieux. Grâce à des outils comme Semantic Release, cette tâche peut être automatisée, libérant ainsi du temps et garantissant une gestion efficace des versions et des changements. Dans le cas de ce site, c'est donc tout naturellement un élément à tester et intégrer.
Semantic Release est un outil de versioning et de gestion des changelogs conçu pour simplifier le processus de publication des versions de logiciels. Il suit les principes du versioning sémantique, ce qui signifie qu'il attribue automatiquement des numéros de version en fonction des types de changements apportés au code : majeur, mineur et correctif.
Le processus avec Semantic Release est transparent et fluide. Une fois configuré dans le workflow de développement, chaque fois qu'un nouveau commit est fusionné dans la branche principale du dépôt (par exemple, la branche "main" ou "master"), Semantic Release analyse les modifications apportées, détermine le type de version à publier (majeure, mineure ou correctif), génère un changelog détaillé et publie automatiquement la nouvelle version du logiciel.
package.json
)npm install --save-dev \
replace-json-property \
semantic-release \
@semantic-release/changelog \
@semantic-release/commit-analyzer \
@semantic-release/exec \
@semantic-release/git \
@semantic-release/gitlab \
@semantic-release/npm \
@semantic-release/release-notes-generator
.releaserc
:{
"pkgRoot": "dist/portfolio",
"branches": [
{
"name": "main"
},
{
"name": "develop",
"prerelease": "beta"
}
],
"plugins": [
"@semantic-release/changelog",
"@semantic-release/commit-analyzer",
"@semantic-release/release-notes-generator",
[
"@semantic-release/exec",
{
"prepareCmd": "VERSION=${nextRelease.version} npm run adjust-version"
}
],
[
"@semantic-release/git",
{
"assets": [
"package.json",
"CHANGELOG.md"
],
"message": "chore(release): ${nextRelease.version} [skip ci]\n\n${nextRelease.notes}"
}
],
"@semantic-release/gitlab"
]
}
# Ajouter l'étape suivante dans la partie `script`
- npx semantic-release
image: node:lts
before_script:
- npm ci
pages:
script:
- npx semantic-release
- npm run generate
artifacts:
paths:
- public
rules:
- if: $CI_COMMIT_REF_NAME == $CI_DEFAULT_BRANCH
GITLAB_TOKEN
dans les variables de la pipeline.
Le token applicatif doit avoir les droits api
, read_api
, read_user
, read_repository
, write_repository
, read_registry
et write_registry
.Semantic Release est un outil puissant qui simplifie grandement la gestion des versions et des changelogs dans le développement de sites web. En automatisant ce processus, il permet aux développeurs de se concentrer sur ce qui compte vraiment : créer un code de qualité et offrir une expérience utilisateur exceptionnelle. Si vous n'avez pas encore essayé Semantic Release, je vous encourage vivement à le faire. Vous ne serez pas déçu.
Article publié le 6 mars 2024 par Vincent PECQUERIE.
Conformément à la licence CC-BY-NC, Vous êtes autorisé (hors usage commerciale) à reprendre tout ou partie de l'article en citant l'auteur.