To create and deploy a new release:
# Option 1: Auto-increment patch version and push tag
python release.py --push
# Option 2: Specify version and push tag
python release.py --version 2.2.0 --push
# Option 3: Create tag locally without pushing
python release.py --version 2.2.0# Build locally
python build.py
# Build without deploying to runtime directory
python build.py --no-deploy
# Package only (without building)
python build.py --package-onlyThe CI/CD workflow automatically triggers when:
- Tag Push:
git push origin v*triggers the full build & release process - Main Branch: Builds and tests but doesn't create releases
- Pull Requests: Builds and tests for validation
- Windows Build: Uses vcpkg with static linking, creates portable .exe
- Linux Build: Uses system libraries, creates .tar.gz
- Release: Creates GitHub release with both platform binaries
python release.py --push- Creates tag and triggers CI/CD- GitHub Actions builds for Windows/Linux
- Artifacts are automatically attached to GitHub release
python build.py- Build locally firstpython release.py --skip-build --push- Tag and push without building- Monitor GitHub Actions for completion
Versions are automatically managed in CMakeLists.txt:
- Current: Project line
VERSION X.Y.Z - Auto-increment:
--version-type patch/minor/major - Manual:
--version X.Y.Z
- Ensure vcpkg is installed and
VCPKG_ROOTis set - Check dependencies in vcpkg.json
- Review build logs in
build_log.txt
- Verify git working directory is clean
- Check GitHub repository permissions
- Ensure tag doesn't already exist
- Check workflow file: .github/workflows/build.yml
- Monitor build progress in GitHub Actions tab
- Verify artifacts are uploaded correctly
- CMakeLists.txt: Version number updated
- Git tags: New version tag created
- dist/: Local build artifacts (if built locally)
The GitHub Actions workflow handles all cross-platform building and packaging automatically.