Files
remmina-mac/docs/RELEASING.md
T

48 lines
1.6 KiB
Markdown

# Releasing
## Build locally
```bash
./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
```bash
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
```bash
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"
```