Skip to content

chore: add release process for ant binary and ant-core crate#14

Merged
jacderida merged 1 commit intoWithAutonomi:mainfrom
jacderida:chore-release_process_for_ant
Mar 28, 2026
Merged

chore: add release process for ant binary and ant-core crate#14
jacderida merged 1 commit intoWithAutonomi:mainfrom
jacderida:chore-release_process_for_ant

Conversation

@jacderida
Copy link
Copy Markdown
Contributor

Summary

  • Add tag-triggered GitHub Actions workflows for releasing ant-core (crates.io) and the ant binary (cross-platform builds, DigiCert Windows code signing, GitHub releases)
  • Add bootstrap peer configuration (resources/bootstrap_peers.toml) and automatic loading from platform config directory, with --bootstrap CLI arg retaining precedence
  • Add install.sh quick-start script (Linux/macOS), winget manifest template (Windows), and a manual-trigger workflow to test both

Details

Workflows

  • ant-core-release.yml: Triggered by ant-core-v* tags. Publishes ant-core to crates.io.
  • ant-cli-release.yml: Triggered by ant-cli-v* tags. Builds for 5 targets (x86_64/aarch64 Linux musl, x86_64/aarch64 macOS, x86_64 Windows), signs Windows binary with DigiCert, packages archives with bootstrap config, publishes ant-core, creates GitHub release with install instructions and changelog. Tags with -rc.* are marked as pre-releases.
  • install-test.yml: Manual trigger to test install script on Linux/macOS and validate winget manifest on Windows.

Code changes

  • ant-core/src/config.rs: Added config_dir() (Linux: ~/.config/ant, macOS: ~/Library/Application Support/ant, Windows: %APPDATA%\ant) and load_bootstrap_peers() to parse bootstrap_peers.toml
  • ant-cli/src/main.rs: Bootstrap resolution fallback chain: --bootstrap > devnet manifest > config file > error

Secrets required

  • CARGO_REGISTRY_TOKEN for crates.io publishing
  • SM_HOST, SM_API_KEY, SM_CLIENT_CERT_B64, SM_CLIENT_CERT_PASSWORD, SM_KEYPAIR_ALIAS for DigiCert signing

Test plan

  • cargo check, cargo clippy, cargo fmt --check all pass
  • Config module unit tests pass (config_dir, load_bootstrap_peers, parse_bootstrap_config)
  • Test ant-cli-release.yml with an -rc tag push on upstream
  • Test install-test.yml manual workflow after first release
  • Verify ant-core-release.yml publishes correctly with a tag push

🤖 Generated with Claude Code

Add tag-triggered GitHub Actions workflows:
- ant-core-release.yml: publishes ant-core to crates.io on `ant-core-v*` tags
- ant-cli-release.yml: cross-platform build (Linux musl, macOS, Windows),
  DigiCert code signing, archive packaging, and GitHub release on `ant-cli-v*`
  tags. Tags with `-rc.*` suffix are marked as pre-releases.

Add bootstrap peer configuration:
- resources/bootstrap_peers.toml with production network peers
- config_dir() in ant-core for platform-appropriate config paths
- load_bootstrap_peers() to parse the config file at startup
- CLI fallback: --bootstrap > devnet manifest > config file

Add installation mechanisms:
- install.sh quick-start script for Linux/macOS
- resources/winget/ manifest template and update script for Windows
- install-test.yml workflow (manual trigger) to test both

Add CHANGELOG.md for tracking ant binary releases.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@jacderida jacderida merged commit c63f546 into WithAutonomi:main Mar 28, 2026
10 of 12 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants