LCORE-3141: Proper dependencies in documentation make targets - #2297
Conversation
WalkthroughThe Makefile now uses ChangesDocumentation generation
Estimated code review effort: 2 (Simple) | ~10 minutes Possibly related PRs
Suggested reviewers: 🚥 Pre-merge checks | ✅ 7✅ Passed checks (7 passed)
✨ Finishing Touches 💡 1🛠️ Fix failing CI checks 💡
🧪 Generate unit tests (beta)
✨ Simplify code
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Actionable comments posted: 4
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@Makefile`:
- Line 201: Add generate-documentation to the Makefile’s existing .PHONY
declaration alongside doc and docs/models, preserving its aggregate target
dependencies and recipe behavior.
- Around line 265-267: Update the common.puml Make target prerequisites to use a
manifest of all model source files under src/models/common, including nested
directories such as agents and responses, instead of the non-recursive wildcard.
Keep the existing pyreverse generation and rename commands unchanged so changes
to nested files trigger regeneration.
- Around line 261-263: Update the responses.puml prerequisite to include the
wildcard for src/models/api/responses/successful/* alongside the existing
error-model wildcard, so changes to successful response models trigger
regeneration while preserving the current pyreverse and move commands.
- Line 229: Update the model-generation targets, including the requests target
and every other target using $(wildcard ...), to depend on a manifest or
stale-source stamp that detects both added and deleted model files during
incremental builds, while retaining the existing wildcard prerequisites for
content changes. Ensure the stamp is regenerated when the source set changes so
generated JSON and PlantUML outputs cannot remain stale after deletions.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: ASSERTIVE
Plan: Pro Plus
Run ID: afe20213-4c7a-48ac-aee4-9464234410f6
📒 Files selected for processing (1)
Makefile
📜 Review details
⏰ Context from checks skipped due to timeout. (14)
- GitHub Check: integration_tests (3.13)
- GitHub Check: mypy
- GitHub Check: bandit
- GitHub Check: Pyright
- GitHub Check: radon
- GitHub Check: list_outdated_dependencies
- GitHub Check: E2E Tests for Lightspeed Evaluation job
- GitHub Check: E2E: server mode / ci / group 3
- GitHub Check: E2E: server mode / ci / group 1
- GitHub Check: E2E: library mode / ci / group 1
- GitHub Check: E2E: library mode / ci / group 2
- GitHub Check: E2E: library mode / ci / group 3
- GitHub Check: E2E: server mode / ci / group 2
- GitHub Check: Konflux kflux-prd-rh02 / lightspeed-stack-0-7-on-pull-request
🧰 Additional context used
📓 Path-based instructions (1)
**/*
📄 CodeRabbit inference engine (Custom checks)
**/*: Flag meaningful O(n^2)+ algorithms on non-trivial inputs, including handlers and Kubernetes list operations.
Flag N+1 patterns that list items and then query once per item, including Kubernetes API and database access.
Flag expensive work inside loops, including API calls, JSON parsing, and regex compilation.
Flag unbounded growth in caches, watchers, or buffers when eviction or limits are missing.
Flag missing pagination or limits on list operations and API endpoints.
Flag secrets or tokens logged in plaintext or hardcoded in source.
Flag API endpoints missing authentication or authorization.
Flag injection vulnerabilities, including SQL injection, command injection, and path traversal.
Flag sensitive data leaked in API responses, WebSocket messages, or logs.
Flag Kubernetes Secrets and Red Hat secrets missing OwnerReferences.
Files:
Makefile
🪛 checkmake (0.3.2)
Makefile
[warning] 201-201: Target "generate-documentation" should be declared PHONY.
(phonydeclared)
🔇 Additional comments (1)
Makefile (1)
28-29: LGTM!
| rm output.md | ||
|
|
||
| generate-documentation: devel-doc schema ## Generate or regenerated content of the whole /docs subdirectory | ||
| generate-documentation: devel-doc schema docs/models ## Generate or regenerated content of the whole /docs subdirectory |
There was a problem hiding this comment.
📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick win
Declare generate-documentation as phony.
Add generate-documentation to the .PHONY list with doc and docs/models. This prevents a same-named workspace file from changing the aggregate target status. GNU Make recommends phony declarations for action targets. (gnu.org)
🧰 Tools
🪛 checkmake (0.3.2)
[warning] 201-201: Target "generate-documentation" should be declared PHONY.
(phonydeclared)
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@Makefile` at line 201, Add generate-documentation to the Makefile’s existing
.PHONY declaration alongside doc and docs/models, preserving its aggregate
target dependencies and recipe behavior.
Source: Linters/SAST tools
| openapi-to-markdown --input_file $< --output_file $@ | ||
|
|
||
| docs/models/requests.json: ## Generate OpenAPI specification with requests models | ||
| docs/models/requests.json: $(wildcard src/models/api/requests/*) ## Generate OpenAPI specification with requests models |
There was a problem hiding this comment.
🗄️ Data Integrity & Integration | 🟠 Major | 🏗️ Heavy lift
🧩 Analysis chain
🏁 Script executed:
#!/bin/bash
set -euo pipefail
echo "== Makefile relevant section =="
sed -n '210,275p' Makefile | cat -n
echo
echo "== search for generated docs targets/prereqs =="
rg -n 'docs/(models|.*openapi|.*plantuml|.*diagram)|requests\.json|PlantUML|openapi|swagger' Makefile -C 3 || trueRepository: lightspeed-core/lightspeed-stack
Length of output: 11613
🏁 Script executed:
#!/bin/bash
set -euo pipefail
echo "== generated model files present =="
for f in docs/models/requests.md docs/models/requests.json docs/models/responses.md docs/models/responses.json docs/models/database.md docs/models/database.json docs/models/common.md docs/models/common.json docs/models/agents.json docs/models/common_responses.json; do
if [ -e "$f" ]; then
stat -c '%n %Y' "$f"
else
echo "MISSING $f"
fi
done
echo
echo "== src model directories/files =="
for d in src/models/api/requests src/models/api/responses/successful src/models/api/responses/error src/models/common src/models/common/agents src/models/common/responses src/models/database src/models; do
echo "--- $d"
if [ -d "$d" ]; then find "$d" -maxdepth 2 -type f | sort | sed 's#^# #' | head -80; else echo "ABSSENT"; fi
done
echo
echo "== generated docs listing =="
find docs/models docs/devel_doc -maxdepth 2 -type f 2>/dev/null | sort | sed 's#^docs/#docs/#' | head -200Repository: lightspeed-core/lightspeed-stack
Length of output: 248
🏁 Script executed:
#!/bin/bash
set -euo pipefail
echo "== generated model files presence and timestamps =="
for f in docs/models/requests.md docs/models/requests.json docs/models/responses.md docs/models/responses.json docs/models/database.md docs/models/database.json docs/models/common.md docs/models/common.json docs/models/agents.json docs/models/common_responses.json; do
if ls -ld "$f" >/dev/null 2>&1; then
ls -l "$f"
else
echo "MISSING $f"
fi
done
echo
echo "== generated docs listing =="
find docs/models docs/devel_doc -maxdepth 2 -type f 2>/dev/null | sort | sed 's#^docs/#docs/#' | head -200
echo
echo "== relevant Makefile targets =="
sed -n '228,267p' Makefile | cat -n
echo
echo "== source model directories =="
for d in src/models/api/requests src/models/api/responses/successful src/models/api/responses/error src/models/common src/models/common/agents src/models/common/responses src/models/database src/models/config.py; do
echo "--- $d"
if [ -d "$d" ]; then find "$d" -maxdepth 2 -type f | sort | sed 's#^\(# (#' | head -80
elif [ -f "$d" ]; then ls -l "$d"
else echo "MISSING"; fi
done
echo
echo "== Make $(wildcard ...) expansion for present/missing sources =="
python3 - <<'PY'
import os
import glob
patterns=[
"src/models/api/requests/*",
"src/models/api/responses/successful/*",
"src/models/api/responses/error/*",
"src/models/common/*",
"src/models/common/agents/*",
"src/models/common/responses/*",
"src/models/database/*",
]
for p in patterns:
files=glob.glob(p)
print(f"{p}: {len(files)} files")
for f in files:
print(f" {os.path.basename(f)} {os.path.getmtime(f) if os.path.exists(f) else ''}")
PYRepository: lightspeed-core/lightspeed-stack
Length of output: 5102
🏁 Script executed:
#!/bin/bash
set -euo pipefail
echo "== source model file counts and names =="
python3 - <<'PY'
import glob, os
patterns = [
("requests", "src/models/api/requests/*"),
("successful", "src/models/api/responses/successful/*"),
("error", "src/models/api/responses/error/*"),
("common", "src/models/common/*"),
("agents", "src/models/common/agents/*"),
("common_responses", "src/models/common/responses/*"),
("database", "src/models/database/*"),
]
for name, pattern in patterns:
files = sorted(glob.glob(pattern))
print(f"## {name}: {len(files)} files")
for f in files:
print(f"\t{os.path.basename(f)}")
PY
echo
echo "== clean Makefile runs and staleness behavior (no-op; inspect relevant Python generator only) =="
grep -n "def dump_models_group\|models-group\|api/requests\|api/responses\|common" src/lightspeed_stack.py || trueRepository: lightspeed-core/lightspeed-stack
Length of output: 1786
🏁 Script executed:
#!/bin/bash
set -euo pipefail
echo "== dump-models-group implementation =="
sed -n '220,310p' src/lightspeed_stack.py | cat -n
echo
echo "== pyreverse invocation context =="
rg -n "pyreverse|packages|classes" Makefile scripts tests -g '*.mk' -g '*.py' 2>/dev/null | head -80 || true
echo
echo "== generated docs/ config target =="
sed -n '300,305p' Makefile | cat -nRepository: lightspeed-core/lightspeed-stack
Length of output: 10169
🌐 Web query:
GNU Make wildcard function expands before make reads makefile generated file prerequisites
💡 Result:
Yes, the GNU Make wildcard function is expanded before the makefile reads generated file prerequisites [1][2]. GNU Make processes makefiles in two distinct phases: the read-in phase and the execution phase [1]. During the read-in phase, Make parses all non-recipe lines, which includes expanding variables used in target and prerequisite lists [1][2]. Because wildcard functions and shell commands are evaluated during this initial read-in phase, they cannot detect files that have not yet been created by recipes, as those recipes have not yet been executed [1]. If you rely on wildcards to identify files generated during the build process, they will typically appear empty or incomplete because the files do not exist at the time of evaluation [1]. To overcome this limitation, common strategies include: 1. SECONDEXPANSION: By using the.SECONDEXPANSION special target and escaping the dollar sign (e.g.,
Citations:
- 1: https://www.mail-archive.com/bug-make@gnu.org/msg13510.html
- 2: https://stackoverflow.com/questions/73165284/makefile-prereq-patterns-in-wildcard
- 3: https://make.mad-scientist.net/papers/advanced-auto-dependency-generation/
Track deleted source models in incremental documentation builds.
$(wildcard src/models/api/requests/*) only lists sources present when Make parses the Makefile. If a source model is removed, the generated JSON or PlantUML target keeps older prerequisites and can stay fresh with stale content. Add a manifest/stale-source stamp that detects additions and deletions, while keeping file prerequisites for content changes. Apply the same pattern to the other $(wildcard ...) model generation targets.
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@Makefile` at line 229, Update the model-generation targets, including the
requests target and every other target using $(wildcard ...), to depend on a
manifest or stale-source stamp that detects both added and deleted model files
during incremental builds, while retaining the existing wildcard prerequisites
for content changes. Ensure the stamp is regenerated when the source set changes
so generated JSON and PlantUML outputs cannot remain stale after deletions.
c69c3cc to
8047492
Compare
|
@coderabbitai full review |
✅ Action performedFull review finished. |
There was a problem hiding this comment.
♻️ Duplicate comments (1)
Makefile (1)
230-232: 🗄️ Data Integrity & Integration | 🟠 MajorTrack deleted source models in incremental builds.
This is the same unresolved issue reported in the previous review. Make evaluates each
$(wildcard ...)expression while it reads the Makefile. After a source model is deleted, that path is removed from the prerequisite list. An existing JSON or PlantUML artifact can then remain up to date and retain the deleted model.Add a force-evaluated source-set manifest or stamp that changes when files are added or removed. Keep the current file prerequisites for content changes.
Run this verification:
#!/bin/bash set -euo pipefail rg -n 'docs/models/.*\.(json|puml):.*\$\(wildcard' Makefile tmp="$(mktemp -d)" trap 'rm -rf "$tmp"' EXIT mkdir -p "$tmp/src" cat >"$tmp/Makefile" <<'EOF' out.json: $(wildcard src/*) `@echo` regenerate EOF touch "$tmp/out.json" sleep 1 touch "$tmp/src/model.py" make -C "$tmp" -n out.json | tee "$tmp/with-source.plan" grep -q regenerate "$tmp/with-source.plan" touch "$tmp/out.json" rm "$tmp/src/model.py" make -C "$tmp" -n out.json | tee "$tmp/after-delete.plan" if grep -q regenerate "$tmp/after-delete.plan"; then echo "unexpected rebuild" exit 1 fiAlso applies to: 238-240, 242-244, 246-248, 250-252, 254-256, 258-260, 262-264, 266-268, 270-272
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@Makefile` around lines 230 - 232, Update each model-generation target around the visible requests rule and the corresponding JSON/PlantUML targets to add a force-evaluated source-set manifest or stamp that changes when model files are added or deleted, while retaining the existing $(wildcard ...) prerequisites for content changes. Ensure all listed targets depend on this manifest or stamp so incremental builds regenerate artifacts after source removal.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Duplicate comments:
In `@Makefile`:
- Around line 230-232: Update each model-generation target around the visible
requests rule and the corresponding JSON/PlantUML targets to add a
force-evaluated source-set manifest or stamp that changes when model files are
added or deleted, while retaining the existing $(wildcard ...) prerequisites for
content changes. Ensure all listed targets depend on this manifest or stamp so
incremental builds regenerate artifacts after source removal.
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: ASSERTIVE
Plan: Pro Plus
Run ID: dbd122de-5e59-4bf6-98e8-766251bd31d8
📒 Files selected for processing (1)
Makefile
📜 Review details
⏰ Context from checks skipped due to timeout. (1)
- GitHub Check: Red Hat Konflux / lightspeed-stack-0-7-e2e-tests / lightspeed-stack-0-7
⚠️ CI failures not shown inline (15)
GitHub Actions: E2E Tests for Lightspeed Evaluation / 0_E2E Tests for Lightspeed Evaluation job.txt: LCORE-3141: Proper dependencies in documentation make targets
Conclusion: failure
##[group]Run cd lightspeed-evaluation
�[36;1mcd lightspeed-evaluation�[0m
�[36;1mecho "Installing e2e tests dependencies"�[0m
�[36;1mpip install --break-system-packages uv�[0m
�[36;1muv sync�[0m
�[36;1m�[0m
�[36;1mecho "Running e2e test suite..."�[0m
�[36;1mmake e2e_tests_lcore�[0m
shell: /usr/bin/bash -e {0}
env:
OPENAI_***REDACTED_SECRET_ASSIGNMENT***
E2E_OPENAI_MODEL: gpt-4o-mini
FAISS_VECTOR_STORE_ID: vs_8c94967b-81cc-4028-a294-9cfac6fd9ae2
TERM: xterm-256color
FORCE_COLOR: 1
##[endgroup]
Installing e2e tests dependencies
Defaulting to user installation because normal site-packages is not writeable
Collecting uv
Downloading uv-0.12.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (11 kB)
Downloading uv-0.12.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (22.0 MB)
�[?25l �[38;5;237m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━�[0m �[32m0.0/22.0 MB�[0m �[31m?�[0m eta �[36m-:--:--�[0m
�[2K �[38;5;197m━━�[0m�[38;5;237m╺�[0m�[38;5;237m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━�[0m �[32m1.4/22.0 MB�[0m �[31m42.2 MB/s�[0m eta �[36m0:00:01�[0m
�[2K �[38;5;197m━━━━━━━━━�[0m�[38;5;197m╸�[0m�[38;5;237m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━�[0m �[32m5.4/22.0 MB�[0m �[31m79.0 MB/s�[0m eta �[36m0:00:01�[0m
�[2K �[38;5;197m━━━━━━━━━━━━━━━━━━━�[0m�[38;5;237m╺�[0m�[38;5;237m━━━━━━━━━━━━━━━━━━━━�[0m �[32m10.6/22.0 MB�[0m �[31m119.9 MB/s�[0m eta �[36m0:00:01�[0m
�[2K �[38;5;197m━━━━━━━━━━━━━━━━━━━━━━━━━━━━�[0m�[38;5;237m╺�[0m�[38;5;237m━━━━━━━━━━━�[0m �[32m15.7/22.0 MB�[0m �[31m151.0 MB/s�[0m eta �[36m0:00:01�[0m
�[2K �[38;5;197m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━�[0m�[38;5;197m╸�[0m �[32m21.9/22.0 MB�[0m �[31m164.8 MB/s�[0m eta �[36m0:00:01�[0m
�[2K �[38;5;70m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━�[0m �[32m22.0/22.0 MB�[0m �[31m112.5 MB/s�[0m eta �[36m0:00:00�[0m
�[?25hInstalling collected packages: uv
Successfully installed uv-0.12.0
Using CPython 3.12.3 interpreter at: �[36m/usr/bin/python3�[39m
Creati...
GitHub Actions: E2E Tests / E2E server mode _ ci _ group 1: LCORE-3141: Proper dependencies in documentation make targets
Conclusion: failure
[36mGiven �[0m�[36mlightspeed-stack --migrate-config is run for the legacy migration fixture pair�[0m�[90m # None�[0m
�[36mAnd �[0m�[36mThe service uses the lightspeed-stack-unified-migrated.yaml configuration�[0m�[90m # None�[0m
�[36mAnd �[0m�[36mLlama Stack is restarted�[0m�[90m # None�[0m
�[36mAnd �[0m�[36mLightspeed Stack is restarted�[0m�[90m # None�[0m
�[36mWhen �[0m�[36mI access endpoint "readiness" using HTTP GET method�[0m�[90m # None�[0m
�[36mThen �[0m�[36mThe status code of the response is 200�[0m�[90m # None�[0m
�[36mWhen �[0m�[36mI use "query" to ask question�[0m�[90m # None�[0m
"""
{"query": "Say hello", "model": "{MODEL}", "provider": "{PROVIDER}"}
"""
�[36mThen �[0m�[36mThe status code of the response is 200�[0m�[90m # None�[0m
`@e2e_group_2` `@skip`
Feature: Unified mode configuration synthesis�[90m # tests/e2e/features/unified-mode-synthesis.feature:2�[0m
`@e2e_group_2` `@skip`
Feature: Unified mode configuration synthesis �[90m # tests/e2e/features/unified-mode-synthesis.feature:2�[0m
Scenario: native_override replaces an overlapping scalar key �[90m # tests/e2e/features/unified-mode-synthesis.feature:10�[0m
�[36mGiven �[0m�[36mThe service is started locally�[0m�[90m # None�[0m
�[36mAnd �[0m�[36mThe system is in default state�[0m�[90m # None�[0m
�[36mAnd �[0m�[36mthe Lightspeed stack configuration directory is "tests/e2e/config...
GitHub Actions: E2E Tests / E2E server mode _ ci _ group 3: LCORE-3141: Proper dependencies in documentation make targets
Conclusion: failure
ion.feature:42�[0m
�[36mGiven �[0m�[36mThe service is started locally�[0m�[90m # None�[0m
�[36mAnd �[0m�[36mThe system is in default state�[0m�[90m # None�[0m
�[36mAnd �[0m�[36mREST API service prefix is /v1�[0m�[90m # None�[0m
�[36mAnd �[0m�[36mthe Lightspeed stack configuration directory is "tests/e2e/configuration/unified-mode"�[0m�[90m # None�[0m
�[36mGiven �[0m�[36mlightspeed-stack --migrate-config is run for the legacy migration fixture pair�[0m�[90m # None�[0m
�[36mAnd �[0m�[36mThe service uses the lightspeed-stack-unified-migrated.yaml configuration�[0m�[90m # None�[0m
�[36mAnd �[0m�[36mLlama Stack is restarted�[0m�[90m # None�[0m
�[36mAnd �[0m�[36mLightspeed Stack is restarted�[0m�[90m # None�[0m
�[36mWhen �[0m�[36mI access endpoint "readiness" using HTTP GET method�[0m�[90m # None�[0m
�[36mThen �[0m�[36mThe status code of the response is 200�[0m�[90m # None�[0m
�[36mWhen �[0m�[36mI use "query" to ask question�[0m�[90m # None�[0m
"""
{"query": "Say hello", "model": "{MODEL}", "provider": "{PROVIDER}"}
"""
�[36mThen �[0m�[36mThe status code of the response is 200�[0m�[90m # None�[0m
`@e2e_group_2` `@skip`
Feature: Unified mode configuration synthesis�[90m # tests/e2e/features/unified-mode-synthesis.feature:2�[0m
`@e2e_group_2` `@skip`
Feature: Unified mode configuration synthesis �[90m # tests/e2e/features/unified-...
GitHub Actions: E2E Tests / E2E server mode _ ci _ group 2: LCORE-3141: Proper dependencies in documentation make targets
Conclusion: failure
[0m
"""
{"query": "Echo 'Hello World'. Use the load_skill tool to load the 'echo' skill.", "model": "{MODEL}", "provider": "{PROVIDER}"}
"""
�[90mWhen �[0m�[90mI wait for the response to be completed�[0m�[90m # tests/e2e/features/steps/llm_query_response.py:91�[0m
�[2A �[31mWhen �[0m�[31mI wait for the response to be completed�[0m�[90m # tests/e2e/features/steps/llm_query_response.py:91�[0m
Traceback (most recent call last):
File "/home/runner/work/lightspeed-stack/lightspeed-stack/.venv/lib/python3.12/site-packages/behave/model.py", line 1991, in run
match.run(runner.context)
File "/home/runner/work/lightspeed-stack/lightspeed-stack/.venv/lib/python3.12/site-packages/behave/matchers.py", line 105, in run
self.func(context, *args, **kwargs)
File "tests/e2e/features/steps/llm_query_response.py", line 95, in wait_for_complete_response
context.response.raise_for_status()
File "/home/runner/work/lightspeed-stack/lightspeed-stack/.venv/lib/python3.12/site-packages/requests/models.py", line 1167, in raise_for_status
raise HTTPError(http_error_msg, response=self)
requests.exceptions.HTTPError: 429 Client Error: Too Many Requests for url: http://localhost:8080/v1/streaming_query
AUTO-RETRY SCENARIO (attempt 3)
�[36mThen �[0m�[36mThe status code of the response is 200�[0m�[90m # None�[0m
�[36mAnd �[0m�[36mThe body of the "tool_calls" field of the response is the following�[0m�[90m # None�[0m
"""
[
{
"name": "load_skill",
"args": {
"skill_name": "echo"
},
"type": "function_call"
}
]
"""
�[36mAnd �[0m�[36mThe body of the "tool_results" field of the response is the following�[0m�[90m # None�[0m
...
GitHub Actions: E2E Tests / E2E library mode _ ci _ group 2: LCORE-3141: Proper dependencies in documentation make targets
Conclusion: failure
# tests/e2e/features/steps/llm_query_response.py:100�[0m
"""
{"query": "Echo 'Hello World'. Use the load_skill tool to load the 'echo' skill.", "model": "{MODEL}", "provider": "{PROVIDER}"}
"""
�[5A �[32mWhen �[0m�[32mI use "�[0m�[32m�[1mstreaming_query�[0m�[32m" to ask question�[0m�[90m # tests/e2e/features/steps/llm_query_response.py:100 1.347s�[0m
"""
{"query": "Echo 'Hello World'. Use the load_skill tool to load the 'echo' skill.", "model": "{MODEL}", "provider": "{PROVIDER}"}
"""
�[90mWhen �[0m�[90mI wait for the response to be completed�[0m�[90m # tests/e2e/features/steps/llm_query_response.py:91�[0m
�[2A �[31mWhen �[0m�[31mI wait for the response to be completed�[0m�[90m # tests/e2e/features/steps/llm_query_response.py:91�[0m
Traceback (most recent call last):
File "/home/runner/work/lightspeed-stack/lightspeed-stack/.venv/lib/python3.12/site-packages/behave/model.py", line 1991, in run
match.run(runner.context)
File "/home/runner/work/lightspeed-stack/lightspeed-stack/.venv/lib/python3.12/site-packages/behave/matchers.py", line 105, in run
self.func(context, *args, **kwargs)
File "tests/e2e/features/steps/llm_query_response.py", line 95, in wait_for_complete_response
context.response.raise_for_status()
File "/home/runner/work/lightspeed-stack/lightspeed-stack/.venv/lib/python3.12/site-packages/requests/models.py", line 1167, in raise_for_status
raise HTTPError(http_error_msg, response=self)
requests.exceptions.HTTPError: 429 Client Error: Too Many Requests for url: http://localhost:8080/v1/streaming_query
AUTO-RETRY SCENARIO (attempt 3)
�[36mThen �[0m�[36mThe status code of the response is 200�[0m�[90m # None�[0m
�[36mA...
GitHub Actions: E2E Tests / 2_E2E library mode _ ci _ group 1.txt: LCORE-3141: Proper dependencies in documentation make targets
Conclusion: failure
xture pair�[0m�[90m # None�[0m
�[36mAnd �[0m�[36mThe service uses the lightspeed-stack-unified-migrated.yaml configuration�[0m�[90m # None�[0m
�[36mAnd �[0m�[36mThe service is restarted�[0m�[90m # None�[0m
�[36mWhen �[0m�[36mI access endpoint "readiness" using HTTP GET method�[0m�[90m # None�[0m
�[36mThen �[0m�[36mThe status code of the response is 200�[0m�[90m # None�[0m
�[36mWhen �[0m�[36mI use "query" to ask question�[0m�[90m # None�[0m
"""
{"query": "Say hello", "model": "{MODEL}", "provider": "{PROVIDER}"}
"""
�[36mThen �[0m�[36mThe status code of the response is 200�[0m�[90m # None�[0m
`@skip-in-library-mode`
Scenario: Migrated unified configuration drives byte-identical Llama Stack behavior in server mode �[90m # tests/e2e/features/unified-mode-migration.feature:42�[0m
�[36mGiven �[0m�[36mThe service is started locally�[0m�[90m # None�[0m
�[36mAnd �[0m�[36mThe system is in default state�[0m�[90m # None�[0m
�[36mAnd �[0m�[36mREST API service prefix is /v1�[0m�[90m # None�[0m
�[36mAnd �[0m�[36mthe Lightspeed stack configuration directory is "tests/e2e/configuration/unified-mode"�[0m�[90m # None�[0m
�[36mGiven �[0m�[36mlightspeed-stack --migrate-config is run for the legacy migration fixture pair�[0m�[90m # None�[0m
�[36mAnd �[0m�[36mThe service uses the lightspeed-stack-unified-migrated.yaml configuration�[0m�[90m # None�[0m
�[36mAn...
GitHub Actions: E2E Tests / 4_E2E library mode _ ci _ group 3.txt: LCORE-3141: Proper dependencies in documentation make targets
Conclusion: failure
mWhen �[0m�[36mI access endpoint "readiness" using HTTP GET method�[0m�[90m # None�[0m
�[36mThen �[0m�[36mThe status code of the response is 200�[0m�[90m # None�[0m
�[36mWhen �[0m�[36mI use "query" to ask question�[0m�[90m # None�[0m
"""
{"query": "Say hello", "model": "{MODEL}", "provider": "{PROVIDER}"}
"""
�[36mThen �[0m�[36mThe status code of the response is 200�[0m�[90m # None�[0m
`@skip-in-library-mode`
Scenario: Migrated unified configuration drives byte-identical Llama Stack behavior in server mode �[90m # tests/e2e/features/unified-mode-migration.feature:42�[0m
�[36mGiven �[0m�[36mThe service is started locally�[0m�[90m # None�[0m
�[36mAnd �[0m�[36mThe system is in default state�[0m�[90m # None�[0m
�[36mAnd �[0m�[36mREST API service prefix is /v1�[0m�[90m # None�[0m
�[36mAnd �[0m�[36mthe Lightspeed stack configuration directory is "tests/e2e/configuration/unified-mode"�[0m�[90m # None�[0m
�[36mGiven �[0m�[36mlightspeed-stack --migrate-config is run for the legacy migration fixture pair�[0m�[90m # None�[0m
�[36mAnd �[0m�[36mThe service uses the lightspeed-stack-unified-migrated.yaml configuration�[0m�[90m # None�[0m
�[36mAnd �[0m�[36mLlama Stack is restarted�[0m�[90m # None�[0m
�[36mAnd �[0m�[36mLightspeed Stack is restarted�[0m�[90m # None�[0m
�[36mWhen �[0m�[36mI access endpoint "readiness" using HTTP GET...
GitHub Actions: E2E Tests / E2E library mode _ ci _ group 2: LCORE-3141: Proper dependencies in documentation make targets
Conclusion: failure
peed-stack | provider_id: huggingface
lightspeed-stack | provider_type: remote::huggingface
lightspeed-stack | - config:
lightspeed-stack | kvstore:
lightspeed-stack | backend: kv_default
lightspeed-stack | namespace: localfs_datasetio
lightspeed-stack | module: null
lightspeed-stack | provider_id: localfs
lightspeed-stack | provider_type: inline::localfs
lightspeed-stack | eval:
lightspeed-stack | - config:
lightspeed-stack | kvstore:
lightspeed-stack | backend: kv_default
lightspeed-stack | namespace: eval_store
lightspeed-stack | module: null
lightspeed-stack | provider_id: meta-reference
lightspeed-stack | provider_type: inline::meta-reference
lightspeed-stack | files:
lightspeed-stack | - config:
lightspeed-stack | metadata_store:
lightspeed-stack | backend: sql_default
lightspeed-stack | table_name: files_metadata
lightspeed-stack | storage_dir: ~/.llama/storage/files
lightspeed-stack | module: null
lightspeed-stack | provider_id: meta-reference-files
lightspeed-stack | provider_type: inline::localfs
lightspeed-stack | inference:
lightspeed-stack | - config:
lightspeed-stack | allowed_models:
lightspeed-stack | - gpt-4o-mini
lightspeed-stack | ***REDACTED_SECRET_ASSIGNMENT***
lightspeed-stack | module: null
lightspeed-stack | provider_id: openai
lightspeed-stack | provider_type: remote::openai
lightspeed-stack | - config: {}
lightspeed-stack | module: null
lightspeed-stack | provider_id: sentence-transformers
lightspeed-stack | provider_type: inline::sentence-transformers
lightspeed-stack | safety:
lightspeed-stack | - config:
lightspeed-stack | excluded_categories: []
lightspeed-stack | module: null
lightspeed-stack | provider_id: llama-guard
lightspeed-stack | provider_type: in...
GitHub Actions: E2E Tests / 5_E2E library mode _ ci _ group 2.txt: LCORE-3141: Proper dependencies in documentation make targets
Conclusion: failure
# tests/e2e/features/steps/llm_query_response.py:100�[0m
"""
{"query": "Echo 'Hello World'. Use the load_skill tool to load the 'echo' skill.", "model": "{MODEL}", "provider": "{PROVIDER}"}
"""
�[5A �[32mWhen �[0m�[32mI use "�[0m�[32m�[1mstreaming_query�[0m�[32m" to ask question�[0m�[90m # tests/e2e/features/steps/llm_query_response.py:100 1.347s�[0m
"""
{"query": "Echo 'Hello World'. Use the load_skill tool to load the 'echo' skill.", "model": "{MODEL}", "provider": "{PROVIDER}"}
"""
�[90mWhen �[0m�[90mI wait for the response to be completed�[0m�[90m # tests/e2e/features/steps/llm_query_response.py:91�[0m
�[2A �[31mWhen �[0m�[31mI wait for the response to be completed�[0m�[90m # tests/e2e/features/steps/llm_query_response.py:91�[0m
Traceback (most recent call last):
File "/home/runner/work/lightspeed-stack/lightspeed-stack/.venv/lib/python3.12/site-packages/behave/model.py", line 1991, in run
match.run(runner.context)
File "/home/runner/work/lightspeed-stack/lightspeed-stack/.venv/lib/python3.12/site-packages/behave/matchers.py", line 105, in run
self.func(context, *args, **kwargs)
File "tests/e2e/features/steps/llm_query_response.py", line 95, in wait_for_complete_response
context.response.raise_for_status()
File "/home/runner/work/lightspeed-stack/lightspeed-stack/.venv/lib/python3.12/site-packages/requests/models.py", line 1167, in raise_for_status
raise HTTPError(http_error_msg, response=self)
requests.exceptions.HTTPError: 429 Client Error: Too Many Requests for url: http://localhost:8080/v1/streaming_query
AUTO-RETRY SCENARIO (attempt 3)
�[36mThen �[0m�[36mThe status code of the response is 200�[0m�[90m # None�[0m
�[36mA...
GitHub Actions: E2E Tests / E2E server mode _ ci _ group 1: LCORE-3141: Proper dependencies in documentation make targets
Conclusion: failure
]
lightspeed-stack | .692 INFO: Retrying request to /v1/moderations in 0.965031 seconds [llama_stack_client._base_client:1685]
lightspeed-stack | .435 INFO: 172.18.0.1:39728 - "POST /v1/query HTTP/1.1" 429 Too Many Requests
lightspeed-stack | INFO:httpx:HTTP Request: POST http://llama-stack:8321/v1/moderations "HTTP/1.1 429 Too Many Requests"
lightspeed-stack | .139 WARNING: No-op authentication dependency is being used. The service is running in insecure mode intended solely for development purposes [lightspeed_stack.authentication.noop:50]
lightspeed-stack | .140 INFO: Response to /v1/liveness endpoint [lightspeed_stack.app.endpoints.health:253]
lightspeed-stack | .140 INFO: 127.0.0.1:36138 - "GET /liveness HTTP/1.1" 200 OK
lightspeed-stack | .182 WARNING: No-op authentication dependency is being used. The service is running in insecure mode intended solely for development purposes [lightspeed_stack.authentication.noop:50]
lightspeed-stack | .182 INFO: Response to /v1/liveness endpoint [lightspeed_stack.app.endpoints.health:253]
lightspeed-stack | .182 INFO: 127.0.0.1:51870 - "GET /liveness HTTP/1.1" 200 OK
lightspeed-stack | .866 INFO: Shutting down [uvicorn.error:270]
lightspeed-stack | .966 INFO: Waiting for application shutdown. [uvicorn.error:67]
lightspeed-stack | .966 INFO: App shutdown complete [lightspeed_stack.app.main:150]
lightspeed-stack | .967 INFO: Application shutdown complete. [uvicorn.error:76]
lightspeed-stack | .967 INFO: Finished server process [1] [uvicorn.error:101]
lightspeed-stack | .967 INFO: Lightspeed Core Stack finished [lightspeed_stack.__main__:268]
lightspeed-stack | .153 INFO: Lightspeed Core Stack startup [lightspeed_stack.__main__:160]
lightspeed-stack | .156 INFO: Configuration: name='Lightspeed Core Service (LCS)' service=ServiceConfiguration(host='0.0.0.0', port=8080, base_url=None, auth_enabled=False, workers=1, color_lo...
GitHub Actions: E2E Tests / E2E server mode _ ci _ group 3: LCORE-3141: Proper dependencies in documentation make targets
Conclusion: failure
pplication shutdown. [uvicorn.error:67]
lightspeed-stack | .145 INFO: App shutdown complete [lightspeed_stack.app.main:150]
lightspeed-stack | .145 INFO: Application shutdown complete. [uvicorn.error:76]
lightspeed-stack | .145 INFO: Finished server process [1] [uvicorn.error:101]
lightspeed-stack | .146 INFO: Lightspeed Core Stack finished [lightspeed_stack.__main__:268]
lightspeed-stack | .554 INFO: Lightspeed Core Stack startup [lightspeed_stack.__main__:160]
lightspeed-stack | .557 INFO: Configuration: name='Lightspeed Core Service (LCS)' service=ServiceConfiguration(host='0.0.0.0', port=8080, base_url=None, auth_enabled=False, workers=1, color_log=True, access_log=True, tls_config=TLSConfiguration(tls_certificate_path=None, tls_key_path=None, tls_key_***REDACTED_SECRET_ASSIGNMENT*** root_path='', cors=CORSConfiguration(allow_origins=['*'], allow_credentials=False, allow_methods=['*'], allow_headers=['*'])) llama_stack=LlamaStackConfiguration(url=AnyHttpUrl('http://llama-stack:8321/'), ***REDACTED_SECRET_ASSIGNMENT*** use_as_library_client=False, library_client_config_path=None, timeout=180, max_retries=5, retry_delay=2, allow_degraded_mode=False, config=None) user_data_collection=UserDataCollection(feedback_enabled=True, feedback_storage='/tmp/data/feedback', transcripts_enabled=True, transcripts_storage='/tmp/data/transcripts') database=DatabaseConfiguration(sqlite=SQLiteDatabaseConfiguration(db_path='/tmp/lightspeed-stack.db'), postgres=None) mcp_servers=[] authentication=AuthenticationConfiguration(module='noop', skip_tls_verification=False, skip_for_health_probes=False, skip_for_metrics=False, k8s_cluster_api=None, k8s_ca_cert_path=None, jwk_config=None, api_key_config=None, rh_identity_config=None, trusted_proxy_config=None) authorization=None customization=None inference=InferenceConfiguration(default_model='gpt-4o-mini', default_provider='openai', context_windows={}, providers=[], max_infer_iters=10, max_tool_...
GitHub Actions: E2E Tests / 0_E2E server mode _ ci _ group 1.txt: LCORE-3141: Proper dependencies in documentation make targets
Conclusion: failure
[36mGiven �[0m�[36mlightspeed-stack --migrate-config is run for the legacy migration fixture pair�[0m�[90m # None�[0m
�[36mAnd �[0m�[36mThe service uses the lightspeed-stack-unified-migrated.yaml configuration�[0m�[90m # None�[0m
�[36mAnd �[0m�[36mLlama Stack is restarted�[0m�[90m # None�[0m
�[36mAnd �[0m�[36mLightspeed Stack is restarted�[0m�[90m # None�[0m
�[36mWhen �[0m�[36mI access endpoint "readiness" using HTTP GET method�[0m�[90m # None�[0m
�[36mThen �[0m�[36mThe status code of the response is 200�[0m�[90m # None�[0m
�[36mWhen �[0m�[36mI use "query" to ask question�[0m�[90m # None�[0m
"""
{"query": "Say hello", "model": "{MODEL}", "provider": "{PROVIDER}"}
"""
�[36mThen �[0m�[36mThe status code of the response is 200�[0m�[90m # None�[0m
`@e2e_group_2` `@skip`
Feature: Unified mode configuration synthesis�[90m # tests/e2e/features/unified-mode-synthesis.feature:2�[0m
`@e2e_group_2` `@skip`
Feature: Unified mode configuration synthesis �[90m # tests/e2e/features/unified-mode-synthesis.feature:2�[0m
Scenario: native_override replaces an overlapping scalar key �[90m # tests/e2e/features/unified-mode-synthesis.feature:10�[0m
�[36mGiven �[0m�[36mThe service is started locally�[0m�[90m # None�[0m
�[36mAnd �[0m�[36mThe system is in default state�[0m�[90m # None�[0m
�[36mAnd �[0m�[36mthe Lightspeed stack configuration directory is "tests/e2e/config...
GitHub Actions: E2E Tests / 1_E2E server mode _ ci _ group 3.txt: LCORE-3141: Proper dependencies in documentation make targets
Conclusion: failure
ion.feature:42�[0m
�[36mGiven �[0m�[36mThe service is started locally�[0m�[90m # None�[0m
�[36mAnd �[0m�[36mThe system is in default state�[0m�[90m # None�[0m
�[36mAnd �[0m�[36mREST API service prefix is /v1�[0m�[90m # None�[0m
�[36mAnd �[0m�[36mthe Lightspeed stack configuration directory is "tests/e2e/configuration/unified-mode"�[0m�[90m # None�[0m
�[36mGiven �[0m�[36mlightspeed-stack --migrate-config is run for the legacy migration fixture pair�[0m�[90m # None�[0m
�[36mAnd �[0m�[36mThe service uses the lightspeed-stack-unified-migrated.yaml configuration�[0m�[90m # None�[0m
�[36mAnd �[0m�[36mLlama Stack is restarted�[0m�[90m # None�[0m
�[36mAnd �[0m�[36mLightspeed Stack is restarted�[0m�[90m # None�[0m
�[36mWhen �[0m�[36mI access endpoint "readiness" using HTTP GET method�[0m�[90m # None�[0m
�[36mThen �[0m�[36mThe status code of the response is 200�[0m�[90m # None�[0m
�[36mWhen �[0m�[36mI use "query" to ask question�[0m�[90m # None�[0m
"""
{"query": "Say hello", "model": "{MODEL}", "provider": "{PROVIDER}"}
"""
�[36mThen �[0m�[36mThe status code of the response is 200�[0m�[90m # None�[0m
`@e2e_group_2` `@skip`
Feature: Unified mode configuration synthesis�[90m # tests/e2e/features/unified-mode-synthesis.feature:2�[0m
`@e2e_group_2` `@skip`
Feature: Unified mode configuration synthesis �[90m # tests/e2e/features/unified-...
GitHub Actions: E2E Tests / E2E server mode _ ci _ group 2: LCORE-3141: Proper dependencies in documentation make targets
Conclusion: failure
-stack | .885 INFO: Sentry DSN not configured, skipping initialization [lightspeed_stack.sentry:80]
lightspeed-stack | .885 INFO: Using Llama stack running as a service [lightspeed_stack.client:122]
lightspeed-stack | .885 INFO: Using timeout of 180 seconds for Llama Stack requests [lightspeed_stack.client:123]
lightspeed-stack | INFO:httpx:HTTP Request: GET http://llama-stack:8321/v1/version "HTTP/1.1 200 OK"
lightspeed-stack | .066 INFO: Correct Llama Stack version: 0.6.0 [lightspeed_stack.utils.llama_stack_version:130]
lightspeed-stack | .067 INFO: Registering MCP servers [lightspeed_stack.app.main:125]
lightspeed-stack | .067 INFO: Setting up model metrics [lightspeed_stack.metrics.utils:18]
lightspeed-stack | INFO:httpx:HTTP Request: GET http://llama-stack:8321/v1/models "HTTP/1.1 200 OK"
lightspeed-stack | .073 INFO: Model metrics setup complete [lightspeed_stack.metrics.utils:58]
lightspeed-stack | .073 INFO: App startup complete [lightspeed_stack.app.main:135]
lightspeed-stack | .073 INFO: Initialize SQLite database [lightspeed_stack.app.database:193]
lightspeed-stack | .094 INFO: Application startup complete. [uvicorn.error:62]
lightspeed-stack | .094 INFO: Uvicorn running on http://0.0.0.0:8080 (Press CTRL+C to quit) [uvicorn.error:222]
lightspeed-stack | .007 WARNING: No-op authentication dependency is being used. The service is running in insecure mode intended solely for development purposes [lightspeed_stack.authentication.noop:50]
lightspeed-stack | .007 INFO: Response to /v1/liveness endpoint [lightspeed_stack.app.endpoints.health:253]
lightspeed-stack | .007 INFO: 127.0.0.1:41364 - "GET /liveness HTTP/1.1" 200 OK
lightspeed-stack | .412 INFO: Shutting down [uvicorn.error:270]
lightspeed-stack | .513 INFO: Waiting for application shutdown. [uvicorn.error:67]
lightspeed-stack | .513 INFO: App shutdown complete [lightspeed_stack.app....
GitHub Actions: E2E Tests / 3_E2E server mode _ ci _ group 2.txt: LCORE-3141: Proper dependencies in documentation make targets
Conclusion: failure
[0m
"""
{"query": "Echo 'Hello World'. Use the load_skill tool to load the 'echo' skill.", "model": "{MODEL}", "provider": "{PROVIDER}"}
"""
�[90mWhen �[0m�[90mI wait for the response to be completed�[0m�[90m # tests/e2e/features/steps/llm_query_response.py:91�[0m
�[2A �[31mWhen �[0m�[31mI wait for the response to be completed�[0m�[90m # tests/e2e/features/steps/llm_query_response.py:91�[0m
Traceback (most recent call last):
File "/home/runner/work/lightspeed-stack/lightspeed-stack/.venv/lib/python3.12/site-packages/behave/model.py", line 1991, in run
match.run(runner.context)
File "/home/runner/work/lightspeed-stack/lightspeed-stack/.venv/lib/python3.12/site-packages/behave/matchers.py", line 105, in run
self.func(context, *args, **kwargs)
File "tests/e2e/features/steps/llm_query_response.py", line 95, in wait_for_complete_response
context.response.raise_for_status()
File "/home/runner/work/lightspeed-stack/lightspeed-stack/.venv/lib/python3.12/site-packages/requests/models.py", line 1167, in raise_for_status
raise HTTPError(http_error_msg, response=self)
requests.exceptions.HTTPError: 429 Client Error: Too Many Requests for url: http://localhost:8080/v1/streaming_query
AUTO-RETRY SCENARIO (attempt 3)
�[36mThen �[0m�[36mThe status code of the response is 200�[0m�[90m # None�[0m
�[36mAnd �[0m�[36mThe body of the "tool_calls" field of the response is the following�[0m�[90m # None�[0m
"""
[
{
"name": "load_skill",
"args": {
"skill_name": "echo"
},
"type": "function_call"
}
]
"""
�[36mAnd �[0m�[36mThe body of the "tool_results" field of the response is the following�[0m�[90m # None�[0m
...
🧰 Additional context used
📓 Path-based instructions (1)
**/*
📄 CodeRabbit inference engine (Custom checks)
**/*: Flag meaningful O(n^2)+ algorithms on non-trivial inputs, including handlers and Kubernetes list operations.
Flag N+1 patterns that list items and then query once per item, including Kubernetes API and database access.
Flag expensive work inside loops, including API calls, JSON parsing, and regex compilation.
Flag unbounded growth in caches, watchers, or buffers when eviction or limits are missing.
Flag missing pagination or limits on list operations and API endpoints.
Flag secrets or tokens logged in plaintext or hardcoded in source.
Flag API endpoints missing authentication or authorization.
Flag injection vulnerabilities, including SQL injection, command injection, and path traversal.
Flag sensitive data leaked in API responses, WebSocket messages, or logs.
Flag Kubernetes Secrets and Red Hat secrets missing OwnerReferences.
Files:
Makefile
🪛 checkmake (0.3.2)
Makefile
[warning] 202-202: Target "generate-documentation" should be declared PHONY.
(phonydeclared)
🪛 GitHub Actions: E2E Tests / 0_E2E server mode _ ci _ group 1.txt
Makefile
[error] 170-170: Command 'make test-e2e-tagged' failed with exit code 1; the CI process completed with exit code 2. Overall result: 42 scenarios failed.
🪛 GitHub Actions: E2E Tests / 1_E2E server mode _ ci _ group 3.txt
Makefile
[error] 170-170: The 'test-e2e-tagged' target failed: 37 scenarios failed. make exited with Error 1; the CI process completed with exit code 2.
🪛 GitHub Actions: E2E Tests / 2_E2E library mode _ ci _ group 1.txt
Makefile
[error] 170-170: make test-e2e-tagged failed; 26 scenarios failed and the process exited with code 2.
🪛 GitHub Actions: E2E Tests / 3_E2E server mode _ ci _ group 2.txt
Makefile
[error] 170-170: The test-e2e-tagged target failed; 33 scenarios failed and 14 errored. make exited with code 1, causing the CI process to exit with code 2.
🪛 GitHub Actions: E2E Tests / 4_E2E library mode _ ci _ group 3.txt
Makefile
[error] 170-170: The 'test-e2e-tagged' make target failed: 30 scenarios failed and make exited with Error 1. The CI process completed with exit code 2.
🪛 GitHub Actions: E2E Tests / 5_E2E library mode _ ci _ group 2.txt
Makefile
[error] 170-170: The test-e2e-tagged target failed after 32 failed and 14 errored scenarios. make exited with status 1, and the CI process completed with exit code 2.
🪛 GitHub Actions: E2E Tests / E2E library mode _ ci _ group 2
Makefile
[error] 170-170: The test-e2e-tagged target failed after 32 failed and 14 errored scenarios. make exited with code 1, and the CI process exited with code 2.
🪛 GitHub Actions: E2E Tests / E2E server mode _ ci _ group 1
Makefile
[error] 170-170: Command 'make test-e2e-tagged' failed: 7 features and 42 scenarios failed. The make target exited with status 1, and the CI process completed with exit code 2.
🪛 GitHub Actions: E2E Tests / E2E server mode _ ci _ group 3
Makefile
[error] 170-170: The 'test-e2e-tagged' target failed: 5 features passed, 6 failed; 86 scenarios passed, 37 failed. make exited with error 1, and the CI process completed with exit code 2.
🔇 Additional comments (3)
Makefile (3)
28-30: LGTM!
202-202: LGTM!
234-236: LGTM!
Description
LCORE-3141: Proper dependencies in documentation
maketargetsType of change
Tools used to create PR
Related Tickets & Documents
Summary by CodeRabbit