Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
17 changes: 12 additions & 5 deletions .github/workflows/package-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -72,9 +72,9 @@ jobs:
MELLEA_REF: ${{ inputs.mellea_ref }}
steps:
- uses: actions/checkout@v4
# Ubuntu runners fill up: Ollama tarball + granite4:micro model + uv
# envs exhaust the disk (seen as "No space left on device"). Reclaim
# space first, same as quality-generic.yml / build-package.yml.
# Ubuntu runners fill up: Ollama tarball + the pulled model + uv envs
# exhaust the disk (seen as "No space left on device"). Reclaim space
# first, same as quality-generic.yml / build-package.yml.
- name: Free disk space
uses: ./.github/actions/free-disk-space
- uses: actions/setup-python@v5
Expand All @@ -100,9 +100,16 @@ jobs:
if: env.SKIP_OLLAMA != 'true'
run: nohup ollama serve &

- name: Pull granite4:micro
# Must match the model the tests actually request. They call bare
# `start_session()`, so that is whatever mellea defaults to — NOT a tag we
# get to choose here. mellea v0.8.0 defaults to granite4.2:3b, and pulling the stale
# tag meant the real model was downloaded mid-test instead.
#
# Keep this in step when bumping mellea. Deriving it from the installed
# mellea instead of hardcoding is tracked as follow-up work.
- name: Pull granite4.2:3b
if: env.SKIP_OLLAMA != 'true'
run: ollama pull granite4:micro
run: ollama pull granite4.2:3b

- name: Sync dependencies
working-directory: ${{ inputs.package }}
Expand Down
5 changes: 4 additions & 1 deletion _integration_core/pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,10 @@ ignore_errors = true
ignore_missing_imports = true

[tool.mellea-contribs.ci]
skip_ollama = false
# No Ollama: these tests never construct a session or a backend — they are
# pure `unittest.mock`. Matches what legacy-ci.yml already did for this
# package before the new-flat migration moved CI flags in here.
skip_ollama = true
timeout_minutes = 30
python_versions = ["3.12"]

Expand Down
8 changes: 7 additions & 1 deletion agent-utilities/tests/test_double_round_robin.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
import logging

from mellea import start_session
from mellea.backends import ModelOption

from mellea_contribs.agent_utilities.core.double_round_robin import double_round_robin

Expand Down Expand Up @@ -32,7 +33,12 @@


def test_generic_double_round_robin():
m = start_session()
# Thinking off: each pairwise comparison only needs a single "A"/"B" token,
# and a double round robin over N items issues N*(N-1) of them. Granite 4.2
# (mellea's default since v0.8.0) reasons unless told not to, which costs
# ~190x the output tokens per comparison and made these calls exceed the
# backend's 300s timeout on CPU-only CI runners (httpx.ReadTimeout).
m = start_session(model_options={ModelOption.THINKING: False})

comparison_prompt = """
Select which option is more likely to be the primary root-cause
Expand Down
7 changes: 6 additions & 1 deletion agent-utilities/tests/test_top_k.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
from mellea import start_session
from mellea.backends import ModelOption

from mellea_contribs.agent_utilities.core.top_k import top_k

Expand Down Expand Up @@ -28,7 +29,11 @@


def test_top_k_selection():
m = start_session()
# Thinking off: top_k's contract is a bare JSON array, so a reasoning trace
# is pure overhead. Granite 4.2 (mellea's default since v0.8.0) reasons
# unless told not to, which costs ~36x the output tokens here and pushes
# each generation past the backend's 300s timeout on CPU-only CI runners.
m = start_session(model_options={ModelOption.THINKING: False})

comparison_prompt = """
Select which items are the most severe issues.
Expand Down
5 changes: 4 additions & 1 deletion langchain/pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,10 @@ ignore_errors = true
ignore_missing_imports = true

[tool.mellea-contribs.ci]
skip_ollama = false
# No Ollama: these tests never call `start_session()` — every one of them uses
# a hand-written double (MockMelleaSession / FakeMelleaSession /
# ThreadSafeMelleaSession), so no model is ever reached under any selector.
skip_ollama = true
timeout_minutes = 30
python_versions = ["3.12"]

Expand Down
Loading