#54114: test: stop updater preparation on cancellation
Description of Change
Timed-out macOS updater tests can leave signing and archive processes running into retries.
Run cleanup tracks fixture apps, but preparation launches codesign and zip outside that tracking. Archive creation also ignores zip's exit status, allowing a failed archive to be cached and reused.
Route preparation commands through the existing tracked runner, check cancellation between preparation steps, and reject unsuccessful archive creation before caching. Keep signing arguments centralized in signApp through an optional runner, preserving existing callers' behavior. Timeout diagnostics now distinguish signing from archive creation.
Controlled Node subprocess checks with mocked macOS operations cover cancellation, nonzero exits, retry/cache behavior, and both signing paths. Scoped lint, formatting, and pre-commit hooks pass. Draft pending native macOS validation. The cause of the initial CI slowdown is still unproven.
Backport audit: 45-x-y, 44-x-y, 43-x-y, and 42-x-y are affected. Their six relevant signing, preparation, and cleanup functions match the pre-fix implementation, and the exact patch applies cleanly to all four. This is a source/applicability check, not native validation on those releases.
Checklist
- I have built and tested this change
- I have filled out the PR description
- I have reviewed and verified the changes
-
npm testpasses
Release Notes
Notes: none
Backports
Semver Impact
Semantic Versioning helps users understand the impact of updates:
- Major (X.y.z): Breaking changes that may require code modifications
- Minor (x.Y.z): New features that maintain backward compatibility
- Patch (x.y.Z): Bug fixes that don't change the API
- None: Changes that don't affect using facing parts of Electron