Skip to content

action: version nightly builds from the latest trunk tag (not stable+1) - #10496

Draft
igorpecovnik wants to merge 1 commit into
mainfrom
fix/nightly-trunk-version
Draft

igorpecovnik wants to merge 1 commit into
mainfrom
fix/nightly-trunk-version

Conversation

@igorpecovnik

@igorpecovnik igorpecovnik commented Aug 22, 2026

Copy link
Copy Markdown
Member

Problem

The build action's base-version resolver only matched clean
MAJOR.MINOR.PATCH tags from armbian/ci and then +1'd the patch:

select(test("^[0-9]+[.][0-9]+[.][0-9]+$"))   # excludes the nightlies

So a build from main picked the latest stable (26.8.3) and produced
26.8.4 — even though armbian/ci's live development series was already
26.11.0-trunk.20. The SDK's images and its armbian-images.json were
therefore stamped with a stale, wrong version (26.8.4).

Fix

Include the X.Y.Z-trunk.N nightly tags in the candidate set and take the
highest across both with sort -V:

  • Winner is a trunk tag → reuse it verbatim (26.11.0-trunk.20); it
    already denotes the current unreleased dev version, so no +1.
  • Winner is a clean stable tag → next-patch bump, exactly as before.

Verified

latest ci tag old result new result
26.11.0-trunk.20 (+ 26.8.3 stable) 26.8.4 26.11.0-trunk.20
26.8.3 (no trunk) 26.8.4 26.8.4 (unchanged)
v26.8.3 v26.8.4 v26.8.4 (unchanged)

sort -V over the real tag set selects 26.11.0-trunk.20. The framework
already supports a -trunk.N REVISION (that's how ci's own nightlies are
versioned), so filenames/manifests parse it fine.

Pairs with the SDK ISO/manifest work (#10495, armbian/sdk#40).

Summary by CodeRabbit

  • New Features

    • Added support for resolving nightly -trunk.N release versions.
    • Preserves trunk version identifiers instead of incrementing them.
  • Bug Fixes

    • Improved version selection across stable and trunk releases.
    • Updated error messaging when no release version can be found.

The base-version resolver matched only clean MAJOR.MINOR.PATCH tags from
armbian/ci and then incremented the patch. On a build from main that meant
the current stable (e.g. 26.8.3) + 1 = 26.8.4, even though ci's live
development series was already 26.11.0-trunk.N - so SDK/nightly images and
their armbian-images.json were stamped with a stale, wrong version.

Include the X.Y.Z-trunk.N nightly tags in the candidate set and take the
highest across both with sort -V. When the winner is a trunk tag, reuse it
verbatim (it already denotes the current unreleased dev version - no +1);
a clean stable tag still gets the next-patch bump as before.

Signed-off-by: Igor Pecovnik <igor@armbian.com>
@coderabbitai

coderabbitai Bot commented Aug 22, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro Plus

Run ID: 3c4b6760-47cc-4b96-8416-043c8e49e91a

📥 Commits

Reviewing files that changed from the base of the PR and between 05236f0 and 709bebc.

📒 Files selected for processing (1)
  • action.yml

Included review availability: Your plan provides up to 8 included reviews per hour; 7 remain after this review.


📝 Walkthrough

Walkthrough

The composite action now resolves the highest stable or trunk release tag. It preserves trunk versions as-is and increments stable versions after removing release-candidate or metadata suffixes.

Changes

Version resolution

Layer / File(s) Summary
Release tag selection
action.yml
The tag filter accepts stable and -trunk.N tags. The action selects the highest matching tag and updates the failure message.
Next version computation
action.yml
The action reuses trunk versions without incrementing them. Stable versions retain the existing prefix handling and patch increment logic.

Estimated code review effort: 3 (Moderate) | ~20 minutes

Merge Risk: ⚪ Minimal · up to 709be

The PR makes a localized version-selection change, and no actionable merge-blocking risk remains based on the supplied evidence; it is merge-ready after normal checks and review.

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff. Analyzed 0 functions across 0 files. (1 skipped: 1 unsupported.)
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly describes the main change: using the latest trunk tag to version nightly builds instead of incrementing the stable version.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch fix/nightly-trunk-version

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@github-actions github-actions Bot added size/small PR with less then 50 lines 08 Milestone: Third quarter release Needs review Seeking for review labels Aug 22, 2026
@igorpecovnik
igorpecovnik marked this pull request as draft August 22, 2026 11:03
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

08 Milestone: Third quarter release Needs review Seeking for review size/small PR with less then 50 lines

Development

Successfully merging this pull request may close these issues.

1 participant