Skip to content

build: Run the Windows x86 helper sub-builds one at a time - #658

Merged
zackees merged 3 commits into
masterfrom
fix/x86-helper-build-race
Oct 14, 2026
Merged

zackees merged 3 commits into
masterfrom
fix/x86-helper-build-race

Conversation

@zackees

@zackees zackees commented Oct 14, 2026

Copy link
Copy Markdown
Member

The Windows x64 build on #654 failed with MSB3374 … build_x86\…\ZERO_CHECK.tlog\unsuccessfulbuild … being used by another process. graphics-hook, get-graphics-offsets, inject-helper and obs-virtualcam-module each run cmake --build build_x86 -t <target> as a POST_BUILD step. MSBuild ran those in parallel, and two of them regenerated build_x86's ZERO_CHECK at the same time. The failure is intermittent, but one hit fails a release.

  • RED: ci/test_x86_build_serial.py configures a tiny CMake project with the new module and checks that the registered targets are chained (no network, runs on Linux).
  • GREEN: cmake/windows/x86-build-serial.cmake adds obs_serialize_x86_build(<target>), which records each target, plus one deferred call at the end of the configure that chains them with add_dependencies. Each of the four targets registers itself next to its x86 build command, so only the targets that exist in a given configuration take part.

ci-full is set so the Windows x64 and arm64 builds run.

Refs #654's Windows x64 failure (MSB3374 on build_x86 ZERO_CHECK).
graphics-hook, get-graphics-offsets, inject-helper and
obs-virtualcam-module each build build_x86 as a POST_BUILD step; in
parallel they regenerated its ZERO_CHECK together (MSB3374).

Local-Gate: v1 tree=e830ce6e1a260789bc86f164c6276f07f08b9504 secs=350 lanes=lint:run,rust-test:run,cross:run,tier2-linux:run
Ci-Attestation: {"at":1791936515,"gate":"rust/all/fmt","host":"linux-x86_64","key":"3bd616972e822607ce65a019bbec056c14cef40b3e070d4eee35f5ea7c8772fe","lane":"lint","parents":["0361d75c15d4a301237089f70a140f5f53fd995b"],"secs":22,"stamp":"fb14645e79ebaf5ccd80e4a9fb95f26d","tree":"e830ce6e1a260789bc86f164c6276f07f08b9504","v":1,"via":"run"}
Ci-Attestation: {"at":1791936515,"gate":"rust/x86_64-unknown-linux-gnu/clippy","host":"linux-x86_64","key":"3bd616972e822607ce65a019bbec056c14cef40b3e070d4eee35f5ea7c8772fe","lane":"lint","parents":["0361d75c15d4a301237089f70a140f5f53fd995b"],"secs":22,"stamp":"2897917e769c0cd06342652ac3a3d5fa","tree":"e830ce6e1a260789bc86f164c6276f07f08b9504","v":1,"via":"run"}
Ci-Attestation: {"at":1791936515,"gate":"rust/x86_64-unknown-linux-gnu/test","host":"linux-x86_64","key":"e76bd6ee5b989fce20424fcebcb9df8c82777acf875e545f7d02288f6f2f6e49","lane":"rust-test","parents":["0361d75c15d4a301237089f70a140f5f53fd995b"],"secs":91,"stamp":"3be08334f7f58a014267dfe30988d796","tree":"e830ce6e1a260789bc86f164c6276f07f08b9504","v":1,"via":"run"}
Ci-Attestation: {"at":1791936515,"gate":"rust/x86_64-pc-windows-msvc/clippy","host":"linux-x86_64","key":"ca9bd58cf0aeb491e0abce8bba03ae29d2e531a5cef613bb53bcb6a67320f575","lane":"cross","parents":["0361d75c15d4a301237089f70a140f5f53fd995b"],"secs":74,"stamp":"2ce8f078eb15bae092ac38b7e91d304d","tree":"e830ce6e1a260789bc86f164c6276f07f08b9504","v":1,"via":"run"}
Ci-Attestation: {"at":1791936515,"gate":"rust/x86_64-pc-windows-msvc/dylint","host":"linux-x86_64","key":"ca9bd58cf0aeb491e0abce8bba03ae29d2e531a5cef613bb53bcb6a67320f575","lane":"cross","parents":["0361d75c15d4a301237089f70a140f5f53fd995b"],"secs":74,"stamp":"ed8a1f1183dd764f90fb51ef360a8c86","tree":"e830ce6e1a260789bc86f164c6276f07f08b9504","v":1,"via":"run"}
Ci-Attestation: {"at":1791936515,"gate":"rust/aarch64-apple-darwin/clippy","host":"linux-x86_64","key":"ca9bd58cf0aeb491e0abce8bba03ae29d2e531a5cef613bb53bcb6a67320f575","lane":"cross","parents":["0361d75c15d4a301237089f70a140f5f53fd995b"],"secs":74,"stamp":"84318b907df687f9e8a66490b702591e","tree":"e830ce6e1a260789bc86f164c6276f07f08b9504","v":1,"via":"run"}
Ci-Attestation: {"at":1791936515,"gate":"rust/aarch64-apple-darwin/dylint","host":"linux-x86_64","key":"ca9bd58cf0aeb491e0abce8bba03ae29d2e531a5cef613bb53bcb6a67320f575","lane":"cross","parents":["0361d75c15d4a301237089f70a140f5f53fd995b"],"secs":74,"stamp":"6884fd77f8ffbfee8abb0de332851f31","tree":"e830ce6e1a260789bc86f164c6276f07f08b9504","v":1,"via":"run"}
Ci-Attestation: {"at":1791936515,"gate":"rust/x86_64-apple-darwin/clippy","host":"linux-x86_64","key":"ca9bd58cf0aeb491e0abce8bba03ae29d2e531a5cef613bb53bcb6a67320f575","lane":"cross","parents":["0361d75c15d4a301237089f70a140f5f53fd995b"],"secs":74,"stamp":"18f2ace88ed77fedc074fe9dafb4aea2","tree":"e830ce6e1a260789bc86f164c6276f07f08b9504","v":1,"via":"run"}
Ci-Attestation: {"at":1791936515,"gate":"rust/x86_64-apple-darwin/dylint","host":"linux-x86_64","key":"ca9bd58cf0aeb491e0abce8bba03ae29d2e531a5cef613bb53bcb6a67320f575","lane":"cross","parents":["0361d75c15d4a301237089f70a140f5f53fd995b"],"secs":74,"stamp":"10965e35db58ac82843c8e7440b40bfc","tree":"e830ce6e1a260789bc86f164c6276f07f08b9504","v":1,"via":"run"}
Ci-Attestation: {"at":1791936516,"gate":"cpp/linux-x64/tier2","host":"linux-x86_64","key":"5f8ee0afcc4a3e17dcac93811676dcc528718c4368cf005e43ff63db1885a1d0","lane":"tier2-linux","parents":["0361d75c15d4a301237089f70a140f5f53fd995b"],"secs":163,"stamp":"893aaa9ef61a5b5a53ec6bdb39f2a5c8","tree":"e830ce6e1a260789bc86f164c6276f07f08b9504","v":1,"via":"run"}
@zackees zackees added the ci-full Run every CI job on this PR, including the release-gating OBS app builds and Flatpak label Oct 14, 2026
@zackees

zackees commented Oct 14, 2026

Copy link
Copy Markdown
Member Author

The current Windows x64 and macOS arm64 failures share the missing obs-websocket ImageFormat declaration introduced by #652. I filed the exact caller/failed-build evidence in #659; it also blocks the #635 release-package validation. The standalone MIME helper test cannot catch this caller compilation failure.

@zackees
zackees merged commit db559d9 into master Oct 14, 2026
24 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ci-full Run every CI job on this PR, including the release-gating OBS app builds and Flatpak

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant