правки по лаунчеру
This commit is contained in:
@@ -14,9 +14,9 @@ launcher. Periodic WinSparkle checks are disabled.
|
||||
Pass the public feed URL at build time:
|
||||
|
||||
```powershell
|
||||
fvm flutter build windows `
|
||||
--dart-define=MOONWELL_API_BASE_URL=https://host `
|
||||
--dart-define=MOONWELL_APPCAST_URL=https://host/launcher/updates/appcast.xml
|
||||
flutter build windows `
|
||||
--dart-define=MOONWELL_API_BASE_URL=https://moon-well.online `
|
||||
--dart-define=MOONWELL_APPCAST_URL=https://moon-well.online/appcast.xml
|
||||
```
|
||||
|
||||
The feed URL must be an absolute HTTPS URL. Omit
|
||||
@@ -67,10 +67,9 @@ Use a public AppCast with absolute URLs:
|
||||
<language>ru</language>
|
||||
<item>
|
||||
<title>MoonWell Launcher 1.1.0</title>
|
||||
<sparkle:releaseNotesLink>https://host/launcher/updates/1.1.0/release-notes.html</sparkle:releaseNotesLink>
|
||||
<pubDate>Sun, 21 Jun 2026 12:00:00 +0400</pubDate>
|
||||
<enclosure
|
||||
url="https://host/launcher/updates/1.1.0/moonwell_launcher_1.1.0_windows_setup.exe"
|
||||
url="https://storage.yandexcloud.net/warcraft-client/moonwell_launcher_setup.exe"
|
||||
sparkle:version="1.1.0"
|
||||
sparkle:os="windows"
|
||||
sparkle:dsaSignature="SIGNATURE_FROM_SIGN_UPDATE"
|
||||
@@ -90,14 +89,20 @@ to an authenticated endpoint.
|
||||
Perform Windows signing on the Windows release machine because the package
|
||||
invokes WinSparkle's Windows signing utility.
|
||||
|
||||
The recommended production workflow is the automated
|
||||
[`tool/deploy_launcher.ps1`](../tool/deploy_launcher.ps1) script. See
|
||||
[`production_deploy.md`](production_deploy.md) for prerequisites, environment
|
||||
variables, dry-run usage, deployment, and failure recovery. The steps below are
|
||||
the manual fallback and describe the same release order.
|
||||
|
||||
1. Update `pubspec.yaml` to the new `X.Y.Z+N` version.
|
||||
2. Run `fvm flutter pub get`, formatting, analysis, and all tests.
|
||||
2. Run `flutter pub get`, formatting, analysis, and all tests.
|
||||
3. Build Windows with both production `--dart-define` values.
|
||||
4. Compile the installer with `ISCC.exe /DMyAppVersion=X.Y.Z`.
|
||||
5. Make the private key available outside the repository and sign the artifact:
|
||||
|
||||
```powershell
|
||||
fvm dart run auto_updater:sign_update `
|
||||
dart run auto_updater:sign_update `
|
||||
build\installer\moonwell_launcher_X.Y.Z_windows_setup.exe `
|
||||
C:\secure-path\dsa_priv.pem
|
||||
```
|
||||
@@ -109,10 +114,23 @@ invokes WinSparkle's Windows signing utility.
|
||||
(Get-Item build\installer\moonwell_launcher_X.Y.Z_windows_setup.exe).Length
|
||||
```
|
||||
|
||||
7. Upload the versioned installer and release notes first.
|
||||
7. Upload the installer to the root of the `warcraft-client` bucket as
|
||||
`moonwell_launcher_setup.exe`. The object must be publicly readable.
|
||||
8. Download the hosted installer, verify its byte length, and test its DSA
|
||||
signature before changing the feed.
|
||||
9. Publish `appcast.xml` last so clients never observe an incomplete release.
|
||||
9. Set `LAUNCHER_AUTH_KEY` in the release environment and publish
|
||||
`appcast.xml` last:
|
||||
|
||||
```powershell
|
||||
curl.exe `
|
||||
-X POST "https://moon-well.online/api/service/update-appcast" `
|
||||
-H "Auth: $env:LAUNCHER_AUTH_KEY" `
|
||||
-H "Content-Type: application/xml" `
|
||||
--data-binary "@appcast.xml"
|
||||
```
|
||||
|
||||
10. Fetch `https://moon-well.online/appcast.xml` and verify the published
|
||||
version, installer URL, byte length, and DSA signature.
|
||||
|
||||
Keep the preceding installer available for rollback and support. Rollback is a
|
||||
new release with a product version higher than the faulty release; WinSparkle
|
||||
|
||||
Reference in New Issue
Block a user