Real-world example: Semantic release with GitHub Actions

This brief walkthrough shows how Bumpwright can automate semantic releases in an everyday project. The workflow runs tests, bumps the version based on commit history, updates the changelog, and tags the release.

  1. Write commits following the Conventional Commits specification.

  2. Merge to main to trigger the CI workflow.

  3. The workflow installs Bumpwright, runs tests, applies the bump, and pushes the updated files and tag.

Example .github/workflows/release.yml:

name: Release
on:
  push:
    branches: [main]
permissions:
  contents: write

jobs:
  release:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v5
        with:
          fetch-depth: 0
          fetch-tags: true
      - uses: actions/setup-python@v5
        with:
          python-version: '3.x'
      - run: pip install bumpwright
      - run: bumpwright bump --commit --tag

This configuration automatically bumps the project version and publishes a tag whenever changes land on main, illustrating how Bumpwright fits into a typical continuous delivery pipeline.