feat: build meshagent and publish as a Forgejo generic package #9

Merged
David merged 1 commit from feat/linux-package-build into main 2026-05-07 01:58:17 +02:00
Owner

Adds a Linux release pipeline that compiles cargo build --release --locked --bin meshagent inside rust:1.93.1-slim-bookworm, extracts the resulting binary via a scratch export stage and docker buildx --output type=local, and uploads it to dev.a8n.run/api/packages/<owner>/generic/meshagent/<version>/. A SHA-256 checksum file is published alongside. The workflow runs on push to main and on v* tags. The agent ships as a self-contained binary rather than a container, so this pipeline produces a generic package rather than an OCI image; that is the only deliverable for the agent today.

Files:

  • oci-build/release.Dockerfile - builder + scratch export, separate from oci-build/check.Dockerfile so the validation and release flows can evolve independently.
  • oci-build/get-version.nu - mirrors the sibling get-tags.nu style but emits a single generic-package version: clean <x.y.z> on an exact tag, <x.y.z>-<n>-g<sha> on commits past a tag, 0.0.0-g<sha> when the repo has no tags yet.
  • .forgejo/workflows/build-package.yml - Docker buildx + curl upload, gated to main and v* so feature branches do not waste packages.

Co-Authored-By: Claude Opus 4.7 (1M context) noreply@anthropic.com

Adds a Linux release pipeline that compiles `cargo build --release --locked --bin meshagent` inside `rust:1.93.1-slim-bookworm`, extracts the resulting binary via a `scratch` export stage and `docker buildx --output type=local`, and uploads it to `dev.a8n.run/api/packages/<owner>/generic/meshagent/<version>/`. A SHA-256 checksum file is published alongside. The workflow runs on push to `main` and on `v*` tags. The agent ships as a self-contained binary rather than a container, so this pipeline produces a generic package rather than an OCI image; that is the only deliverable for the agent today. Files: - oci-build/release.Dockerfile - builder + scratch export, separate from oci-build/check.Dockerfile so the validation and release flows can evolve independently. - oci-build/get-version.nu - mirrors the sibling `get-tags.nu` style but emits a single generic-package version: clean `<x.y.z>` on an exact tag, `<x.y.z>-<n>-g<sha>` on commits past a tag, `0.0.0-g<sha>` when the repo has no tags yet. - .forgejo/workflows/build-package.yml - Docker buildx + curl upload, gated to main and `v*` so feature branches do not waste packages. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
feat: build meshagent and publish as a Forgejo generic package
Some checks failed
Check / clippy + fmt + tests (pull_request) Failing after 20s
c0f4199e8d
Adds a Linux release pipeline that compiles `cargo build --release --locked --bin meshagent` inside `rust:1.93.1-slim-bookworm`, extracts the resulting binary via a `scratch` export stage and `docker buildx --output type=local`, and uploads it to `dev.a8n.run/api/packages/<owner>/generic/meshagent/<version>/`. A SHA-256 checksum file is published alongside. The workflow runs on push to `main` and on `v*` tags. The agent ships as a self-contained binary rather than a container, so this pipeline produces a generic package rather than an OCI image; that is the only deliverable for the agent today.

Files:
- oci-build/release.Dockerfile - builder + scratch export, separate from oci-build/check.Dockerfile so the validation and release flows can evolve independently.
- oci-build/get-version.nu - mirrors the sibling `get-tags.nu` style but emits a single generic-package version: clean `<x.y.z>` on an exact tag, `<x.y.z>-<n>-g<sha>` on commits past a tag, `0.0.0-g<sha>` when the repo has no tags yet.
- .forgejo/workflows/build-package.yml - Docker buildx + curl upload, gated to main and `v*` so feature branches do not waste packages.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
David merged commit 804165c786 into main 2026-05-07 01:58:17 +02:00
David deleted branch feat/linux-package-build 2026-05-07 01:58:17 +02:00
Sign in to join this conversation.
No reviewers
No labels
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
psa-systems/vervain-agent!9
No description provided.