Files

1.6 KiB

Releasing

Build locally

./scripts/build-release.sh [version]   # ZIP with binary + docs
./scripts/build-app.sh [version]       # RemminaMac.app (bundle, ad-hoc signed, icon + ctty-run)
./scripts/build-dmg.sh [version]       # DMG with app + Applications link
./scripts/generate-icon.sh             # re-render AppIcon.icns (Dracula terminal)
# Example:
./scripts/build-release.sh 0.7.0
./scripts/build-app.sh 0.7.0
./scripts/build-dmg.sh 0.7.0
# Output:
#   dist/RemminaMac-0.7.0-macos-arm64.zip (+ .sha256)
#   dist/RemminaMac.app/  (with ctty-run helper + icon)
#   dist/RemminaMac-0.7.0-macos-arm64.dmg (+ .sha256)

Bump AppInfo.version in Views/AboutView.swift with each release.

What the scripts do

  1. swift build -c release (builds both RemminaMac and ctty-run)
  2. Copy binaries into dist/RemminaMac-<ver>-macos-arm64/
  3. Add README.md + docs/ + LICENSE
  4. ZIP + SHA256

build-app.sh also copies AppIcon.icns and ctty-run into the bundle and signs ad-hoc (codesign --deep). build-dmg.sh creates the drag-and-drop DMG via hdiutil (no extra tools).

Publish a Gitea release

export GITEA_HOST="https://git.sysdaemon.xyz"
export GITEA_OWNER="<owner>"
export GITEA_REPO="remmina-mac"
export GITEA_TOKEN="<token>"   # not password: user → Settings → Applications → token
export VERSION="0.7.0"
./scripts/publish-gitea-release.sh

The script creates the release (if needed) and uploads ZIP + SHA256 as attachments.

Manual API

curl -u "user:pass" -H "Content-Type: application/json" \
  -d '{"tag_name":"v0.7.0","name":"v0.7.0","body":"..."}' \
  "$GITEA_HOST/api/v1/repos/$OWNER/$REPO/releases"