Skip to content

feat: add OmniRoute vendored release workflow#1

Merged
newbe36524 merged 1 commit intomainfrom
feat/add-omniroute-build-release-workflow
May 5, 2026
Merged

feat: add OmniRoute vendored release workflow#1
newbe36524 merged 1 commit intomainfrom
feat/add-omniroute-build-release-workflow

Conversation

@newbe36524
Copy link
Copy Markdown
Contributor

@newbe36524 newbe36524 commented May 5, 2026

Summary

  • add vendored OmniRoute package build/verify scripts
  • add OmniRoute artifact workflow wired to shared versioning/publication helpers
  • document the new package contract and add release/index safety tests

Validation

  • node --check packages/omniroute/scripts/build-artifacts.mjs
  • node --check packages/omniroute/scripts/verify-startup.mjs
  • node --test scripts/.test.mjs packages/omniroute/scripts/.test.mjs
  • git diff --check

Summary by CodeRabbit

  • New Features

    • Added automated build pipeline for OmniRoute artifacts across multiple platforms (Linux x64, macOS x64, macOS ARM64, Windows x64)
    • Integrated artifact verification and validation processes
    • Enabled publishing of OmniRoute artifacts to Azure Storage and GitHub Releases
  • Documentation

    • Updated README with OmniRoute CI/CD workflow and publication details
  • Tests

    • Added test coverage for artifact metadata generation and GitHub release publishing

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented May 5, 2026

Caution

Review failed

Pull request was closed or merged during review

📝 Walkthrough

Walkthrough

This pull request introduces an automated artifact build, verification, and publication pipeline for OmniRoute across multiple platforms (Linux x64, macOS x64/arm64, Windows x64). A new Git submodule links to the upstream OmniRoute repository. Build scripts package the software with metadata, verification scripts confirm startup correctness, and a GitHub Actions workflow orchestrates matrix builds, validation, and conditional publication to Azure Storage and GitHub Releases alongside existing code-server artifacts.

Changes

OmniRoute Artifact Build and Publishing Pipeline

Layer / File(s) Summary
Submodule & Dependency Setup
.gitmodules, packages/omniroute/upstream
OmniRoute upstream repository is registered as a Git submodule and pinned to commit 99c6dc7f....
Artifact Build Implementation
packages/omniroute/scripts/build-artifacts.mjs
Core script stages release trees by copying upstream/package.json-declared files, archives to platform-specific .zip (Windows) or .tar.gz (Unix), computes SHA-256, and generates metadata JSON with package info, versioning, git revision, and artifact descriptors including blob keys. Exports createMetadataPayload for metadata generation.
Build Verification Implementation
packages/omniroute/scripts/verify-startup.mjs
Verification script locates metadata, extracts the archive to a temp directory, confirms required files exist, runs bin/omniroute.mjs --version with isolated environment overrides, and validates output matches the recorded version.
Build & Verification Testing
packages/omniroute/scripts/build-artifacts.test.mjs
Tests createMetadataPayload correctness: validates metadata shape, extra fields, and the auto-appended metadata artifact descriptor with computed blob key.
CI/CD Workflow Orchestration
.github/workflows/omniroute-artifacts.yaml
Workflow triggers on schedule, workflow edits, pushes/PRs, or manual dispatch. Computes release version/tag, runs a 4-entry OS/arch matrix build job with Node 24 (uploading per-platform artifacts), runs per-entry verify jobs using the submodule's .node-version, and conditionally publishes to Azure and GitHub Releases only on main or manual dispatch with publish_to_azure true, each with concurrency guards.
Multi-Package Release Support
scripts/github-release.test.mjs, scripts/publication.test.mjs
Tests confirm that shared vendored release tags preserve unrelated pre-existing assets (e.g., code-server) when OmniRoute is published, and that version index merges add OmniRoute entries without clobbering existing code-server versions.
Documentation
README.md
Describes the OmniRoute integration directory, artifact workflow with platform matrix, build/verify entrypoints, Azure publication conditions (main-only publish, scheduled-only builds), storage contract (packageId, blob/metadata keys, extra fields), and GitHub Release asset naming to support multi-package shared tags.

Sequence Diagram

sequenceDiagram
    actor User
    participant GHA as GitHub Actions
    participant Builder as Build Matrix
    participant Verifier as Verify Matrix
    participant Azure as Azure Storage
    participant GitHub as GitHub Release

    User->>GHA: Push to main / Manual trigger
    GHA->>GHA: prepare_release: compute version & tag
    GHA->>Builder: build (4 platform/arch entries)
    Builder->>Builder: npm ci, build, stage, archive, compute SHA-256
    Builder->>GHA: upload omniroute-{platform} artifact
    
    GHA->>Verifier: verify (per matrix entry)
    Verifier->>GHA: download omniroute-{platform} artifact
    Verifier->>Verifier: extract archive, run --version, validate
    Verifier->>GHA: report success/failure
    
    alt publish_to_azure == true && (main push || manual)
        GHA->>GHA: download all omniroute-* artifacts
        GHA->>Azure: publish artifacts & metadata to container
        GHA->>Azure: update version index
    end
    
    alt publish_to_azure == true && (main push || manual)
        GHA->>GHA: download all omniroute-* artifacts
        GHA->>GitHub: create/update release with tag & assets
    end
Loading

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~60 minutes

Poem

🐰 A pipeline hops through platforms four,
Building, bundling, checking once more—
From Linux to Windows, the artifacts dance,
Verified quick, then shipped with a chance,
To Azure and GitHub, the releases prance!
~A CodeRabbit's ode to continuous delight 🚀

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The pull request title directly and clearly describes the main change: adding a complete OmniRoute vendored release workflow, which is the primary objective.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
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.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch feat/add-omniroute-build-release-workflow

Tip

💬 Introducing Slack Agent: The best way for teams to turn conversations into code.

Slack Agent is built on CodeRabbit's deep understanding of your code, so your team can collaborate across the entire SDLC without losing context.

  • Generate code and open pull requests
  • Plan features and break down work
  • Investigate incidents and troubleshoot customer tickets together
  • Automate recurring tasks and respond to alerts with triggers
  • Summarize progress and report instantly

Built for teams:

  • Shared memory across your entire org—no repeating context
  • Per-thread sandboxes to safely plan and execute work
  • Governance built-in—scoped access, auditability, and budget controls

One agent for your entire SDLC. Right inside Slack.

👉 Get started


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 and usage tips.

@newbe36524 newbe36524 merged commit 6e0083b into main May 5, 2026
4 of 10 checks passed
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