2.8 KiB
2.8 KiB
dbtool-cli-v1 Release Runbook
Purpose
This runbook defines the smallest release artifact contract for dbtool-cli-v1.
Current Baseline
- Release smoke is implemented in
.github/workflows/release-smoke.yml. - The workflow targets Linux, macOS, and Windows release runners.
- Each runner builds the release binary, runs
--helpand--version, packages one distributable archive, and emits a SHA256 checksum. - Local validation in the current backend environment is limited to the Linux packaging path; macOS and Windows still require GitHub-hosted runners or equivalent CI workers.
Artifact Contract
- Linux:
dbtool-<version>-x86_64-unknown-linux-gnu.tar.gz - macOS:
dbtool-<version>-x86_64-apple-darwin.tar.gz - Windows:
dbtool-<version>-x86_64-pc-windows-msvc.zip - Checksum:
<artifact-name>.sha256
Each packaged artifact contains:
dbtoolordbtool.exeREADME.mdRELEASE_RUNBOOK.mdSMOKE_RUNBOOK.md
CI Steps
Each matrix entry in .github/workflows/release-smoke.yml performs:
- install stable Rust
cargo build --release --bin dbtool- smoke the binary with
--helpand--version - package one archive with the platform naming contract
- generate a SHA256 sidecar file
- upload the archive and checksum as workflow artifacts
Local Linux Validation
In a Linux environment with the same linker workaround used by the repo:
export HOME="$AGENT_HOME"
export CARGO_HOME="$AGENT_HOME/.cargo"
export RUSTUP_HOME="$AGENT_HOME/.rustup"
export PATH="$CARGO_HOME/bin:$PATH"
export CC="$AGENT_HOME/tools/zig-cc"
export AR="$AGENT_HOME/tools/zig-ar"
export CARGO_TARGET_X86_64_UNKNOWN_LINUX_GNU_LINKER="$AGENT_HOME/tools/zig-cc"
cargo build --release --bin dbtool
scripts/release/smoke-binary.sh target/release/dbtool
scripts/release/package-unix.sh x86_64-unknown-linux-gnu target/release/dbtool
Expected outputs:
dist/dbtool-<version>-x86_64-unknown-linux-gnu.tar.gzdist/dbtool-<version>-x86_64-unknown-linux-gnu.tar.gz.sha256
QA Usage
For a produced artifact, QA should:
- verify the SHA256 checksum
- unpack the archive
- run
dbtool --help - run
dbtool --version - follow
SMOKE_RUNBOOK.mdfor database-backed validation in a Docker-capable environment
Rollback
If a newly built artifact fails smoke or QA validation:
- stop distributing the new archive set
- keep the failing archive and checksum for investigation
- redirect consumers back to the most recent previously verified artifact set
- record the failure cause, affected platform, and whether the issue is build-time, package-time, or runtime
Current Blocker
This runbook cannot claim fully verified cross-platform release readiness until the workflow runs successfully on real Linux, macOS, and Windows runners and QA completes the Docker-backed smoke path.