build-and-deploy-release

Builds, signs, and publishes Llama Manager .deb packages, APT repository, and ISO to the live download site.

4|2|Updated Feb 2, 2026
One-click install
npx skills add https://github.com/yolanother/WebLlamaManager --skill build-and-deploy-release-yolanother
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: build-and-deploy-release
Source: https://github.com/yolanother/WebLlamaManager/tree/main/.claude/skills/build-and-deploy-release
Command: npx skills add https://github.com/yolanother/WebLlamaManager --skill build-and-deploy-release-yolanother

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Cutting a Llama Manager appliance release involves many fragile steps — building the app from main, packaging signed .deb files, assembling a bootable ISO, publishing an APT repo atomically, and syncing to the live download host — where mistakes like stale builder images, one-pass rsyncs, or missing signing passphrases cause real outages. This Skill provides the operational runbook that executes the whole pipeline correctly. ## Core Features & Use Cases - Unattended release pipeline: Runs release-runner.sh to build, sign, publish, sync to thromgar, and verify public URLs with no human in the loop when signing is provisioned. - Local iteration loop: Uses --no-sync plus serve-local.sh to publish a signed release to the NAS and serve it over LAN for flashing without touching production. - Asset and signing management: Stages pinned build inputs from the NAS asset mirror via fetch-assets.sh, verifies lock digests, and detects whether unattended GPG signing is provisioned or requires a human operator. - Use Case: When asked to "cut a release" or "publish a new appliance build", the Skill builds the app in an isolated worktree, runs tests and dpkg-buildpackage, signs the APT repo and ISO, performs the two-pass rsync to the live site, and verifies checksums and range requests on the public URLs. ## Quick Start Ask the agent to cut and publish a new Llama Manager appliance release from current main using the release runner.

Frequently Asked Questions about build-and-deploy-release

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I build and publish a new Llama Manager appliance release?

Run distribution/release-service/release-runner.sh --force, which builds the app from main, signs the APT repo and ISO, publishes atomically to the NAS, syncs to thromgar, and verifies public URLs. Use --dry-run for an unsigned rehearsal.

How do I test a release build without touching the live download site?

Run release-runner.sh --force --no-sync to publish the signed release to the NAS only, then serve it locally with serve-local.sh on port 8710. Point the flasher at that LAN URL via LMF_AMD_BASE_URL and validate before running a normal syncing release.

Can an automated agent sign the release, or is a human required?

An agent can sign when unattended signing is provisioned, detected by the presence of the mode-0600 passphrase file at /volumes/llama-manager/private/signing/passphrase. If absent, signing blocks on pinentry-curses and a human operator must run the two signing steps in a real terminal.

Why does the live site sync use two rsync passes instead of one?

A single-pass rsync transfers the tiny apt/images symlinks before their multi-GB payload, repointing the live site at an incomplete snapshot and causing hours of 404s. Pass one syncs payload with --no-links; pass two flips the symlinks in a single rename.

What happens if the NAS asset mirror is lost?

Three assets — ds4-server-gfx1151, llama-rocm-7.2.4-oci, and llama-cuda-gb10 — are mirror-only with no upstream recovery path, so losing the mirror makes them unrecoverable. The Skill includes a rehearsal procedure that restores them into a scratch directory with network disabled to prove the backup works.

Why did a release fail with 'mksquashfs is required by this contract'?

The builder container image was stale: Containerfile.builder gained squashfs-tools but the image was never rebuilt. release-runner.sh prevents this by hashing the Containerfile into an image label and rebuilding on divergence; manual builds must check the label themselves.