Skip to content

ci(release): tag automatically when a dev-v* branch merges to main - #297

Merged
roncodes merged 3 commits into
mainfrom
ci/release-tag-automation
Aug 17, 2026
Merged

ci(release): tag automatically when a dev-v* branch merges to main#297
roncodes merged 3 commits into
mainfrom
ci/release-tag-automation

Conversation

@roncodes

Copy link
Copy Markdown
Member

Adds the release-tag caller. Part of the rollout for fleetbase/fleetbase#620, which holds the reusable workflow this delegates to.

What it does

When a dev-v* branch is merged to main, it validates and pushes the tag — and nothing else. create-release.yml and the publish jobs in this repository already chain off push: tags: ['v*'], so a second release path would duplicate them.

The version is never retyped. It comes from the branch name (dev-v1.2.3v1.2.3), and the tag is refused unless every version file and RELEASE.md already agree with it.

Validation, each failing rather than warning

  • the PR was merged, not merely closed, from a dev-v<semver> branch
  • every version file exists, yields a version, and matches
  • RELEASE.md exists, is non-empty, and its first line names this version
  • no tag already exists at a different commit (same commit is a safe no-op)

The tag goes on the PR's merge commit, never on main at run time.

Before this can release

  1. ci(release): tag automatically when a dev-v* branch merges to main fleetbase#620 must merge first@main will not resolve until it does.
  2. This repo needs a RELEASE.md whose first line names the version, e.g.
    > v1.2.3 ~ "What this release is about"
    
    Without it the notes check fails and no tag is pushed. That check is the only thing that can distinguish notes written for this release from the previous release's notes nobody replaced.

🤖 Generated with Claude Code

Delegates to the reusable workflow in fleetbase/fleetbase, which validates and pushes
the tag; create-release.yml and the publish jobs here already chain off the tag push.

The version is never retyped — it comes from the dev-v* branch name, and the tag is
refused unless the version files and RELEASE.md already agree with it. This repository
is an ember addon plus a server, so it carries composer.json, package.json and extension.json.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@codecov

codecov Bot commented Aug 17, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 100.00%. Comparing base (fa37e78) to head (da92ac0).

Additional details and impacted files
@@             Coverage Diff             @@
##                main      #297   +/-   ##
===========================================
  Coverage     100.00%   100.00%           
  Complexity      9766      9766           
===========================================
  Files            521       521           
  Lines          37762     37762           
===========================================
  Hits           37762     37762           
Flag Coverage Δ
backend 100.00% <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

Matches fleetbase/fleetbase, which has always used body_path. The release workflow now
requires RELEASE.md and refuses to tag without it, so without this the notes would be
mandatory to write and displayed nowhere.

generate_release_notes stays on so GitHub's commit list is appended beneath the
hand-written notes.
@roncodes
roncodes merged commit b68d7d4 into main Aug 17, 2026
9 checks passed
@roncodes
roncodes deleted the ci/release-tag-automation branch August 17, 2026 05:42
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.

1 participant