Par Anonyme (non vérifié) , 29 avril 2026

Ce que vous accomplirez

Vous configurerez l'automatisation du bump de version et la génération de changelog dirigées par Conventional Commits.

Le mécanisme

Le tooling lit les messages de commit suivant le format Conventional Commits et décide du type de release à couper.

Étape 1 : adopter Conventional Commits

git commit -m "feat(checkout): add Apple Pay support"
git commit -m "fix(auth): handle expired refresh tokens"
git commit -m "chore(deps): bump axios to 1.7.0"
git commit -m "feat!: drop Node 16 support

BREAKING CHANGE: minimum Node version is now 18."

Étape 2 : faire respecter le format

npm install --save-dev @commitlint/cli @commitlint/config-conventional husky

# commitlint.config.js
module.exports = { extends: ['@commitlint/config-conventional'] };

# .husky/commit-msg
#!/usr/bin/env sh
. "$(dirname "$0")/_/husky.sh"
npx --no -- commitlint --edit $1

Étape 3 : installer le tooling de release

# .github/workflows/release-please.yml
name: release-please
on:
  push:
    branches: [main]
permissions:
  contents: write
  pull-requests: write
jobs:
  release-please:
    runs-on: ubuntu-latest
    steps:
      - uses: googleapis/release-please-action@v4
        with:
          release-type: node
          package-name: my-app

Étape 4 : comment fonctionne release-please

  1. Lit les commits depuis le dernier tag de release.
  2. Catégorise par type et décide la prochaine version.
  3. Met à jour CHANGELOG.md et la version dans package.json.
  4. Ouvre un "release PR".

Étape 5 : déclencher le workflow de publish

# .github/workflows/publish.yml
name: publish
on:
  push:
    tags: ['v*.*.*']
jobs:
  publish:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-node@v4
        with:
          node-version: '20'
          registry-url: 'https://registry.npmjs.org'
      - run: npm ci
      - run: npm run build
      - run: npm publish
        env:
          NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}

Étape 6 : alternative - changesets

npm install --save-dev @changesets/cli
npx changeset init

Étape 7 : alternative - semantic-release

npm install --save-dev semantic-release
# .releaserc.json
{
  "branches": ["main"],
  "plugins": [
    "@semantic-release/commit-analyzer",
    "@semantic-release/release-notes-generator",
    "@semantic-release/changelog",
    "@semantic-release/npm",
    "@semantic-release/github",
    "@semantic-release/git"
  ]
}

Étape 8 : pre-releases

git checkout -b beta
git push -u origin beta

Étape 9 : écrire de bons messages de commit

feat(checkout): add Apple Pay support

Implémente Apple Pay via la Web Payments API. Tombe en repli sur le
flux de carte existant si Apple Pay est indisponible. Closes #1234.

Étape 10 : gérer les squashes

- uses: amannn/action-semantic-pull-request@v5
  env:
    GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}