merge-to-main-and-release

Automates daily linux-next to main promotion, version bumping, tagging, and GitHub release dispatch.

5|Updated Mar 21, 2026
One-click install
npx skills add https://github.com/8007342/tillandsias --skill merge-to-main-and-release-8007342
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: merge-to-main-and-release
Source: https://github.com/8007342/tillandsias/tree/main/skills/merge-to-main-and-release
Command: npx skills add https://github.com/8007342/tillandsias --skill merge-to-main-and-release-8007342

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Coordinating a daily release across a protected main branch, an epoch-anchored CalVer version scheme, and a manual workflow_dispatch release pipeline is error-prone: silent false-green CI gates, null-vs-empty gh CLI traps, tag-push ordering deadlocks, and forgotten back-merges can strand an entire multi-host fleet. This Skill encodes the full, battle-hardened release runbook so every daily cut ships a verified Linux artifact without discarding evidence or blocking sibling hosts. ## Core Features & Use Cases - Gated PR promotion: Refreshes linux-next, opens or reuses the linux-next → main PR, runs the local build gate and release preflight, then merges only when green. - Epoch-anchored CalVer versioning: Computes and bumps versions via scripts/bump-version.sh through a branch-protected PR, never by hand-derivation or direct push. - Ordered tag, back-merge, and dispatch: Creates the annotated tag, back-merges main into the source branch to satisfy the version-monotonicity guard, then triggers the workflow_dispatch release and surfaces artifact URLs. - Use Case: An operator on a Fedora Silverblue host wants a fresh downloadable Linux build each morning; the Skill promotes yesterday's linux-next work, cuts v56.9.12.1, and returns the musl binary download URL for smoke-testing. ## Quick Start Run the merge-to-main-and-release skill to promote today's linux-next work to main, cut the next daily release tag, and give me the Linux artifact download link.

Frequently Asked Questions about merge-to-main-and-release

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I automate a daily GitHub release from an integration branch?▼

Open or reuse a PR from the integration branch to main, gate it with a local full build and preflight script, merge, bump the version via a short-lived PR, tag, back-merge, and trigger the release workflow with gh workflow run. This Skill encodes that exact sequence with failure recovery per step.

How to bump versions and tag releases on a branch-protected main?▼

With enforce_admins branch protection, direct pushes are rejected, so the version bump lands through a short-lived PR that is merged immediately after a local build check. The annotated tag is then created against main's bump-merge commit and pushed only after the back-merge.

Why does gh pr checks --watch pass when no CI checks exist?▼

gh pr checks --watch prints 'no checks reported' and exits 0 when a branch has no checks, producing a false green. The runbook replaces it with an explicit local gate (./build.sh --ci-full plus release-preflight.sh) that must pass before merging.

Why is my git tag push refused with version-not-monotonic?▼

The pre-push guard resolves the newly created local tag as the latest release and compares it against the branch's older VERSION, refusing the push. The fix is to back-merge main's version bump into the source branch first, then push both the tag and the branch.

What versioning scheme does this release flow use?▼

It uses epoch-anchored CalVer: years_since_epoch.month.day.build, such as 56.8.31.3 for the third build of 2026-08-31. scripts/bump-version.sh is the executable definition and the format must never be re-derived by hand.