Skip to content

ci: harden Linux dependency fetch resilience - #339

Closed
blakinio wants to merge 4 commits into
mainfrom
ci/OTC-20260816-linux-postmerge-resilience
Closed

ci: harden Linux dependency fetch resilience#339
blakinio wants to merge 4 commits into
mainfrom
ci/OTC-20260816-linux-postmerge-resilience

Conversation

@blakinio

Copy link
Copy Markdown
Owner

Objective

Finish OTC-20260816-linux-ci-hybrid post-merge validation without re-enabling Windows.

Evidence driving this follow-up

PR #331 is already merged and its exact-head CI run 31935503532 passed both hosted Linux matrix jobs, the real release-artifact Xvfb startup smoke, and CI / Required.

The first compile-scope push on main (31937211914, merge SHA c4b1919e16fb2931c74f32cb310229703dbf893c) failed during vcpkg dependency installation because the freetype 2.14.3 source endpoint returned HTTP 504 through all three built-in download attempts. Setup, workflow validation and earlier dependencies succeeded; this was not an OTClient compile diagnostic. A same-SHA rerun reached both Run CMake jobs but was intentionally cancelled when newer documentation-only main commits superseded the old run via the repository concurrency policy.

Changes

  • archive stale OTC-20260712-client-test-foundation ownership now that PR test: establish client unit and integration test foundation #3 is merged;
  • allow the current task to own .github/workflows/reusable-build-linux.yml;
  • cache only vcpkg/downloads using pinned actions/cache v6.1.0;
  • keep the existing CMake action as the primary attempt;
  • if that attempt fails, retry the same pinned configure/build action exactly once;
  • preserve all existing Linux tests, artifact upload, headless startup smoke and CI / Required semantics.

Failure semantics

The first CMake attempt uses continue-on-error only to permit the bounded second attempt. A second failure remains a normal job failure, so deterministic code/configuration failures are not converted to success.

Boundaries

  • Windows general CI remains disabled.
  • No Synology/Track A runtime workflow is changed.
  • No production source, runtime asset, protocol, repository setting or physical gameplay behavior is changed.
  • vcpkg/downloads contains source/tool downloads, not OTClient runtime state or built client artifacts.

Validation contract

Before merge require on the exact PR head:

  • workflow/actionlint validation;
  • Linux release build;
  • Linux tests build plus unit/Lua/integration tests;
  • real release-artifact Client Startup Smoke - Linux under Xvfb;
  • CI / Required success.

After merge require a fresh compile-scope main run with the same Linux build/smoke/Required chain. Only then archive OTC-20260816-linux-ci-hybrid and release ownership.

Primary implementation: #331.
Task: OTC-20260816-linux-ci-hybrid.

@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.
To continue using code reviews, you can upgrade your account or add credits to your account and enable them for code reviews in your settings.

@blakinio blakinio added the programme:infrastructure Infrastructure programme label Aug 16, 2026

Copy link
Copy Markdown
Owner Author

Closing this follow-up as obsolete for OTC-20260816-linux-ci-hybrid.

Fresh closeout evidence resolved the post-merge ambiguity without requiring a workflow behavior change:

  • primary PR ci: move required builds to Linux and preserve runtime hybrid #331 exact head 4c50f1d5843bfe067cca19519e25e4fa9dc7ccfe passed both Linux builds, unit/Lua/integration tests, real release-artifact Xvfb startup smoke and CI / Required in run 31935503532;
  • that exact head and squash merge c4b1919e16fb2931c74f32cb310229703dbf893c have the identical tree 6a51b91962c61b72a97a308d07292779ac7c3407;
  • the failed post-merge attempt is directly attributable to repeated HTTP 504 responses while vcpkg fetched freetype from gitlab.freedesktop.org, not an OTClient compile diagnostic;
  • the task was terminally archived through docs(ci): archive Linux CI hybrid task #341 and current main CI validates the docs-only path scope.

The proposed vcpkg/downloads cache + bounded CMake retry may be considered later as a separate CI-resilience optimization, but it should not reopen this completed hybrid-routing task or bundle the unrelated stale OTC-20260712-client-test-foundation cleanup. No review thread or owner decision requires this PR to remain open.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

programme:infrastructure Infrastructure programme

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant