- Push access to the repository
- Docker Hub credentials configured in GitHub (see below)
- Go to repository Settings → Secrets and variables → Actions
- Add repository secret:
DOCKERHUB_TOKEN: Docker Hub access token (Read/Write permissions)
- Go to repository Settings → Secrets and variables → Actions → Variables
- Add repository variable:
DOCKERHUB_USERNAME: Your Docker Hub username
- Log in to Docker Hub
- Go to Account Settings → Security → New Access Token
- Name:
github-actions-recrypt - Permissions: Read & Write
- Copy the token immediately (shown only once)
Ensure all changes are merged to main and CI is passing.
# Check current version
just version
# Create release (updates Cargo.toml, commits, and tags)
just release 1.2.3git push && git push --tags- Go to Actions tab in GitHub
- Watch the
ReleaseandDockerworkflows - Check that artifacts are created correctly
- GitHub Release: Check releases page for binaries and checksums
- Docker Hub: Verify image tags appear on
recrypt-server(latest,1.2.3,1.2) - Binaries: Download and test on target platform
Published to Docker Hub as <username>/recrypt-server:
latest- Latest releaseX.Y.Z- Specific version (e.g.,1.2.3)X.Y- Minor version (e.g.,1.2)
Published to GitHub Releases:
recrypt-X.Y.Z-x86_64-unknown-linux-gnu.tar.gz- Linux x86_64recrypt-X.Y.Z-aarch64-unknown-linux-gnu.tar.gz- Linux ARM64recrypt-X.Y.Z-x86_64-apple-darwin.tar.gz- macOS Intelrecrypt-X.Y.Z-aarch64-apple-darwin.tar.gz- macOS ARM (Apple Silicon)recrypt-X.Y.Z-x86_64-pc-windows-msvc.zip- Windows x86_64 (best-effort)
Each archive contains:
recrypt(orrecrypt.exe) - CLI binaryrecrypt-server(orrecrypt-server.exe) - Server binary
SHA256 checksums are provided as .sha256 files.
Windows support is best-effort. OpenFHE may not build correctly on Windows. If Windows builds fail, other platforms will still release.
The cross tool uses Docker/QEMU for ARM64 emulation. If it fails:
- Check the Cross.toml configuration
- Verify the pre-build script installs OpenFHE correctly
- Consider marking ARM64 as allowed-to-fail
If builds fail due to stale caches:
- Go to Actions → Caches
- Delete relevant cache entries
- Re-run the workflow