Skip to content

ci: introduces semantic-release for automatic versioning - #10

Merged
bosbaber merged 1 commit into
mainfrom
stephan/car-33
Oct 29, 2026
Merged

bosbaber merged 1 commit into
mainfrom
stephan/car-33

Conversation

@bosbaber

@bosbaber bosbaber commented Oct 26, 2026 •

Copy link
Copy Markdown
Contributor

This pull request introduces automated workflows and configuration to enforce semantic commit conventions and automate releases based on those conventions. The main changes are the addition of GitHub Actions for PR title checking and release automation, along with a .releaserc.json configuration file to define release rules and changelog formatting.

CI/CD Automation:

  • Added .github/workflows/pr-title-check.yaml to automatically check that pull request titles follow semantic commit conventions, ensuring consistency and enabling automated versioning.
  • Added .github/workflows/release.yaml to automate releases on every merge to main, using semantic-release to determine version bumps and generate tags based on conventional commit messages.

Release Configuration:

  • Introduced .releaserc.json to configure semantic-release, specifying branch, tag format, commit analysis, changelog sections, and special handling for YAML spec changes.

@bosbaber
bosbaber requested a balanced review from Copilot October 26, 2026 09:30
@bosbaber bosbaber self-assigned this Oct 26, 2026
@bosbaber
bosbaber marked this pull request as ready for review October 26, 2026 09:32

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔵 Needs a closer look

These changes add repo-wide release automation (tagging and GitHub Releases) whose behavior depends on external repository settings, token permissions, and third-party action versions that warrant final human verification.

1 open issue
What changed in this PR

This PR introduces automated, conventional-commits–based versioning to the OpenAPI specs repository. It adds a semantic-release configuration and a GitHub Actions workflow that, on every push to main, computes the next version and creates a git tag (v${version}) plus a GitHub Release. A notable customization is an @semantic-release/exec hook that also forces a patch release whenever a root-level spec (*.yaml) changes, even if the commit type wouldn't otherwise trigger one. A second workflow validates that PR titles follow the conventional-commit format, which matters because squash-merge commit messages (used to compute versions) derive from the PR title.

Changes:

  • Add .releaserc.json defining the release pipeline (commit-analyzer, exec, release-notes-generator, github) with the conventionalcommits preset and spec-change gating.
  • Add release.yaml workflow that runs semantic-release via npx on push to main with least-privilege, job-scoped contents: write.
  • Add pr-title-check.yaml workflow using amannn/action-semantic-pull-request to enforce conventional PR titles.
File Description
.releaserc.json semantic-release config; gates releases on conventional commits and root *.yaml changes via an exec git-diff hook.
.github/​workflows/​release.yaml Push-to-main workflow that runs semantic-release to tag versions and publish GitHub Releases.
.github/​workflows/​pr-title-check.yaml Validates PR titles as conventional commits so squash-merge versioning works correctly.

Review effort: Balanced

Comment thread .releaserc.json Resolved
@koekiebox
koekiebox self-requested a review October 29, 2026 12:43

@koekiebox koekiebox left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🏁

@bosbaber
bosbaber merged commit 68f2915 into main Oct 29, 2026
3 checks passed
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.

3 participants