Skip to content

fix(ci): move SHOPBOT_DATA_DIR to step scope so the workflow compiles - #13

Merged
thezoid merged 2 commits into
masterfrom
fix/ci-runner-context
Aug 1, 2026
Merged

fix(ci): move SHOPBOT_DATA_DIR to step scope so the workflow compiles#13
thezoid merged 2 commits into
masterfrom
fix/ci-runner-context

Conversation

@thezoid

@thezoid thezoid commented Aug 1, 2026

Copy link
Copy Markdown
Owner

No description provided.

thezoid added 2 commits August 1, 2026 17:24
The `runner` context is not available in job-level `env:` -- it only exists
inside steps. Referencing ${{ runner.temp }} there makes the whole workflow
fail to compile: the run is marked failed immediately with zero jobs
scheduled and no annotations, which reads like a flaky runner rather than a
syntax error.

CI has therefore never once passed: 81 runs, 81 failures, back to the
workflow's introduction in 0e0e43f (2026-06-04), the only commit that has
ever touched this file. Milestones v2.0 through v4.2 were audited as
"CI-green" against a CI that had never compiled.

Moving the variable onto the Test step is the minimal fix and preserves the
original intent of keeping path resolution off the runner home dir.
With the compile error fixed, the workflow finally scheduled jobs and both
runners died the same way: "pytest: command not found" (exit 127 on ubuntu,
exit 1 on windows).

Cause: the Install step ran only `pip install -e .[web]`, and pyproject's
[project.dependencies] declares just platformdirs. Every real dependency --
pydantic, nodriver, keyring, cryptography, pygame, and pytest itself --
lives in requirements.txt, which CI never installed. So CI could not have
run a single test even with a compiling workflow.

Also adds httpx==0.28.1 to requirements.txt. fastapi's TestClient needs it
and it was undeclared everywhere, so a fresh checkout could not run the web
tests either. 0.28.1 is the version already proven locally.
@thezoid

thezoid commented Aug 1, 2026

Copy link
Copy Markdown
Owner Author

Green. First time, on run 82.

test (ubuntu-latest)   -> success   755 passed, 2 skipped in 9.79s
test (windows-latest)  -> success   755 passed, 2 skipped in 18.22s

Both fixes were load-bearing, and they failed in sequence:

  1. Compile error. ${{ runner.temp }} in job-level env: meant the workflow never compiled. 81 runs, zero jobs scheduled, no logs.
  2. Missing dependencies. With the workflow finally compiling, both runners immediately hit pytest: command not found (exit 127 on Ubuntu, exit 1 on Windows). pyproject declares only platformdirs; pytest and every runtime dep live in requirements.txt, which CI never installed.

So a compiling workflow alone would still have run zero tests. Both had to go.

Worth noting the counts: identical on Ubuntu and Windows, and identical to the local Windows baseline. The suite had only ever been run on one developer's machine, and it turns out to be genuinely cross-platform clean. That was not guaranteed going in; it is the answer this PR existed to produce.

SHOPBOT_DATA_DIR also resolves correctly now, confirming the step-scope fix: D:\a\_temp/shopbot on Windows, /home/runner/work/_temp/shopbot on Ubuntu.

@thezoid
thezoid merged commit 4123059 into master Aug 1, 2026
4 checks passed
@thezoid
thezoid deleted the fix/ci-runner-context branch August 1, 2026 23:38
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant