Skip to content

ci: replace changelog gate with release-please and conventional commits#286

Merged
andre-stefanov merged 6 commits into
developfrom
chore/ci-and-releases
May 15, 2026
Merged

ci: replace changelog gate with release-please and conventional commits#286
andre-stefanov merged 6 commits into
developfrom
chore/ci-and-releases

Conversation

@andre-stefanov
Copy link
Copy Markdown
Member

@andre-stefanov andre-stefanov commented May 14, 2026

Summary

Overhauls the CI and release process to eliminate the per-PR changelog/version overhead and introduce automated, tag-based releases.

See RELEASE.md for the full developer guide.

What changed

Added

  • .github/workflows/ci.yml — consolidated PR checks: PR title lint (Conventional Commits), unit tests, and matrix build across all 5 boards; all checks are required
  • .github/workflows/release-please.yml — runs on push to develop; manages the Release PR, version bump, changelog generation, git tag, and GitHub Release automatically
  • .github/actions/setup-pio/action.yml — composite action that installs Python + PlatformIO, shared across build and test jobs
  • release-please-config.json + .release-please-manifest.json — release-please configuration (simple release type, V tag prefix, updates Version.h automatically)
  • RELEASE.md — developer documentation for the new release process

Removed

  • .github/workflows/changelog.yml — replaced by release-please
  • .github/workflows/platformio.yml — replaced by ci.yml
  • .github/workflows/platformio_unit_tests.yml — merged into ci.yml
  • version_check.py + requirements_version_check.txt — no longer needed

Updated

  • .github/workflows/code_format.yml — bumped actions/checkout from v2 to v6; logic unchanged

How releases work now

  1. Merge PRs with Conventional Commit titles (feat:, fix:, chore:, etc.)
  2. release-please opens/updates a Release PR accumulating all changes
  3. When ready to release, merge the Release PR → tag + GitHub Release created automatically

Required follow-up (repo settings)

Branch protection for develop needs updating:

  • Remove required check: Check changelog and version are matching
  • Add required checks: PR Title (Conventional Commits), Unit Tests, Build (mksgenlv21), Build (mksgenlv2), Build (mksgenlv1), Build (esp32), Build (ramps)

@andre-stefanov andre-stefanov force-pushed the chore/ci-and-releases branch from 4e9102e to 0f38fe2 Compare May 14, 2026 21:39
@andre-stefanov andre-stefanov marked this pull request as ready for review May 14, 2026 21:39
Copilot AI review requested due to automatic review settings May 14, 2026 21:39
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

This PR modernizes the repo’s CI and release automation by replacing the manual “changelog/version gate” with a Conventional Commits PR-title check and automated releases driven by release-please on develop.

Changes:

  • Consolidates PR checks into a single CI workflow (PR title lint, native unit tests, and matrix builds across 5 boards).
  • Introduces release-please configuration + workflow to generate release PRs/tags/releases automatically.
  • Removes the legacy changelog/version-check workflow and related Python tooling; adds RELEASE.md documentation.

Reviewed changes

Copilot reviewed 12 out of 12 changed files in this pull request and generated 5 comments.

Show a summary per file
File Description
version_check.py Removed legacy version/changelog validation script.
requirements_version_check.txt Removed dependencies for the deleted version check.
RELEASE.md Added developer documentation for the new release process.
release-please-config.json Added release-please configuration (tag prefix, Version.h extra-file update).
.release-please-manifest.json Added release-please manifest with current version.
.github/workflows/release-please.yml Added workflow to run release-please on pushes to develop.
.github/workflows/ci.yml Added consolidated PR CI workflow (title lint, unit tests, matrix builds).
.github/workflows/code_format.yml Updated actions/checkout version (v2 → v4).
.github/workflows/platformio.yml Removed old PlatformIO matrix build workflow.
.github/workflows/platformio_unit_tests.yml Removed old unit test workflow (merged into CI).
.github/workflows/changelog.yml Removed old changelog/version gate workflow.
.github/actions/setup-pio/action.yml Added composite action to share Python/PlatformIO setup across jobs.
Comments suppressed due to low confidence (1)

.github/actions/setup-pio/action.yml:27

  • The “Install unit test dependencies” step runs unconditionally, so every consumer of this action (including firmware build jobs) installs gcovr. If the intent is to keep build jobs minimal, add an install-unit-test-deps input and guard this step with it (and update ci.yml accordingly).
    - name: Install matrix build dependencies
      if: inputs.install-matrix-deps == 'true'
      shell: bash
      run: pip install -r requirements_matrix_build.txt
    - name: Install unit test dependencies
      shell: bash
      run: pip install gcovr

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread .github/workflows/ci.yml
Comment thread .github/actions/setup-pio/action.yml
Comment thread RELEASE.md Outdated
Comment thread .release-please-manifest.json Outdated
Comment thread release-please-config.json
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 12 out of 13 changed files in this pull request and generated 3 comments.

Comments suppressed due to low confidence (1)

RELEASE.md:67

  • This table says “Bug fix, performance improvement, documentation” triggers a Patch bump, but earlier the Conventional Commits table states docs triggers no version bump. Please reconcile these semantics so contributors understand whether docs changes bump versions or not.
Versions follow [Semantic Versioning](https://semver.org/) (`MAJOR.MINOR.PATCH`):

| Change | Bump |
|--------|------|
| Breaking change in Meade protocol or configuration | **Major** |
| New feature, new board support, new Meade command | **Minor** |
| Bug fix, performance improvement, documentation | **Patch** |
| Chore, CI, refactor, test | **None** |

Comment thread .github/workflows/code_format.yml
Comment thread RELEASE.md Outdated
Comment thread RELEASE.md Outdated
andre-stefanov and others added 2 commits May 15, 2026 09:10
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Copilot encountered an error and was unable to review this pull request. You can try again by re-requesting a review.

Copy link
Copy Markdown
Member

@ClutchplateDude ClutchplateDude left a comment

Choose a reason for hiding this comment

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

Nice! I like the auto release and version handling

@andre-stefanov andre-stefanov merged commit 02b7b1e into develop May 15, 2026
11 of 12 checks passed
@andre-stefanov andre-stefanov deleted the chore/ci-and-releases branch May 15, 2026 08:39
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