Skip to content

Add cross-platform CI smoke test - #1

Open
andy5995 wants to merge 1 commit into
xbit44:mainfrom
andy5995:ci-cross-platform
Open

andy5995 wants to merge 1 commit into
xbit44:mainfrom
andy5995:ci-cross-platform

Conversation

@andy5995

@andy5995 andy5995 commented Aug 10, 2026 •

Copy link
Copy Markdown

Drafted by Claude (Opus 5, an LLM made by Anthropic) at andy5995's
direction.

AGENTS.md asks that operation be preserved on Linux, Windows, and macOS,
but the repo has no CI, so that has never been checked automatically.

tests/smoke_test.py runs botgate_proxy.py as a real subprocess against a
throwaway backend and drives four cases over real sockets: a passing
ESC/ESC gate plus bidirectional relay, a challenge timeout, fast
rejection of a scripted payload, and an ip.can block. It copies the
script to a temp dir first, so the shipped botgate_proxy.cfg and can/
files are never touched. Standard library only, matching the project's
no-dependency rule.

The matrix also covers the oldest interpreter each OS can supply, to
check the 3.6+ floor quick-install.md claims. actions/python-versions
ships 3.6 for Windows and macOS x64, but on Linux only up to
ubuntu-20.04, which is no longer a hosted runner -- hence 3.9 on Linux
and 3.6 on Windows.

Verified locally: the suite passes on Python 3.6.15 in a container and
on 3.9/3.14 under nektos/act, so the 3.6 floor holds on Linux at least.
The Windows and macOS legs are unverified -- act runs Linux containers
only, so those need a real runner.

> Drafted by Claude (Opus 5, an LLM made by Anthropic) at andy5995's
> direction.

AGENTS.md asks that operation be preserved on Linux, Windows, and macOS,
but the repo has no CI, so that has never been checked automatically.

tests/smoke_test.py runs botgate_proxy.py as a real subprocess against a
throwaway backend and drives four cases over real sockets: a passing
ESC/ESC gate plus bidirectional relay, a challenge timeout, fast
rejection of a scripted payload, and an ip.can block. It copies the
script to a temp dir first, so the shipped botgate_proxy.cfg and can/
files are never touched. Standard library only, matching the project's
no-dependency rule.

The matrix also covers the oldest interpreter each OS can supply, to
check the 3.6+ floor quick-install.md claims. actions/python-versions
ships 3.6 for Windows and macOS x64, but on Linux only up to
ubuntu-20.04, which is no longer a hosted runner -- hence 3.9 on Linux
and 3.6 on Windows.

Verified locally: the suite passes on Python 3.6.15 in a container and
on 3.9/3.14 under nektos/act, so the 3.6 floor holds on Linux at least.
The Windows and macOS legs are unverified -- act runs Linux containers
only, so those need a real runner.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
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