Skip to content

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

Open
andre-stefanov wants to merge 1 commit into
developfrom
chore/ci-and-releases
Open

ci: replace changelog gate with release-please and conventional commits#286
andre-stefanov wants to merge 1 commit into
developfrom
chore/ci-and-releases

Conversation

@andre-stefanov
Copy link
Copy Markdown
Member

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 v4; 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

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 on lines +25 to +26
with:
install-unit-test-deps: 'true'
Comment on lines +4 to +9
inputs:
install-matrix-deps:
description: 'Install matrix build dependencies from requirements_matrix_build.txt'
required: false
default: 'false'

Comment thread RELEASE.md
Comment on lines +23 to +27
| Type | Triggers | Example |
|------|----------|---------|
| `feat` | minor version bump | `feat: add AZ/ALT steps-per-degree Meade command` |
| `fix` | patch version bump | `fix: correct sidereal rate after meridian flip` |
| `feat!` or `BREAKING CHANGE:` footer | major version bump | `feat!: remove legacy serial protocol` |
@@ -0,0 +1,3 @@
{
".": "1.13.19"
Comment on lines +1 to +8
{
"$schema": "https://raw.githubusercontent.com/googleapis/release-please/main/schemas/config.json",
"release-type": "simple",
"tag-prefix": "V",
"packages": {
".": {
"release-type": "simple",
"extra-files": [
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.

2 participants