Skip to content
Merged
Changes from all commits
Commits
Show all changes
17 commits
Select commit Hold shift + click to select a range
c4af9ae
chore: record implementation plan
Copilot Oct 19, 2026
4b5dc79
build(ci): check Windows workspace with Bazel
Copilot Oct 19, 2026
ef22acc
build(ci): run Windows Bazel check on draft PRs
Copilot Oct 19, 2026
b2bb1a6
Merge master into copilot/replace-ci-windows-cargo-check
ScriptedAlchemy Oct 20, 2026
23a9457
Merge branch 'master' into copilot/replace-ci-windows-cargo-check
ScriptedAlchemy Oct 20, 2026
2d8628c
Merge branch 'master' into copilot/replace-ci-windows-cargo-check
ScriptedAlchemy Oct 20, 2026
169c88c
Merge branch 'master' into copilot/replace-ci-windows-cargo-check
ScriptedAlchemy Oct 21, 2026
59bbfce
Merge branch 'master' into copilot/replace-ci-windows-cargo-check
ScriptedAlchemy Oct 21, 2026
c70baea
Merge branch 'master' into copilot/replace-ci-windows-cargo-check
ScriptedAlchemy Oct 21, 2026
d74895d
fix(ci): keep Windows builds behind the heavy scope gate
ScriptedAlchemy Oct 21, 2026
ff2342a
fix(memory): correct native index build admission
ScriptedAlchemy Oct 21, 2026
740c827
Merge branch 'master' into copilot/replace-ci-windows-cargo-check
ScriptedAlchemy Oct 21, 2026
54739fc
fix(tests): retire native journey code-index workers
ScriptedAlchemy Oct 21, 2026
ffb27e4
Merge branch 'master' into copilot/replace-ci-windows-cargo-check
ScriptedAlchemy Oct 21, 2026
39e6620
Merge branch 'master' into copilot/replace-ci-windows-cargo-check
ScriptedAlchemy Oct 22, 2026
6ead148
Merge remote-tracking branch 'origin/master' into copilot/replace-ci-…
ScriptedAlchemy Oct 22, 2026
90e5390
ci(windows): preserve the required check name
ScriptedAlchemy Oct 22, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
53 changes: 14 additions & 39 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -557,12 +557,18 @@ jobs:
run: test "${{ needs.linux-test.result }}" = "success"

windows-test:
# Branch protection requires this check name.
name: Test Windows
needs: scope-gate
if: ${{ needs.scope-gate.outputs.run-os == 'true' }}
if: >-
${{ needs.scope-gate.outputs.run-heavy == 'true' &&
(github.event_name != 'workflow_dispatch' ||
needs.scope-gate.outputs.run-os == 'true') }}
runs-on: windows-latest
timeout-minutes: 330
steps:
# Linux builds do not enable cfg(windows). Compile every Bazel target on
# native Windows for ready PRs and pushes; full tests remain dispatch-only.
# Full history: the search-quality workload fixture pins a
# `source_repository_commit`, and `validate_source_bindings` resolves that
# object out of this checkout.
Expand All @@ -580,9 +586,13 @@ jobs:
with:
cache-key: ci-windows-test

# `bazel test` builds every target in the pattern, so tests start
# while the rest of the workspace still links.
- name: Build and test the workspace
- name: Build and type-check the Windows workspace
if: ${{ github.event_name != 'workflow_dispatch' }}
shell: bash
run: bazel build --config=ci //...

- name: Build and test the Windows workspace
if: ${{ github.event_name == 'workflow_dispatch' && needs.scope-gate.outputs.run-os == 'true' }}
shell: bash
run: bazel test --config=ci //...

Expand Down Expand Up @@ -635,41 +645,6 @@ jobs:
- name: Run blocking Clippy policy
run: bazel build --config=ci --config=clippy //...

# The one deliberate Cargo step left in CI, and only because Bazel cannot
# replace it yet. Master pushes and ordinary PRs run no Windows lane
# (`windows-test` is dispatch-only), so `cfg(windows)` code otherwise
# first compiles in the release build. The workspace registers no
# Windows target toolchain for Linux, so this cross-target type check
# stays on Cargo: `cargo check` needs no linker, and mingw supplies the
# C compiler the native build scripts run. It type-checks only and
# produces no executable, so no eval, test, or release consumes its
# output and it cannot diverge a shipped runtime. Remove it when Bazel
# grows a Linux-hosted Windows target. macOS has no equivalent: its
# build scripts need the Apple SDK headers.
- name: Install pinned toolchain and Windows check target
run: |
rustup toolchain install
rustup target add x86_64-pc-windows-gnu

- uses: ./.github/actions/setup-pnpm

- name: Install the Windows C cross-compiler
run: |
# This compiler comes from Ubuntu, independently of third-party feeds
# preconfigured on the hosted image.
ubuntu_sources=(
-o Dir::Etc::sourcelist=sources.list.d/ubuntu.sources
-o Dir::Etc::sourceparts=-
)
sudo apt-get "${ubuntu_sources[@]}" update
sudo apt-get "${ubuntu_sources[@]}" install -y --no-install-recommends gcc-mingw-w64-x86-64

- name: Check the Windows target
run: >-
cargo check --workspace --all-targets --locked
--target x86_64-pc-windows-gnu
--features tracedecay/test-transport,tracedecay/test-helpers,tracedecay-cli/test-transport

- name: Save compiled Bazel actions
if: always() && !cancelled() && github.ref == 'refs/heads/master' && steps.bazel.outputs.disk-cache-key != ''
uses: actions/cache/save@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6.1.0
Expand Down
Loading