Build and Release
Build Release Artifacts
cargo build --workspace --release
Build a specific crate only:
cargo build -p edgesentry-rs --release
Publish to crates.io
- Validate quality gates first:
./scripts/run_unit_and_license_check.sh
cargo clippy --workspace --all-targets --all-features -- -D warnings
- Login once:
cargo login <CRATES_IO_TOKEN>
- Dry-run publish:
cargo publish --dry-run -p edgesentry-rs
- Publish:
cargo publish -p edgesentry-rs
GitHub Actions Release Automation (macOS / Windows / Linux)
This repository includes .github/workflows/release.yml.
- Trigger: push a tag like
v0.1.0 - Quality gate: build, unit tests, license check, clippy
- Publish
edgesentry-rsto crates.io - Build
edsbinaries for Linux, macOS (x64 + arm64), and Windows - Upload packaged binaries to GitHub Release assets
Note: .github/workflows/ci.yml runs cargo publish --dry-run for edgesentry-rs.
Required GitHub secret:
CRATES_IO_TOKEN: crates.io API token used bycargo publish
Automatic Version Increment After Merge
This repository also includes .github/workflows/auto-version-tag.yml.
- Trigger: when
CIsucceeds onmain - Action: update
workspace.package.versioninCargo.tomland create/push avX.Y.Ztag - Then:
release.ymlis triggered by that tag and performs the full release pipeline
Version bump rules (Conventional Commits):
fix:-> patch bump (x.y.z->x.y.(z+1))feat:-> minor bump (x.y.z->x.(y+1).0)!orBREAKING CHANGE-> major bump (x.y.z->(x+1).0.0)