|
1 | 1 | #!/usr/bin/env bash |
2 | 2 |
|
| 3 | +# Mina Protocol Release Manager Script |
| 4 | +# |
| 5 | +# This script provides comprehensive release management functionality for the Mina Protocol project. |
| 6 | +# It handles the complete lifecycle of build artifacts including publishing, promotion, verification, |
| 7 | +# and maintenance of packages across different channels and platforms. |
| 8 | +# |
| 9 | +# Main capabilities: |
| 10 | +# - PUBLISH: Publish build artifacts from cache to Debian repositories and Docker registries |
| 11 | +# - PROMOTE: Promote artifacts from one channel/registry to another (e.g., unstable -> stable) |
| 12 | +# - VERIFY: Verify that artifacts are correctly published in target channels/registries |
| 13 | +# - FIX: Repair Debian repository manifests when needed |
| 14 | +# - PERSIST: Archive artifacts to long-term storage backends |
| 15 | +# |
| 16 | +# Supported artifacts: mina-daemon, mina-archive, mina-rosetta, mina-logproc |
| 17 | +# Supported networks: devnet, mainnet |
| 18 | +# Supported platforms: Debian (bullseye, focal), Docker (GCR, Docker.io) |
| 19 | +# Supported channels: unstable, alpha, beta, stable |
| 20 | +# Supported backends: Google Cloud Storage (gs), Hetzner, local filesystem |
| 21 | +# |
| 22 | +# Usage examples: |
| 23 | +# ./manager.sh publish --buildkite-build-id 12345 --source-version 1.0.0 --target-version 1.0.1 --channel stable |
| 24 | +# ./manager.sh promote --source-version 1.0.0 --target-version 1.0.1 --source-channel alpha --target-channel beta |
| 25 | +# ./manager.sh verify --version 1.0.1 --channel stable --artifacts mina-daemon,mina-archive |
| 26 | +# |
| 27 | +# For detailed help on any command, use: ./manager.sh [command] --help |
| 28 | + |
3 | 29 | # bash strict mode |
4 | 30 | set -T # inherit DEBUG and RETURN trap for functions |
5 | 31 | set -C # prevent file overwrite by > &> <> |
|
0 commit comments