Skip to content

Mobayilo CLI - Release Runbook

This runbook defines how to publish a moby CLI release with installable artifacts and checksums.

  • CLI module path: cli/
  • Binary name: moby
  • Release assets:
    • moby_<version>_darwin_amd64.tar.gz
    • moby_<version>_darwin_arm64.tar.gz
    • moby_<version>_linux_amd64.tar.gz
    • moby_<version>_linux_arm64.tar.gz
    • checksums.txt
  • Public installer distribution endpoint:
    • https://mobycli.mobayilo.com/releases/latest.json
    • https://mobycli.mobayilo.com/releases/v<version>/...
  • development branch is green in CI.
  • CLI tests pass locally:
    • cd cli && go test ./...
  • Release workflow exists:
    • .github/workflows/cli-release.yml
  • GoReleaser config exists:
    • cli/.goreleaser.yaml
  • Cloudflare deploy secrets exist:
    • CLOUDFLARE_API_TOKEN
    • CLOUDFLARE_ACCOUNT_ID
  • Use semantic version tags:
    • v0.1.0
    • v0.1.1
    • v1.0.0
  • A push of a v* tag triggers the CLI release workflow.
  1. Verify branch and tests.
Terminal window
git checkout development
cd cli
go test ./...
cd ..
  1. Create and push release tag.
Terminal window
git tag v0.1.0
git push origin v0.1.0
  1. Monitor workflow:
  • GitHub Actions -> CLI Release
  • Ensure GoReleaser release completes.
  • Ensure Deploy release payload to Cloudflare Pages completes.
  • Ensure deploy step targets production branch explicitly (--branch=main).
  1. Verify GitHub Release assets:
  • all four platform archives exist
  • checksums.txt exists
  1. Verify public release mirror for installer:
  • https://mobycli.mobayilo.com/releases/latest.json
  • https://mobycli.mobayilo.com/releases/v<version>/checksums.txt
  1. Download one archive and checksums.
  2. Validate checksum.
Terminal window
shasum -a 256 -c checksums.txt

Expected: selected archive shows OK.

On a clean machine profile:

Terminal window
curl -fsSL https://mobycli.mobayilo.com/install.sh | sh
moby --version
moby self-update
moby auth login
moby auth status --json

Expected:

  • version matches release tag
  • auth flow completes
  • authenticated: true

Note:

  • Installer does not query GitHub API directly.
  • Installer resolves latest version from mobycli.mobayilo.com/releases/latest.json.
  • Release payload deployment uses direct wrangler CLI (not action wrapper) for clearer failure logs.

Before first public rollout, run installer tests from repository root:

Terminal window
sh scripts/test_install_sh.sh

This validates:

  • checksum verification path
  • unsupported platform rejection
  • reinstall and upgrade behavior
  • Publish patch version (vX.Y.Z+1) instead of mutating an existing release.
  • Do not rewrite existing release tags.
  • If installer points to latest and a bad release is published, publish a fixed patch immediately.