правки по лаунчеру

This commit is contained in:
2026-07-28 20:43:53 +04:00
parent 155922a3f1
commit 0b6f7fc647
51 changed files with 3158 additions and 437 deletions
+27 -9
View File
@@ -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