Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions Apps/Keyty/Project.swift
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ let appSettings: SettingsDictionary = [
"ASSETCATALOG_COMPILER_INCLUDE_ALL_APPICON_ASSETS": "YES",
"CLANG_ENABLE_OBJC_WEAK": "YES",
"CODE_SIGN_ENTITLEMENTS": "Sources/Keyty/Resources/Keyty.entitlements",
"CURRENT_PROJECT_VERSION": "130",
"CURRENT_PROJECT_VERSION": "140",
"DEAD_CODE_STRIPPING": "YES",
"ENABLE_HARDENED_RUNTIME": "YES",
"FRAMEWORK_SEARCH_PATHS": [
Expand All @@ -28,7 +28,7 @@ let appSettings: SettingsDictionary = [
"$(inherited)",
"@executable_path/../Frameworks",
],
"MARKETING_VERSION": "1.3.0",
"MARKETING_VERSION": "1.4.0",
"PRODUCT_BUNDLE_IDENTIFIER": "app.keyty.Keyty",
"PRODUCT_NAME": "Keyty",
"PROVISIONING_PROFILE_SPECIFIER": "",
Expand Down
14 changes: 10 additions & 4 deletions Docs/RELEASING.md
Original file line number Diff line number Diff line change
Expand Up @@ -52,18 +52,21 @@ Configure these repository secrets before running the workflow:
| `NOTARY_ISSUER` | App Store Connect issuer ID |
| `SPARKLE_ED_KEY_BASE64` | Base64-encoded Sparkle EdDSA private key |
| `HOMEBREW_TAP_DISPATCH_TOKEN` | Optional token with permission to dispatch workflows in `keytyapp/homebrew-tap`; when present, the release workflow triggers the tap repo's cask-update automation after publishing `v*` release assets |
| `KEYTY_APPCAST_WEBSITE_DISPATCH_TOKEN` | Optional token with permission to dispatch workflows in the website repo; when present, the release workflow triggers the website repo's appcast sync automation after publishing `v*` release assets |

Optionally configure these repository variables:

| Variable | Description |
|---|---|
| `APPCAST_DOWNLOAD_PREFIX` | Sparkle enclosure URL prefix. By default, the release lane uses the current GitHub release asset URL, such as `https://github.com/keytyapp/Keyty/releases/download/v0.8.0/` |
| `KEYTY_RELEASE_TEAM_ID` | Developer ID team, default `NEVA4MAZBL` |
| `KEYTY_APPCAST_WEBSITE_REPOSITORY` | Website repository that receives the appcast sync dispatch, default `esphynox/keyty.app` |

The release workflow uploads generated appcast artifacts as an Actions artifact.
Publish `appcast.xml` from that artifact through the Vercel-hosted site so
Sparkle reads `https://keyty.app/appcast.xml`. Update archives are hosted as
GitHub release assets by default.
When `KEYTY_APPCAST_WEBSITE_DISPATCH_TOKEN` is configured, the same workflow
also dispatches `keyty_appcast_release` to the website repository so it can
publish `appcast.xml` to `https://keyty.app/appcast.xml`. Update archives are
hosted as GitHub release assets by default.

When `HOMEBREW_TAP_DISPATCH_TOKEN` is configured, the same workflow also
dispatches `keyty_release_published` to `keytyapp/homebrew-tap` with the new
Expand Down Expand Up @@ -131,7 +134,10 @@ git push --tags

5. Let the GitHub `Release` workflow build, sign, notarize, staple, and create the GitHub release.
6. Confirm the GitHub release contains both the zipped app and the DMG.
7. Download the `appcast-artifacts` workflow artifact and publish `appcast.xml` through the Vercel-hosted site.
7. Confirm the website appcast sync automation completed and published the new `appcast.xml`.
If `KEYTY_APPCAST_WEBSITE_DISPATCH_TOKEN` is not configured or the website
automation fails, download the `appcast-artifacts` workflow artifact and
publish `appcast.xml` through the Vercel-hosted site manually.
8. Verify the published appcast artifacts are available at the feed host:
- `https://keyty.app/appcast.xml`
- `https://github.com/keytyapp/Keyty/releases/download/v<NEW_VERSION>/Keyty.zip`
Expand Down
Loading