build-release
Streamline the build and release process for voxtype binaries using Docker-based infrastructure.
Install
mkdir -p .claude/skills/build-release && curl -L -o skill.zip "https://agentskills.codes/api/skills/download/2933" && unzip -o skill.zip -d .claude/skills/build-release && rm skill.zipInstalls to .claude/skills/build-release
Activation
This is the description your AI agent reads to decide when to run this skill — the better it matches your request, the more reliably it fires.
Build all voxtype binaries for release. Builds Whisper (AVX2, AVX-512, Vulkan) and ONNX (AVX2, AVX-512, CUDA) binaries using Docker. Use when preparing a new release.Key capabilities
- →Build Whisper binaries for AVX2, AVX-512, and Vulkan architectures
- →Build ONNX binaries for AVX2, AVX-512, and CUDA architectures
- →Generate SHA256 checksums for built binaries
- →Create GitHub pre-releases with built artifacts
- →Verify binary versions after compilation
How it works
The skill uses Docker to build remote binaries for various architectures and local compilation for AVX-512 specific builds, then generates checksums and creates a GitHub release.
Inputs & outputs
When to use build-release
- →Build release binaries for various architectures
- →Generate checksums for new releases
- →Automate release creation on GitHub
- →Compile Whisper for Vulkan and AVX2
About this skill
Build Release Binaries
Build all 6 voxtype binaries for a release:
- Whisper: AVX2, AVX-512, Vulkan
- ONNX (Parakeet + Moonshine): AVX2, AVX-512, CUDA
Prerequisites
- Docker with remote context
truenasconfigured (pre-AVX-512 server) - Local AVX-512 capable CPU for AVX-512 builds
- Current branch pushed to origin
Quick Reference
# Set version
export VERSION=X.Y.Z
# Build remote binaries (AVX2, Vulkan, ONNX-AVX2, ONNX-CUDA)
docker context use truenas
docker compose -f docker-compose.build.yml build --no-cache avx2 vulkan onnx-avx2 onnx-cuda
docker compose -f docker-compose.build.yml up avx2 vulkan onnx-avx2 onnx-cuda
# Build local AVX-512 binaries
docker context use default
cargo clean && cargo build --release
cp target/release/voxtype releases/${VERSION}/voxtype-${VERSION}-linux-x86_64-avx512
cargo clean && RUSTFLAGS="-C target-cpu=native" cargo build --release --features parakeet,moonshine
cp target/release/voxtype releases/${VERSION}/voxtype-${VERSION}-linux-x86_64-onnx-avx512
# Verify versions
for bin in releases/${VERSION}/voxtype-*; do echo "$(basename $bin): $($bin --version)"; done
# Generate checksums
cd releases/${VERSION} && sha256sum voxtype-* > SHA256SUMS
# Create pre-release
gh release create v${VERSION} --prerelease --target BRANCH releases/${VERSION}/*
Suggested Bash Permissions
To avoid prompts during the build process, add these to your allowed commands:
- tool: Bash
prompt: switch docker context
- tool: Bash
prompt: build docker images
- tool: Bash
prompt: run docker containers
- tool: Bash
prompt: copy docker container files
- tool: Bash
prompt: cargo build
- tool: Bash
prompt: copy binaries
- tool: Bash
prompt: verify binary versions
- tool: Bash
prompt: generate checksums
- tool: Bash
prompt: create github release
- tool: Bash
prompt: git push
Workflow
1. Prepare Version
Ensure Cargo.toml is updated and committed:
# Edit Cargo.toml with new version
cargo build # Updates Cargo.lock
git add Cargo.toml Cargo.lock
git commit -S -m "Bump to vX.Y.Z"
git push
2. Build Remote Binaries (AVX2, Vulkan, ONNX)
These builds use Ubuntu 22.04 to avoid AVX-512 instruction contamination:
export VERSION=X.Y.Z
docker context use truenas
mkdir -p releases/${VERSION}
# Build all Docker images (takes ~10-15 min)
docker compose -f docker-compose.build.yml build --no-cache avx2 vulkan onnx-avx2 onnx-cuda
# Extract binaries
docker compose -f docker-compose.build.yml up avx2 vulkan onnx-avx2 onnx-cuda
3. Build Local AVX-512 Binaries
AVX-512 builds require a host CPU with AVX-512 support:
docker context use default
# Whisper AVX-512
cargo clean && cargo build --release
cp target/release/voxtype releases/${VERSION}/voxtype-${VERSION}-linux-x86_64-avx512
# ONNX AVX-512
cargo clean && RUSTFLAGS="-C target-cpu=native" cargo build --release --features parakeet,moonshine
cp target/release/voxtype releases/${VERSION}/voxtype-${VERSION}-linux-x86_64-onnx-avx512
4. Verify All Binaries
for bin in releases/${VERSION}/voxtype-*; do
echo -n "$(basename $bin): "
$bin --version
done
All binaries must report the same version. If any differ, the Docker cache is stale.
5. Generate Checksums
cd releases/${VERSION}
sha256sum voxtype-* > SHA256SUMS
cat SHA256SUMS
6. Create GitHub Release
gh release create v${VERSION} \
--title "vX.Y.Z: Title" \
--prerelease \
--target BRANCH \
releases/${VERSION}/*
Troubleshooting
Wrong binary version
Docker caches aggressively. Rebuild with --no-cache:
docker compose -f docker-compose.build.yml build --no-cache avx2 vulkan
Remote build output missing
If docker compose up shows old binaries, the containers are stale. Use docker run to run fresh containers from the new images.
AVX-512 contamination in AVX2 binary
Check with objdump:
objdump -d releases/${VERSION}/voxtype-*-avx2 | grep -c zmm
Should be 0. If not, rebuild on a pre-AVX-512 host.
Expected Output
After successful build, releases/${VERSION}/ should contain:
voxtype-X.Y.Z-linux-x86_64-avx2
voxtype-X.Y.Z-linux-x86_64-avx512
voxtype-X.Y.Z-linux-x86_64-vulkan
voxtype-X.Y.Z-linux-x86_64-onnx-avx2
voxtype-X.Y.Z-linux-x86_64-onnx-avx512
voxtype-X.Y.Z-linux-x86_64-onnx-cuda
SHA256SUMS
Prerequisites
How it compares
This workflow automates the multi-architecture compilation and release process, unlike manual compilation and artifact management.
Compared to similar skills
build-release side by side with the closest alternatives in the catalog.
| Skill | Installs | Updated | Safety | Difficulty |
|---|---|---|---|---|
| build-release (this skill) | 1 | 5mo | Review | Intermediate |
| gcp-cloud-run | 5 | 5mo | Review | Intermediate |
| deployment-engineer | 4 | 4mo | No flags | Advanced |
| publish-mock-server | 1 | 6mo | Review | Beginner |
Try saying
Example prompts that trigger this skill in your AI assistant.
More by peteonrails
View all by peteonrails →You might also like
gcp-cloud-run
aj-geddes
Deploy containerized applications on Google Cloud Run with automatic scaling, traffic management, and service mesh integration. Use for container-based serverless computing.
deployment-engineer
sickn33
Expert deployment engineer specializing in modern CI/CD pipelines, GitOps workflows, and advanced deployment automation. Masters GitHub Actions, ArgoCD/Flux, progressive delivery, container security, and platform engineering. Handles zero-downtime deployments, security scanning, and developer experience optimization. Use PROACTIVELY for CI/CD design, GitOps implementation, or deployment automation.
publish-mock-server
vfarcic
Build and publish the mock-server Docker image to GitHub Container Registry. Use when mock server fixtures or code have changed and need to be published.
Docker image publishing
rcarmo
multi-arch image publishing to GHCR via GitHub Actions
deployment-patterns
DekaPrayoga
Deployment workflows, CI/CD pipeline patterns, Docker containerization, health checks, rollback strategies, and production readiness checklists for web applications.
deployment-pipeline-design
wshobson
Design multi-stage CI/CD pipelines with approval gates, security checks, and deployment orchestration. Use when architecting deployment workflows, setting up continuous delivery, or implementing GitOps practices.