Repository navigation
ci(windows): run the tier-1 unit tests weekly on windows-latest - #532
catincloudlabs wants to merge 3 commits into
Conversation
Part 4 of exmergo#487, decision (c) from the offer on the issue. A new workflow runs `uv run pytest -q` on `windows-latest` every Monday at 06:40 UTC and on `workflow_dispatch`, with the same connector-extra sync `ci.yml`'s `tests` job uses, so nothing importorskips here that runs there. Why weekly and not per pull request: Windows is not a claimed platform, the suite takes a quarter of an hour on a Windows workstation, and a Windows leg on every pull request would make Windows-only flakiness (temp-directory file locking, DuckDB file handles, subprocess differences) a merge blocker. A weekly run still catches the class of regression exmergo#264 and exmergo#487 were within a week. Why one Python version: the run exists to catch platform defects, which do not vary by interpreter; 3.12 is the version the issue's Windows measurements were taken on. Not a required check. Nothing about the engine or the tests changes. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
…eel's The first dispatched run of this workflow on the fork (run 38185553066) read the bundled Ossie schema's sha256 as bea4565d... against the recorded 27aab111..., failing the three tests that pin it. Git for Windows defaults to core.autocrlf=true and actions/checkout does not override it, so the file was checked out with CRLF; the sha256 of the LF file with its newlines replaced by CRLF is bea4565d... exactly. The wheel ships LF, so the job now sets core.autocrlf false before checkout and tests what the wheel ships. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
|
Two dispatched runs of this workflow on the fork, both on Run 1, the workflow as first opened (38185553066): Run 2, after the The two that moved are the three tests pinning the bundled Ossie schema's hash ( The three that remain are not this workflow's to fix, and both are reported on #487 with reproductions:
So the first weekly run on |
What this changes
Part 4 of #487, decision (c) from the offer there, as the second pull request it named: a weekly Windows run of the tier-1 unit tests. #526 fixed causes 1 to 6; with this, every part of the issue's ask has a change behind it, and closing it is yours.
One new file,
.github/workflows/windows.yml. It runsuv run pytest -qonwindows-latest, every Monday at 06:40 UTC and onworkflow_dispatch, with the same connector-extra syncci.yml'stestsjob uses, so a test that wouldimportorskipfor want of a client library runs here the same as it does there. Pinned action SHAs are the onesci.ymlalready uses. Nothing about the engine or the tests changes.Decisions worth your attention
repo-stats.yml's is.testsjob's three. The run exists to catch platform defects, which do not vary by interpreter, and 3.12 is the version the issue's Windows measurements were taken on. Three runs a week would triple the cost of finding each defect once.timeout-minutes: 90. A hosted runner is slower than a workstation; the bound is there so a hung test fails the run instead of holding a runner for the six-hour default.core.autocrlf=trueandactions/checkoutdoes not override it, so the first dispatched run read the bundled Ossie schema's sha256 asbea4565d…against the recorded27aab111…, which is exactly the hash of the LF file with CRLF newlines. The job now setscore.autocrlf falsebefore checkout and tests what the wheel ships. Whether the repository wants a.gitattributesso a default Windows clone matches too is on The dex-core test suite fails on Windows, and CI has no Windows job #487.test_build_evidence.py::test_a_run_that_built_the_required_nodes_is_validated, is the kind of thing a weekly run will either confirm or never see again. If it flakes here, that is a finding, not a reason to loosen the run.Shown running
A workflow can only be exercised by a runner, so this one was dispatched on the fork before the pull request was opened, from this branch, on
windows-latest:https://github.com/catincloudlabs/dex/actions/runs/38185553066
Both runs, before and after the checkout fix, are in the first comment below. The fork's
mainwas fast-forwarded to this branch only so GitHub would register the workflow for dispatch; nothing else is on it.Files
.github/workflows/windows.yml: the workflow, with its reasoning in the header comment, and agit config --global core.autocrlf falsestep before checkout (see the decision above).CHANGELOG.md: one Added entry under Unreleased.🤖 Generated with Claude Code