5.2 KiB
5.2 KiB
Testing the over-the-air update on Windows (PC 2, machine id 1ccfe586)
The Windows apply path could not be run from the Mac. It was reviewed against packaging/windows/Igneum-Miner.iss,
stop-igneum.ps1 and app/windows/host.cpp; these steps run it for real. Allow 20 minutes.
What is untested on Windows
ota-apply.ps1end to end: the wait for the engine,Start-Process -Verb RunAsof the installer, the UAC prompt, the exit code, the relaunch through the[Run]entry on/IGNOTA=1.CloseApplications=yeswith the window host: the host hides onWM_CLOSEinstead of quitting, so the Restart Manager cannot close it;PrepareToInstall(stop-igneum.ps1,Stop-Process -Forceon "Igneum Miner") is what ends it. Watch for an installer dialog about files in use.- The rollback: the previous installer is kept in
updates/only from the second OTA on; a first update has none. powershell5.1 parsing of the helper (tools/ci/windows/check-ps51.ps1cannot see it: it is a string insrc/ota.rs). The helper avoids"$x: y"and uses nothing newer than 5.1.
Before
PC 2 runs Igneum Miner 0.3.0, which has no updater at all. Step 0 is therefore a hand install of the first OTA-capable build; from then on every update is automatic.
- On the Mac: push master, wait for the green
windows-cirun, thenpackaging/windows/fetch-ci-artifacts.sh --deploy(writes the Windows entry into the manifest and deploys). Note the version in the installer name (0.3.1 or later). On PC 2: download that installer fromhttps://dl.igneum.network/dl/<token>/Igneum-Miner-Setup-<v>.exe, run it over the running 0.3.0 (it stops the old app itself), let it start the app.
The test
- Settings (gear) shows "Igneum Miner ", "Check now", "Install now" (hidden until a download exists), the
"Install updates by itself at a safe moment" switch ON, and a note. Click Check now: within 10 s the note says
"This is the latest version (checked ...)" and the log drawer (Logs) has
update check: <v> is current. If it saysno manifest at the update URL yetthe deploy did not land; ifmanifest signature does not verifythe installer was built from a tree with a differentOTA_PUBLIC_KEY_HEXthan the key that signed. - On the Mac, publish a test version: bump
versioninapp/igneum-app/Cargo.toml,app/windows/version.handapp/igneum-app/resources/igneum-app.rc(patch level only), push, wait for CI,fetch-ci-artifacts.sh --deploywithOTA_NOTES="OTA test". (The Mac entry is carried over only when it has the same version; without a Mac build the manifest carries the Windows entry alone, which is fine.) - On PC 2: Settings > Check now. Expected within a minute: the banner "Igneum Miner <v+1> is available.
Downloading it." then "Downloading ... 43%" then "Igneum Miner <v+1> is ready. Installs at the next safe moment."
with Install now and Later. Events:
is available: downloading (44 MB),is ready; it installs at the next safe moment.%LOCALAPPDATA%\igneum\app\updates\holdsIgneum-Miner-Setup-<v+1>.exe(andmanifest.json). - Wait. The node is synced and a worker is mining, so the only wait is an hourly boundary within 3 minutes (the
"next program" tile). Expected: the banner changes to "Installing Igneum Miner <v+1>: the miners stop, then the
node, then the app opens again", the footer says stopping, then ONE UAC prompt "Igneum-Miner-Setup-<v+1>.exe".
Click Yes. The window closes (stop-igneum.ps1 ends it), about 20 s later the app opens again on its own.
Check: Settings shows the new version and "Updated from ."; the event feed starts with
updated to Igneum Miner <v+1> from <v>; the node and the miner are back (same chain data, same address). Files:%LOCALAPPDATA%\igneum\app\ota-apply.log(the helper),ota-setup.log(Inno), noupdate-pending.jsonafter 90 s. - The declined prompt: repeat 2 and 3 with another patch bump, and click No on the UAC prompt. Expected: the app comes back by itself on the OLD version within 15 s with the banner "Update: Windows did not let the installer run: ..." and Install now; clicking it brings the prompt again, Yes installs.
- Install now: with automatic off (the switch), the banner waits "waiting for Install now"; Install now installs at once, ignoring the boundary wait.
- The red bar (consensus): publish with
--activation-height <node daa + 1000>(the node tile shows the DAA score): the banner turns solid ember "Consensus upgrade at height ...: the node is N blocks away. Installing ... now." and the apply skips the safe-moment wait.
If something goes wrong
- The app does not come back: Start Menu > Igneum Miner.
ota-apply.logsays which step failed. The old files are still in place when the installer did not run; when it ran and the new app fails, reinstall from the download page. - A UAC prompt every hour: the installer failed or was declined and the retry loop runs at the next check; Settings shows the error. Switch automatic off to stop it, or install by hand.
- "update-pending.json" stays and the app keeps restarting: the new version dies early; on the third start the
helper reinstalls the previous installer when one is in
updates/, else reinstall by hand.