Skip to content

Split CI tests into separate tiers - #707

Open
delthazor wants to merge 2 commits into
mainfrom
marker-driven-test-tiers
Open

Split CI tests into separate tiers#707
delthazor wants to merge 2 commits into
mainfrom
marker-driven-test-tiers

Conversation

@delthazor

@delthazor delthazor commented Jul 21, 2026

Copy link
Copy Markdown
Contributor

Description

Replace the monolithic integration job with multiple tiers so distinct situations like fork PRs can use a different set based on specific needs.

The goal of this PR is to prepare the test suite for later configuration for specific environments and use cases, like for PR runs.

Important: tests requiring LLM secrets are left out from CI suite, due to security concerns. The test are still part of the codebase, and can be ran locally by manually calling them.

UPDATE: Renamed issue, as the basis of the split was changed from markers to directories. Description changed accordingly.

Issue Link

Closely relates to (but not fully fixes): #595

Type of Change

  • Bugfix
  • New Feature
  • Breaking Change
  • Refactor
  • Documentation
  • Other (please describe)

Checklist

  • I have read the contributing guidelines
  • Existing issues have been referenced (where applicable)
  • I have verified this change is not present in other open pull requests
  • Functionality is documented
  • All code style checks pass
  • New code contribution is covered by automated tests
  • All new and existing tests pass

Replace the monolithic integration job with multiple tiers using llm, docker, and live_server markers so distinct situations like fork PRs can use a different set based on specific needs.

Signed-off-by: pdobrei <pdobrei@cisco.com>
@delthazor delthazor self-assigned this Jul 21, 2026
@delthazor
delthazor requested a review from a team as a code owner July 21, 2026 09:11
@delthazor delthazor added documentation Improvements or additions to documentation enhancement New feature or request labels Jul 21, 2026

@pregnor pregnor left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm not on board with the marker approach, I would favor a suite or test package level separation of the tests over these markers.

I'm also against the dynamic marker application code like in pytest_collection_modifyitems, because it makes it difficult to read the code effectively.

Also let's eliminate LLM key based tests from the CI and do those manually, that simplifies things in the CI workflows as well.

Comment thread .github/workflows/README.md Outdated
Signed-off-by: pdobrei <pdobrei@cisco.com>
@delthazor delthazor changed the title Split CI pytest into marker-driven tiers Split CI tests into separate tiers Jul 22, 2026
Comment on lines +7 to +13
## Directory layout

- Session / infra orchestration fixtures & agent/client fixtures: [`conftest.py`](coffeeAGNTCY/coffee_agents/corto/tests/integration/conftest.py:1)
- Docker Compose lifecycle helpers (bring up transport and observability components): [`docker_helpers.py`](coffeeAGNTCY/coffee_agents/corto/tests/integration/docker_helpers.py:1)
- Lightweight subprocess runner used for agent processes: [`process_helper.py`](coffeeAGNTCY/coffee_agents/corto/tests/integration/process_helper.py:13)
- Sommelier (flavor profile) integration test: [`test_sommelier.py`](coffeeAGNTCY/coffee_agents/corto/tests/integration/test_sommelier.py:1)
| Directory | Purpose | CI |
|-----------|---------|-----|
| `tests/unit/` | Mocks only | Yes |
| `tests/integration/` | Docker-compose session; no LLM | Yes |
| `tests/integration_llm/` | Docker + LLM credentials | No (local manual) |

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Question: This differs from .github/workflows/README.md even though structurally live should also be present here, because it's similar architecture, is it because we have no tests in that category or something else?

Comment on lines +93 to +95
| corto | `tests/unit tests/integration` |
| lungo | `tests/unit tests/live tests/integration` |
| recruiter | `tests/unit tests/integration` |

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Question: Shouldn't these be analogous with the naming above?

Also shouldn't we use single word folder names instead?

cd coffeeAGNTCY/coffee_agents/lungo && uv run pytest tests/integration_llm -q
```

Do not run `pytest tests/` as a single full-suite invocation when both `integration/` and `integration_llm/` exist — session fixtures may load twice via `pytest_plugins`.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Question: why is this a requirement?
I thought it's going to be disjunctive sets that together gives a whole.

Comment on lines +115 to +120
### Branch protection

| Remove (legacy) | Add (required on PRs) |
|-----------------|----------------------|
| `integration-tests-*` | `tests / *` |
| `fast / *`, `integration / *` | `tests / *` |

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Question: What is this for?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ci/cd documentation Improvements or additions to documentation enhancement New feature or request refactor test

Projects

Status: No status

Development

Successfully merging this pull request may close these issues.

2 participants