Skip to content

ci: build and upload a release Linux binary as a run artifact - #33

Merged
luthermonson merged 1 commit into
mainfrom
ci/release-binary
Sep 10, 2026
Merged

luthermonson merged 1 commit into
mainfrom
ci/release-binary

Conversation

@luthermonson

Copy link
Copy Markdown
Contributor

Adds .github/workflows/release.yml. On workflow_dispatch, push to main, and v* tags, it builds a release Linux binary of switchboard and uploads it as a run artifact so it can be deployed to the preview nodes.

Why

switchboard has only had ci.yml (format/clippy/test/MSRV) — nothing built or uploaded a binary. The preview nodes run an ad-hoc switchboard 0.1.0; we need one from main (now includes #32, the preview-auth repo field). Merging this runs it immediately (push: main) and produces the artifact.

Details

  • One job on [self-hosted, linux, x64] — same ephemerd runner class that built the working node binary, so glibc-compatible (no musl/container).
  • Mirrors ci.yml: checkout@v4, the verbatim privilege-escalation "Install build prerequisites" step, dtolnay/rust-toolchain@stable, Swatinem/rust-cache@v2.
  • cargo build --release --locked → uploads target/release/switchboard as switchboard-linux-x64-<short-sha>, if-no-files-found: error.
  • No GitHub Release, no signing.

Validation

actionlint clean; single [package] switchboard bin → target/release/switchboard; Cargo.lock present so --locked is safe.

Adds .github/workflows/release.yml. On workflow_dispatch, push to main,
and v* tags it builds `cargo build --release --locked` on the same
[self-hosted, linux, x64] ephemerd runner class that produced the node
binaries (glibc-compatible, no musl/container) and uploads
target/release/switchboard as artifact switchboard-linux-x64-<shortsha>.

Mirrors ci.yml conventions: actions/checkout@v4, the run-time
privilege-escalation build-prerequisites step (build-essential+pkg-config),
dtolnay stable toolchain, Swatinem/rust-cache. No GitHub Release, no signing.
@luthermonson
luthermonson merged commit 54c474b into main Sep 10, 2026
4 checks passed
@luthermonson
luthermonson deleted the ci/release-binary branch September 10, 2026 22:36
@ephpm

ephpm Bot commented Sep 10, 2026

Copy link
Copy Markdown

ePHPm Preview — removed

Preview deployment has been torn down.

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