Skip to content

ci(callbacks): add alpha publish workflow#53

Merged
elibosley merged 1 commit into
mainfrom
codex/alpha-publishing
Jun 3, 2026
Merged

ci(callbacks): add alpha publish workflow#53
elibosley merged 1 commit into
mainfrom
codex/alpha-publishing

Conversation

@elibosley
Copy link
Copy Markdown
Member

@elibosley elibosley commented Jun 3, 2026

Summary

  • add a dedicated alpha publishing workflow for @unraid/shared-callbacks
  • publish prereleases only from the long-lived alpha branch or manual dispatch
  • compute unique next-minor prerelease versions like 3.2.0-alpha.<run_number> without committing CI-only version changes
  • publish to npm with the alpha dist-tag and provenance
  • leave the existing release-please main stable release workflow untouched

Rollout

  1. Merge this workflow PR.
  2. Create or fast-forward alpha from main so the branch has the workflow.
  3. Merge integration branches, such as feat(callbacks): add Community Apps alpha contracts #52, into alpha for prerelease testing.
  4. Consumers can test with pnpm add @unraid/shared-callbacks@alpha.
  5. Once validated, merge the integration PRs to main for normal stable release-please publishing.

Verification

  • ruby YAML parse for .github/workflows/publish-alpha.yml
  • pnpm run build
  • pnpm test -- --run src/__tests__/server.test.ts

Summary by CodeRabbit

  • Chores
    • Automated publishing of alpha prerelease versions to npm.

Purpose of the change

- Add an isolated prerelease publishing path for shared-callbacks integration testing.

Previous behavior

- The package only published from main through release-please stable releases.

Why that was a problem

- CA/Core integration work needed an installable shared-callbacks package before it was ready for the public latest tag.

- Testing from local links does not cover normal package resolution or npm dist-tag consumption.

What the new change accomplishes

- Publishes alpha builds from the alpha branch or manual workflow dispatch.

- Uses the npm alpha dist-tag so consumers can opt in with @unraid/shared-callbacks@alpha.

- Leaves main and release-please stable publishing untouched.

How it works

- Computes a unique next-minor alpha version in CI unless a base version is supplied manually.

- Builds and tests before publishing.

- Publishes with provenance and the alpha tag without committing CI-only version mutations.
@elibosley elibosley merged commit 8c6afd7 into main Jun 3, 2026
3 of 4 checks passed
@elibosley elibosley deleted the codex/alpha-publishing branch June 3, 2026 20:15
@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented Jun 3, 2026

Review Change Stack

Caution

Review failed

The pull request is closed.

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: e82cb877-5afb-4e35-96a4-0c3bfda86f55

📥 Commits

Reviewing files that changed from the base of the PR and between 6181363 and 93d7c52.

📒 Files selected for processing (1)
  • .github/workflows/publish-alpha.yml

📝 Walkthrough

Walkthrough

This PR adds a new GitHub Actions workflow that automates alpha prerelease publishing. The workflow supports both manual trigger with optional base version input and automatic trigger on pushes to the alpha branch, with full npm provenance support and conditional publishing skipped for pull requests.

Changes

Alpha Release Workflow

Layer / File(s) Summary
Workflow Triggers and Inputs
.github/workflows/publish-alpha.yml (lines 1–16)
Workflow named "Publish Alpha" runs on pushes to alpha branch, filtered pull requests for relevant paths, and manual dispatch with optional base_version input parameter.
Build Environment and Permissions
.github/workflows/publish-alpha.yml (lines 22–70)
Concurrency policy cancels in-progress runs, permissions include contents: read and id-token: write for provenance. Build job checks out code with submodules, sets up Node from .nvmrc, upgrades npm, installs and caches pnpm store keyed by lockfile hash, and installs dependencies with frozen lockfile.
Alpha Versioning and Publishing
.github/workflows/publish-alpha.yml (lines 71–107)
Non-PR logic parses package.json and computes alpha version from provided base_version or derives next minor version, appends -alpha.<run_number>, and applies via npm version without tagging. Runs build and coverage tests, then publishes to npm with alpha dist-tag, provenance enabled, and git checks disabled (skipped for pull requests).

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~12 minutes

Poem

🐰 A workflow so swift, it runs with the tide,
Alpha releases publishing with npm-crafted pride,
When alpha branch calls or hands dispatch the task,
Version automation—no manual ask!
Provenance certified, builds cache-fast and clean,
The smoothest prerelease pipeline ever seen!

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch codex/alpha-publishing
✨ Simplify code
  • Create PR with simplified code
  • Commit simplified code in branch codex/alpha-publishing

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

@codecov
Copy link
Copy Markdown

codecov Bot commented Jun 3, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 99.08%. Comparing base (6181363) to head (93d7c52).
⚠️ Report is 1 commits behind head on main.

Additional details and impacted files
@@             Coverage Diff             @@
##              main      #53      +/-   ##
===========================================
- Coverage   100.00%   99.08%   -0.92%     
===========================================
  Files            3        3              
  Lines          109      109              
  Branches        30       30              
===========================================
- Hits           109      108       -1     
- Misses           0        1       +1     

☔ View full report in Codecov by Sentry.
📢 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.

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