Release artifacts for BiByte are large (43+ MiB with embedded JRE) and are not stored in this repository for performance reasons.
- Java 25 JDK
- Gradle 9.2.0+
- jpackage and jlink tools
# Build the project
gradle clean build
# Generate distribution packages
gradle packageMacDmg # macOS host: creates DMG in build/native/mac
gradle packageDeb # Linux host: creates DEB in build/native/deb
gradle packageWinExe # Windows host: creates EXE in build/native/win/exe
gradle packageWinMsi # Windows host: creates MSI in build/native/win/msi- JAR files:
build/libs/BiByte-*.jar - Latest JAR alias:
build/release/BiByte-latest.jar - Checksums:
build/release/<version>/SHA256SUMS.txt - macOS:
build/native/mac/BiByte-*-macos-*.dmg - Windows:
build/native/win/exe/BiByte-*-windows-*.exeandbuild/native/win/msi/BiByte-*-windows-*.msi - Linux:
build/native/deb/BiByte-*-debian-*.deb
prepareRelease collects the JAR and the native package for the current host.
Run it on each target host when preparing multi-platform release assets.
- Use GitHub's Releases feature to attach built artifacts
- Do NOT commit distribution files to the repository
- Upload artifacts via the GitHub UI or using
gh release upload
Use .github/workflows/publish-release.yml workflow to:
- Build artifacts automatically on tag push
- Create GitHub Release
- Upload artifacts directly to release
The build/release/ directory and generated build artifacts are ignored because:
- Large file overhead: macOS bundle is 174 files, 43+ MiB
- Slow clone/fetch: Unnecessary for development
- Git push timeouts: HTTP 408 errors on large pushes
- Duplication: Built locally on each machine as needed
To publish a release manually:
# 1. Build locally
gradle clean prepareRelease
# 2a. Create GitHub release (using gh CLI)
gh release create v7.0.0 build/release/7.0.0/BiByte-7.0.0.jar build/release/BiByte-latest.jar \
--title "Version 7.0.0" \
--notes "Release notes here"
# 2b. Or upload to existing release instead
gh release upload v7.0.0 build/release/BiByte-latest.jar build/release/7.0.0/*The repository includes a reusable workflow that:
- Builds all distribution packages
- Creates/updates GitHub Release
- Uploads artifacts automatically
Trigger by pushing a tag: git tag v7.0.0 && git push origin v7.0.0