DOCS release
Support# Release Workflow This guide describes the process for creating and publishing Bauxite releases. ## Overview The release process is split into two distinct phases: 1. **Package** — Build binaries and artifacts locally for review 2. **Publish** — Push artifacts to GitHub Releases and GHCR This separation prevents accidental releases and allows artifact verification before publishing. ## Prerequisites - `gh` CLI authenticated: `gh auth login` - Docker authenticated: `docker login ghcr.io` - Git configured with proper credentials - Zig installed (for cross-compilation): `brew install zig` or `sudo apt install zig` - `cargo-zigbuild` installed: `cargo install cargo-zigbuild` ## Release Process ### 1. Package Artifacts ```bash make package ``` This builds all release binaries and places them in `target/package/`: - `bauxite-x86_64` — Standard Linux AMD64 - `bauxite-aarch64` — Standard Linux ARM64 - `bauxite-fips-x86_64` — FIPS 140-3 compliant variant - `checksums.txt` — SHA256 checksums Review the artifacts: ```bash ls -lh target/package/ sha256sum -c target/package/checksums.txt ``` ### 2. Tag and Push ```bash git tag v0.2.0 git push origin v0.2.0 ``` > **Important:** The `make publish` command requires a git tag to exist. It uses the most recent tag to name the release. ### 3. Publish ```bash make publish ``` This performs two actions: 1. **GitHub Release** — Creates a release with binaries and checksums 2. **Docker Push** — Builds and pushes multi-arch Docker image to GHCR The Docker image is tagged with: - Full version: `v0.2.0` - Major.minor: `0.2` - `latest` ## Manual Publishing If you need to publish components separately: ### Binaries Only ```bash make publish-binaries ``` ### Docker Only ```bash make publish-docker ``` ## Enterprise Releases Enterprise components (Dispatch, Forge, Android) are released separately from the `bauxite-enterprise` repository. Enterprise components (Dispatch, Forge, Android) are released from the `bauxite-enterprise` repository. See its README for enterprise-specific release instructions. ## Rollback Procedure If a release needs to be rolled back: 1. Delete the Docker tag: ```bash docker buildx imagetools rm ghcr.io/bauxite-networks/bauxite-agent:v0.2.0 ``` 2. Delete or draft the GitHub Release via the GitHub UI or CLI: ```bash gh release delete v0.2.0 --yes ``` 3. Push a patch version: ```bash git tag v0.2.1 git push origin v0.2.1 make publish ```