From ed7389ea95ffa8d7384a4929548c34f3cc91ad39 Mon Sep 17 00:00:00 2001 From: Mike Solar Date: Fri, 21 Aug 2026 06:38:11 +0800 Subject: [PATCH] ci: clear hook-injected MSVC env in-step; gdb backtrace for the Linux segfault MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - the warp runner's job hook re-exports MSVC INCLUDE/LIB per step, so the GITHUB_ENV clear did not stick — unset in the Build/Test steps themselves - node_e2e_test segfaults only on the Linux runner; rerun the binary under gdb on failure to capture the native stack --- .github/workflows/cd.yml | 6 +++++- .github/workflows/ci.yml | 21 +++++++++++++++++++-- 2 files changed, 24 insertions(+), 3 deletions(-) diff --git a/.github/workflows/cd.yml b/.github/workflows/cd.yml index 8f3deb706..77829feb6 100644 --- a/.github/workflows/cd.yml +++ b/.github/workflows/cd.yml @@ -372,7 +372,11 @@ jobs: rsvg-convert -w 512 -h 512 Oak_Icon.svg -o icons/icon.png - name: Build (release) - run: cargo build --release --locked + run: | + # Clear the job-hook-injected MSVC INCLUDE/LIB before the GNU + # build (they poison the MinGW compiles with MSVC SDK headers). + unset INCLUDE LIB + cargo build --release --locked - name: Package (NSIS) run: cargo packager --release --formats nsis diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 2fe2ded24..bdafd5a30 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -181,7 +181,12 @@ jobs: - name: Build (Windows) if: runner.os == 'Windows' shell: msys2 {0} - run: cargo build --workspace --locked + run: | + # The runner's job hook injects the MSVC INCLUDE/LIB into every + # step; clear them in-step (they poison the MinGW compiles with + # MSVC SDK headers). + unset INCLUDE LIB + cargo build --workspace --locked # xvfb + 24-bit screen: the gpui #[gpui::test] tests open real windows # and render through wgpu on Mesa's software Vulkan (lavapipe). @@ -189,6 +194,16 @@ jobs: if: runner.os == 'Linux' run: xvfb-run -a -s "-screen 0 1920x1080x24" cargo test --workspace --locked + # A crashing (SIGSEGV) test gives no Rust backtrace; rerun the + # crashing binary under gdb to capture the native stack. + - name: Backtrace on test failure (Linux) + if: failure() + run: | + sudo apt-get install -y gdb + BIN=$(ls -t target/debug/deps/node_e2e_test-* | grep -v '\.d$' | head -1) + xvfb-run -a gdb -batch -ex run -ex bt -- "$BIN" \ + plugin_renders_constant_frame_end_to_end --exact --nocapture + - name: Test (macOS) if: runner.os == 'macOS' run: cargo test --workspace --locked @@ -196,7 +211,9 @@ jobs: - name: Test (Windows) if: runner.os == 'Windows' shell: msys2 {0} - run: cargo test --workspace --locked + run: | + unset INCLUDE LIB + cargo test --workspace --locked # ------------------------------------------------------------------ # OFX plugin discovery end-to-end