Files
cleveragents-core/features/ci_workflow_validation.feature
T
brent.edwards e801eb1ee8 feat(ci): add nox-based PR validation workflow
- Rewrite .forgejo/workflows/ci.yml to route all jobs through nox sessions
- Fix coverage_report nox session: serial behave mode replaces broken parallel
  mode (22% -> 97% accuracy), raise fail-under from 85% to 97%
- Pass posargs through format nox session for CI --check support
- Add 11 CI workflow validation scenarios (Behave) + Robot smoke test + ASV bench
- Add 108 new Behave scenarios covering 6 largest coverage gaps to reach 97%:
  yaml_template_engine, actor/config, actor/registry, message_router,
  context_analysis, context_service
- Update docs/development/ci-cd.md with nox-based CI docs and 97% threshold
- Restore implementation_plan.md verbose style, check off completed CI tasks

Verified: 1673 scenarios pass, 97% coverage, lint clean, typecheck clean
2026-02-12 22:01:51 +00:00

77 lines
3.1 KiB
Gherkin

Feature: CI workflow validation
As a developer
I want to ensure the CI workflow exists and uses nox sessions
So that all CI checks run through the same tooling as local development
Scenario: CI workflow file exists
Given the CI workflow file at ".forgejo/workflows/ci.yml"
Then the CI workflow file should exist
Scenario: CI workflow references nox for lint
Given the CI workflow file at ".forgejo/workflows/ci.yml"
When I parse the CI workflow YAML
Then the workflow should have a job named "lint"
And the job "lint" should run "nox -s lint"
Scenario: CI workflow references nox for typecheck
Given the CI workflow file at ".forgejo/workflows/ci.yml"
When I parse the CI workflow YAML
Then the workflow should have a job named "typecheck"
And the job "typecheck" should run "nox -s typecheck"
Scenario: CI workflow references nox for unit tests
Given the CI workflow file at ".forgejo/workflows/ci.yml"
When I parse the CI workflow YAML
Then the workflow should have a job named "unit_tests"
And the job "unit_tests" should run "nox -s unit_tests"
Scenario: CI workflow references nox for integration tests
Given the CI workflow file at ".forgejo/workflows/ci.yml"
When I parse the CI workflow YAML
Then the workflow should have a job named "integration_tests"
And the job "integration_tests" should run "nox -s integration_tests"
Scenario: CI workflow references nox for coverage
Given the CI workflow file at ".forgejo/workflows/ci.yml"
When I parse the CI workflow YAML
Then the workflow should have a job named "coverage"
And the job "coverage" should run "nox -s coverage_report"
Scenario: CI workflow references nox for security
Given the CI workflow file at ".forgejo/workflows/ci.yml"
When I parse the CI workflow YAML
Then the workflow should have a job named "security"
And the job "security" should run "nox -s security_scan"
Scenario: CI workflow references nox for build
Given the CI workflow file at ".forgejo/workflows/ci.yml"
When I parse the CI workflow YAML
Then the workflow should have a job named "build"
And the job "build" should run "nox -s build"
Scenario: CI workflow uses Python 3.13
Given the CI workflow file at ".forgejo/workflows/ci.yml"
When I parse the CI workflow YAML
Then the workflow env should set "PYTHON_VERSION" to "3.13"
Scenario: CI workflow coverage job depends on lint and typecheck
Given the CI workflow file at ".forgejo/workflows/ci.yml"
When I parse the CI workflow YAML
Then the job "coverage" should depend on "lint"
And the job "coverage" should depend on "typecheck"
Scenario: All required nox sessions are referenced
Given the CI workflow file at ".forgejo/workflows/ci.yml"
When I parse the CI workflow YAML
Then the workflow should reference these nox sessions:
| session |
| lint |
| typecheck |
| unit_tests |
| integration_tests |
| coverage_report |
| security_scan |
| dead_code |
| complexity |
| build |