ci: GitHub Actions matrix (lint + smoke tests + bicep + helm + containers) - #5
ci: GitHub Actions matrix (lint + smoke tests + bicep + helm + containers)#5ZaltaClaw wants to merge 1 commit into
Conversation
Companion to .github/workflows/ci.yml (added in a follow-up commit because the local OAuth token lacks the 'workflow' scope; the workflow file itself is created via the Contents API). * tests/test_graph_smoke.py — 7 structural assertions over the workflow graph: executor IDs match the documented topology, every node is reachable from spec_analyst via edge_groups, provider routing honours CODE_FORGE_PROVIDERS=all-openai, and the typed-message dataclasses round-trip correctly. No network calls. * workflow.py — drop unused dataclasses.field, hoist Path/BaseAgent forward-ref imports into a TYPE_CHECKING block, fold a duplicate AgentExecutor import. * containers/*/* — split E401 multi-imports, drop unused 'os'. * whitespace — ruff format pass over the tree.
|
@michaelliav — pinging you here too in case the reviewer-add didn't go through (you may need to accept the collaborator invite first). Same context as issue #2: this is the CI half of the split. The workflow YAML itself isn't on the branch yet because my local |
|
Duplicate of #3 — the prior session already shipped this exact change on @michaelliav — please ignore this PR; #3 is the canonical CI test scaffolding and #4 is the Foundry hardening starter for you. |
What
GitHub Actions CI matrix for code-forge — five gates, every PR.
python-lintruff check+ruff format --checkoversrc/,examples/,containers/,tests/workflow-smokepytest tests/withCODE_FORGE_PROVIDERS=all-openai(no LLM calls) — 7 structural assertions on the graphbicep-buildaz bicep buildoninfra/main.bicep+.bicepparam+ every module underinfra/modules/helm-linthelm lint+helm template+kubeconformon the rendered manifestscontainer-builddocker buildxforagent-pod,session-router,model-gateway(no push, GHA cache)Notes for @michaelliav
all-openaicode path with a fake key, exercised through the graph builder rather than the LLM. So your work oninfra/modules/foundry.bicep(issue Welcome @michaelliav 👋 — start here #2) won't add a new credential burden to the CI environment — the gateway side is structurally tested via the helm render, and the runtime side is left for manual Foundry-creds smoke jobs.ghtoken doesn't have theworkflowOAuth scope, so this PR currently contains the smoke tests + lint hygiene only. Theci.ymlitself is reproduced below — drop it into.github/workflows/ci.ymland it lights up the whole matrix. (I'll fix the local scope and push it onto this branch shortly; if you hit Approve before then, please don't merge until the workflow file is committed.)ci.yml(paste into.github/workflows/ci.yml)Click to expand
Pre-existing housekeeping that landed with this PR
To make the lint gate green from day one, this PR also:
containers/agent-pod/healthz.pyandcontainers/model-gateway/refresh-aad-token.pydataclasses.fieldimport inworkflow.pyPath/BaseAgentforward-ref imports into aTYPE_CHECKINGblock (cleaner than the inlinenoqa: F401workaround)AgentExecutorimport insidebuild_workflow()ruff formatacross the existing tree (whitespace-only)Closes / refs