th-65c63e: add per-language PR CI lanes (python, typescript, go)#144
Merged
Conversation
PRs touching only python/, typescript/, or go/ got ZERO checks — only rust/dotnet paths triggered a lane, so SMOODEV-590's port PRs (#125/#126/#128) merged with no CI. Add one path-filtered lane per language, mirroring the existing .NET lane's shape (triggers, path filters, ubuntu-latest, timeout) plus concurrency + read-only permissions from the kind-smoke lane: - Python: uv sync + ruff check + ruff format --check + pytest, matrix over python/ and python/server/. - TypeScript: pnpm install + typecheck + test (vitest), scoped to the two workspace packages (@smooai/smooth-operator + …-server). - Go: gofmt check + go vet + go test ./... -race, matrix over go/ and go/server/. Each lane also triggers on spec/** because all three conformance suites validate against spec/conformance/fixtures.json at runtime. Live-gateway E2E tests self-skip without SMOOTH_AGENT_E2E + SMOOAI_GATEWAY_KEY, so no secrets needed. Also ran `ruff format` on the 7 unformatted files under python/ so the new format gate is green (pre-existing drift from the port PRs). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Problem
PRs touching only
python/,typescript/, orgo/got zero CI checks — onlyrust/+dotnet/paths triggered a lane (kind deploy smoke/.NET). SMOODEV-590's port PRs (#125/#126/#128) merged with no CI as a result.Solution
One path-filtered PR lane per language, modeled on the existing
.NETlane's shape (push-to-main + pull_request triggers, path filters,ubuntu-latest, 15-min timeout) plusconcurrency(cancel superseded) andpermissions: contents: readborrowed from thekind deploy smokelane. Each lane runs exactly how its tree actually tests:uv sync→ruff check→ruff format --check→pytestpython/,python/server/pnpm install --frozen-lockfile→typecheck→test(vitest)@smooai/smooth-operator+…-servergofmt -lgate →go vet ./...→go test ./... -racego/,go/server/Trigger paths
Each lane fires on its own tree, its own workflow file, and
spec/**— because all three conformance suites validate againstspec/conformance/fixtures.jsonat runtime (same reason the.NETlane watchesspec/**).No secrets needed
The live-gateway E2E tests (
test_e2e_live.py,e2e_live_test.go,e2e.live.test.ts) all self-skip withoutSMOOTH_AGENT_E2E+SMOOAI_GATEWAY_KEY, and the defaultvitest runexcludes the live TS E2E.Caching
Standard per-ecosystem caching consistent with the existing setup-action approach:
astral-sh/setup-uv(enable-cache),actions/setup-node(cache: pnpm),actions/setup-go(built-in module/build cache).Note
Also ran
ruff formaton the 7 unformatted files underpython/(pre-existing drift introduced by the port PRs) so the new format gate is green. Norust/dotnetlane touched.Verification
All commands validated locally before pushing (go: 42+144 tests, python: 43+116 tests, ts: 30+132 tests, all green; actionlint clean). Acceptance is the lanes running green on this PR itself.
🤖 Generated with Claude Code