Skip to content

ci: make Wine install non-fatal and drop i386 to fix Windows smoke test#70

Merged
krazyjakee merged 1 commit into
masterfrom
claude/fix-ci-hardening-CTL16
May 13, 2026
Merged

ci: make Wine install non-fatal and drop i386 to fix Windows smoke test#70
krazyjakee merged 1 commit into
masterfrom
claude/fix-ci-hardening-CTL16

Conversation

@krazyjakee

Copy link
Copy Markdown
Contributor

The previous hardening (#65) addressed transient apt-get failures but
the Windows Export & Smoke Test job is still timing out at 15 minutes
in "Install system libraries and Wine". The root cause isn't transient
mirror noise — it's structural:

  • dpkg --add-architecture i386 roughly doubles the apt manifest
    download and pulls hundreds of MB of i386 dependencies on top of
    wine64 itself.
  • Retrying inside a 15-minute step timeout cannot fix a >15-minute
    install regardless of how many backoff attempts we make.

This commit takes a more complete workaround: Wine is only needed for
the optional "Validate Windows binary starts (Wine)" step. The Windows
export itself, addon-binary verification, and artifact upload — the
real value of this job — all work without Wine. So:

  • Split the install: audio libraries become a separate hard-fail
    step; Wine becomes a soft-fail step with continue-on-error and
    a 10-minute timeout.
  • Drop dpkg --add-architecture i386. wine64 is a pure 64-bit
    runtime, and Godot's Windows export is 64-bit, so i386 wasn't
    actually needed.
  • Gate the smoke test on the Wine install having succeeded, and
    emit a clear warning + step summary entry when it gets skipped
    so degraded-mirror skips don't look like green-on-broken-export.

Also removes Acquire::http::No-Cache "true" from apt-install.sh —
that directive was forcing apt to re-download manifests on every
retry attempt, which is the opposite of what we want when recovering
from a flaky mirror.

Co-authored-by: Claude noreply@anthropic.com

https://claude.ai/code/session_01JYWykzyHjAnM24hANLgwyX

The previous hardening (#65) addressed transient apt-get failures but
the Windows Export & Smoke Test job is still timing out at 15 minutes
in "Install system libraries and Wine". The root cause isn't transient
mirror noise — it's structural:

  - `dpkg --add-architecture i386` roughly doubles the apt manifest
    download and pulls hundreds of MB of i386 dependencies on top of
    wine64 itself.
  - Retrying inside a 15-minute step timeout cannot fix a >15-minute
    install regardless of how many backoff attempts we make.

This commit takes a more complete workaround: Wine is only needed for
the optional "Validate Windows binary starts (Wine)" step. The Windows
export itself, addon-binary verification, and artifact upload — the
real value of this job — all work without Wine. So:

  - Split the install: audio libraries become a separate hard-fail
    step; Wine becomes a soft-fail step with `continue-on-error` and
    a 10-minute timeout.
  - Drop `dpkg --add-architecture i386`. wine64 is a pure 64-bit
    runtime, and Godot's Windows export is 64-bit, so i386 wasn't
    actually needed.
  - Gate the smoke test on the Wine install having succeeded, and
    emit a clear warning + step summary entry when it gets skipped
    so degraded-mirror skips don't look like green-on-broken-export.

Also removes `Acquire::http::No-Cache "true"` from apt-install.sh —
that directive was forcing apt to re-download manifests on every
retry attempt, which is the opposite of what we want when recovering
from a flaky mirror.

Co-authored-by: Claude <noreply@anthropic.com>

https://claude.ai/code/session_01JYWykzyHjAnM24hANLgwyX
@krazyjakee krazyjakee merged commit e5195b1 into master May 13, 2026
1 check passed
@krazyjakee krazyjakee deleted the claude/fix-ci-hardening-CTL16 branch May 13, 2026 17:33
krazyjakee added a commit that referenced this pull request Jun 8, 2026
…71)

flutter_local_notifications 19.x throws "Windows settings must be set when
targeting Windows platform" from initialize() when InitializationSettings.windows
is null on Windows. Because main() awaits initializeNotifications() before
runApp(), this aborted startup and the window never loaded.

Add a windows: WindowsInitializationSettings entry with the app's identity
(appName Daccord, appUserModelId com.daccord.app) and a stable GUID. The
show() path does not require WindowsNotificationDetails (the plugin passes
null through), so no further change is needed.

Fixes #70

Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants