mirror of
https://github.com/meta-llama/llama-stack.git
synced 2025-08-21 09:23:13 +00:00
Some checks failed
Test External Providers Installed via Module / test-external-providers-from-module (venv) (push) Has been skipped
SqlStore Integration Tests / test-postgres (3.12) (push) Failing after 21s
Test Llama Stack Build / build-single-provider (push) Failing after 23s
SqlStore Integration Tests / test-postgres (3.13) (push) Failing after 28s
Test Llama Stack Build / generate-matrix (push) Successful in 25s
Python Package Build Test / build (3.13) (push) Failing after 25s
Test Llama Stack Build / build-custom-container-distribution (push) Failing after 34s
Integration Tests (Replay) / Integration Tests (, , , client=, vision=) (push) Failing after 37s
Test External API and Providers / test-external (venv) (push) Failing after 33s
Unit Tests / unit-tests (3.13) (push) Failing after 33s
Test Llama Stack Build / build-ubi9-container-distribution (push) Failing after 38s
Python Package Build Test / build (3.12) (push) Failing after 1m0s
Integration Auth Tests / test-matrix (oauth2_token) (push) Failing after 1m4s
Unit Tests / unit-tests (3.12) (push) Failing after 59s
Test Llama Stack Build / build (push) Failing after 50s
Vector IO Integration Tests / test-matrix (push) Failing after 1m48s
UI Tests / ui-tests (22) (push) Successful in 2m12s
Pre-commit / pre-commit (push) Successful in 2m41s
I started this PR trying to unbreak a newly broken test `test_agent_name`. This test was broken all along but did not show up because during testing we were pulling the "non-updated" llama stack client. See this comment: https://github.com/llamastack/llama-stack/pull/3119#discussion_r2270988205 While fixing this, I encountered a large amount of badness in our CI workflow definitions. - We weren't passing `LLAMA_STACK_DIR` or `LLAMA_STACK_CLIENT_DIR` overrides to `llama stack build` at all in some cases. - Even when we did, we used `uv run` liberally. The first thing `uv run` does is "syncs" the project environment. This means, it is going to undo any mutations we might have done ourselves. But we make many mutations in our CI runners to these environments. The most important of which is why `llama stack build` where we install distro dependencies. As a result, when you tried to run the integration tests, you would see old, strange versions. ## Test Plan Re-record using: ``` sh scripts/integration-tests.sh --stack-config ci-tests \ --provider ollama --test-pattern test_agent_name --inference-mode record ``` Then re-run with `--inference-mode replay`. But: Eventually, this test turned out to be quite flaky for telemetry reasons. I haven't investigated it for now and just disabled it sadly since we have a release to push out.
88 lines
2.8 KiB
YAML
88 lines
2.8 KiB
YAML
name: 'Run and Record Tests'
|
|
description: 'Run integration tests and handle recording/artifact upload'
|
|
|
|
inputs:
|
|
test-subdirs:
|
|
description: 'Comma-separated list of test subdirectories to run'
|
|
required: true
|
|
test-pattern:
|
|
description: 'Regex pattern to pass to pytest -k'
|
|
required: false
|
|
default: ''
|
|
stack-config:
|
|
description: 'Stack configuration to use'
|
|
required: true
|
|
provider:
|
|
description: 'Provider to use for tests'
|
|
required: true
|
|
inference-mode:
|
|
description: 'Inference mode (record or replay)'
|
|
required: true
|
|
run-vision-tests:
|
|
description: 'Whether to run vision tests'
|
|
required: false
|
|
default: 'false'
|
|
|
|
runs:
|
|
using: 'composite'
|
|
steps:
|
|
- name: Check Storage and Memory Available Before Tests
|
|
if: ${{ always() }}
|
|
shell: bash
|
|
run: |
|
|
free -h
|
|
df -h
|
|
|
|
- name: Run Integration Tests
|
|
shell: bash
|
|
run: |
|
|
uv run --no-sync ./scripts/integration-tests.sh \
|
|
--stack-config '${{ inputs.stack-config }}' \
|
|
--provider '${{ inputs.provider }}' \
|
|
--test-subdirs '${{ inputs.test-subdirs }}' \
|
|
--test-pattern '${{ inputs.test-pattern }}' \
|
|
--inference-mode '${{ inputs.inference-mode }}' \
|
|
${{ inputs.run-vision-tests == 'true' && '--run-vision-tests' || '' }} \
|
|
| tee pytest-${{ inputs.inference-mode }}.log
|
|
|
|
|
|
- name: Commit and push recordings
|
|
if: ${{ inputs.inference-mode == 'record' }}
|
|
shell: bash
|
|
run: |
|
|
echo "Checking for recording changes"
|
|
git status --porcelain tests/integration/recordings/
|
|
|
|
if [[ -n $(git status --porcelain tests/integration/recordings/) ]]; then
|
|
echo "New recordings detected, committing and pushing"
|
|
git add tests/integration/recordings/
|
|
|
|
if [ "${{ inputs.run-vision-tests }}" == "true" ]; then
|
|
git commit -m "Recordings update from CI (vision)"
|
|
else
|
|
git commit -m "Recordings update from CI"
|
|
fi
|
|
|
|
git fetch origin ${{ github.ref_name }}
|
|
git rebase origin/${{ github.ref_name }}
|
|
echo "Rebased successfully"
|
|
git push origin HEAD:${{ github.ref_name }}
|
|
echo "Pushed successfully"
|
|
else
|
|
echo "No recording changes"
|
|
fi
|
|
|
|
- name: Write inference logs to file
|
|
if: ${{ always() }}
|
|
shell: bash
|
|
run: |
|
|
sudo docker logs ollama > ollama-${{ inputs.inference-mode }}.log || true
|
|
|
|
- name: Upload logs
|
|
if: ${{ always() }}
|
|
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
|
|
with:
|
|
name: logs-${{ github.run_id }}-${{ github.run_attempt || '' }}-${{ strategy.job-index }}
|
|
path: |
|
|
*.log
|
|
retention-days: 1
|