ci(release): add build-linux workflow + clippy/fmt cleanup + reqwest rustls (v0.1.0-rc1 prep) #26

Merged
mik-tf merged 3 commits from development_mik_release_pipeline into development 2026-05-06 20:47:29 +00:00
Owner

First release pipeline for hero_office (Bucket C item 4 of lhumina_code/home#212).

Three commits, all needed before tagging v0.1.0-rc1:

  1. style: cargo fmt --all — mechanical fmt sweep (1 file).
  2. fix(clippy) — 2 errors blocking -D warnings: collapsible if-let chain in hero_office_examples/tests/integration.rs, and a doc-list paragraph break in hero_office_ui/src/config.rs. Both surfaced by cargo clippy --workspace --all-targets --keep-going on the pre-flight pass.
  3. ci: add build-linux workflow + switch reqwest to rustls for static-musl — mirrors hero_collab/.forgejo/workflows/build-linux.yaml byte-for-byte except the cargo build -p list (scoped to the 3 shipped crates: hero_office_server, hero_office_ui, hero_office; skips hero_office_sdk lib auto-built as dep and hero_office_examples test fixtures). reqwest flipped to default-features=false, features=[json,rustls-tls] — the default native-tls path pulled hyper-tls → native-tls → openssl-sys, which does not cross-compile to musl without a sysroot. Same fix shape as hero_biz/hero_slides in session 55. Drops 422 Cargo.lock lines.

Local verification:

  • cargo fmt --all -- --check clean.
  • cargo clippy --workspace --all-targets --keep-going -- -D warnings clean.
  • CC_x86_64_unknown_linux_musl=musl-gcc cargo build --release --target x86_64-unknown-linux-musl -p hero_office_server -p hero_office_ui -p hero_office produces 3 stripped binaries.

Workflow output (target-triple naming per lhumina_code/home#212):

hero_office-x86_64-unknown-linux-musl
hero_office_server-x86_64-unknown-linux-musl
hero_office_ui-x86_64-unknown-linux-musl

Consumer wiring (suffix flip + dispatcher --download/--version forwarding) lands as a separate hero_skills PR.

First release pipeline for `hero_office` (Bucket C item 4 of https://forge.ourworld.tf/lhumina_code/home/issues/212). Three commits, all needed before tagging `v0.1.0-rc1`: 1. `style: cargo fmt --all` — mechanical fmt sweep (1 file). 2. `fix(clippy)` — 2 errors blocking `-D warnings`: collapsible if-let chain in `hero_office_examples/tests/integration.rs`, and a doc-list paragraph break in `hero_office_ui/src/config.rs`. Both surfaced by `cargo clippy --workspace --all-targets --keep-going` on the pre-flight pass. 3. `ci: add build-linux workflow + switch reqwest to rustls for static-musl` — mirrors `hero_collab/.forgejo/workflows/build-linux.yaml` byte-for-byte except the `cargo build -p` list (scoped to the 3 shipped crates: `hero_office_server`, `hero_office_ui`, `hero_office`; skips `hero_office_sdk` lib auto-built as dep and `hero_office_examples` test fixtures). reqwest flipped to `default-features=false, features=[json,rustls-tls]` — the default native-tls path pulled hyper-tls → native-tls → openssl-sys, which does not cross-compile to musl without a sysroot. Same fix shape as hero_biz/hero_slides in session 55. Drops 422 Cargo.lock lines. Local verification: - `cargo fmt --all -- --check` clean. - `cargo clippy --workspace --all-targets --keep-going -- -D warnings` clean. - `CC_x86_64_unknown_linux_musl=musl-gcc cargo build --release --target x86_64-unknown-linux-musl -p hero_office_server -p hero_office_ui -p hero_office` produces 3 stripped binaries. Workflow output (target-triple naming per https://forge.ourworld.tf/lhumina_code/home/issues/212): ``` hero_office-x86_64-unknown-linux-musl hero_office_server-x86_64-unknown-linux-musl hero_office_ui-x86_64-unknown-linux-musl ``` Consumer wiring (suffix flip + dispatcher `--download/--version` forwarding) lands as a separate hero_skills PR.
Mechanical fmt sweep, no logic change.

Signed-off-by: mik-tf
Signed-off-by: mik-tf <logismos@protonmail.ch>
Two clippy errors blocking '-D warnings' on the workspace:

- hero_office_examples/tests/integration.rs: collapse 'if let / if .is_ok()'
  into 2024-edition let-chain (clippy::collapsible_if).
- hero_office_ui/src/config.rs: add blank-line paragraph break before
  trailing doc sentence so it isn't read as a continuation of the
  preceding list item (clippy::doc_lazy_continuation).

Surface from cargo clippy --workspace --all-targets --keep-going -- -D warnings
on the pre-flight pass for the v0.1.0-rc1 release pipeline.

Signed-off-by: mik-tf
Signed-off-by: mik-tf <logismos@protonmail.ch>
First release pipeline for hero_office. Mirrors hero_collab/build-linux.yaml
byte-for-byte except the cargo build -p list, which scopes to the three
shipped crates (hero_office_server, hero_office_ui, hero_office). Skips
hero_office_sdk (built transitively as a dep) and hero_office_examples
(test fixtures).

Workflow output: 3 stripped static-pie musl binaries, target-triple
naming per lhumina_code/home#212:
  hero_office-x86_64-unknown-linux-musl
  hero_office_server-x86_64-unknown-linux-musl
  hero_office_ui-x86_64-unknown-linux-musl

reqwest workspace dep flipped to default-features=false +
features=[json,rustls-tls] — the default native-tls path pulls
hyper-tls -> native-tls -> openssl-sys, which doesn't cross-compile
to musl without a sysroot. Same fix shape as hero_biz/hero_slides in
session 55. Drops 422 lines from Cargo.lock (native-tls/openssl-sys
chain gone, replaced by rustls/ring already present transitively via
hero_rpc_openrpc).

Signed-off-by: mik-tf
Signed-off-by: mik-tf <logismos@protonmail.ch>
mik-tf merged commit 4b7470e672 into development 2026-05-06 20:47:29 +00:00
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
lhumina_code/hero_office!26
No description provided.