Skip to content

ci: conventional commits et semantic release (epic #101)#107

Closed
bgauduch wants to merge 6 commits into
masterfrom
feat/101-semantic-release
Closed

ci: conventional commits et semantic release (epic #101)#107
bgauduch wants to merge 6 commits into
masterfrom
feat/101-semantic-release

Conversation

@bgauduch

Copy link
Copy Markdown
Owner

Summary

This PR implements epic #101: adopting Conventional Commits (enforced in CI) and automating releases with Semantic Release, replacing the current manual release process.

Changes

  • Commitlint (lint-commits.yml + commitlint.config.mjs): validates all commits on PRs against the Conventional Commits spec using wagoid/commitlint-github-action@v6
  • PR title check (lint-pr-title.yml): enforces semantic PR titles using amannn/action-semantic-pull-request@v5
  • Semantic Release (.releaserc.json + semantic-release.yml): automates version bumping, changelog generation, and GitHub release creation on push to master when relevant files change; uses cycjimmy/semantic-release-action@v4
  • Refactored release.yml: now triggers on v* git tags (created by Semantic Release) instead of the release: published event; uses the new tag scheme vX.Y.Z_tf-A.B.C_aws-D.E.F; generates floating minor tags (tf-A.B_aws-D.E); applies latest and vX.Y.Z tags only for the latest tool version combination; upgraded to docker/login-action@v3, docker/build-push-action@v6, docker/setup-qemu-action@v3, docker/setup-buildx-action@v3
  • Updated push-latest.yml: replaced manual echo | docker login with docker/login-action@v3
  • Initial CHANGELOG.md: seed file for Semantic Release to append to

Breaking changes

The manual release process (GitHub Release published → release.yml) is fully replaced by the automated pipeline:

  1. Merge a Conventional Commits PR to master
  2. semantic-release.yml bumps the version and creates a git tag (vX.Y.Z)
  3. release.yml triggers on that tag and builds/pushes all Docker image variants

Closes #101

https://claude.ai/code/session_01RsmDFm6w4jVXwvzmRd9BCv


Generated by Claude Code

bgauduch added a commit that referenced this pull request Jun 17, 2026
Implements the release-please flow from ADR-0002 and the Phase 1 P0
tag subset from ADR-0003, reworking the in-flight Semantic Release
draft (#107) into release-please.

- add release-please-config.json (simple release type, v-prefixed tags)
- add .release-please-manifest.json seeded at 8.0.0 to continue the
  existing major line under project semver (vX.Y.Z)
- add .github/workflows/release-please.yml — maintains the Release PR
  and creates the GitHub release + version tag on merge
- migrate .github/workflows/release.yml to trigger on the vX.Y.Z tag
  and publish the Phase 1 tag subset: fully-pinned
  vX.Y.Z_tf-A.B.C_aws-D.E.F (every combination) plus vX.Y.Z and latest
on the latest bundled combination; the manual release trigger is removed

Out of scope (Phase 3): edge / floating vX.Y tags, GHCR, the
zenika->bgauduch rename and docker/login-action migration.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01YDmRomapTbonHPFwnU61zR

---------

Co-authored-by: Claude <noreply@anthropic.com>

Copy link
Copy Markdown
Owner Author

Closing — superseded. The release-automation decision moved to release-please (ADR-0002), now delivered in #127. Disposition of this PR's parts so nothing is lost:

Thanks — the Conventional-Commits groundwork here directly shaped the final design.


Generated by Claude Code

@bgauduch bgauduch closed this Jun 25, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

epic: conventional commits et semantic release

2 participants