mirror of
https://github.com/dogkeeper886/ollama37.git
synced 2025-12-20 12:47:00 +00:00
The '|| true' was swallowing test runner exit codes, causing workflows to pass even when tests failed. Added separate 'Check test results' step that reads JSON summary and fails workflow if any tests failed. Affected workflows: - build.yml - runtime.yml - inference.yml - full-pipeline.yml 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
88 lines
2.4 KiB
YAML
88 lines
2.4 KiB
YAML
name: Inference Tests
|
|
|
|
on:
|
|
workflow_dispatch: # Manual trigger
|
|
inputs:
|
|
use_existing_container:
|
|
description: 'Use existing running container'
|
|
required: false
|
|
default: 'false'
|
|
type: choice
|
|
options:
|
|
- 'true'
|
|
- 'false'
|
|
workflow_call: # Called by other workflows
|
|
inputs:
|
|
use_existing_container:
|
|
description: 'Container is already running'
|
|
required: false
|
|
default: false
|
|
type: boolean
|
|
outputs:
|
|
result:
|
|
description: "Inference test result"
|
|
value: ${{ jobs.inference.outputs.result }}
|
|
|
|
env:
|
|
OLLAMA_HOST: http://localhost:11434
|
|
|
|
jobs:
|
|
inference:
|
|
name: Inference Tests
|
|
runs-on: self-hosted
|
|
outputs:
|
|
result: ${{ steps.inference-tests.outcome }}
|
|
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v4
|
|
|
|
- name: Setup Node.js
|
|
uses: actions/setup-node@v4
|
|
with:
|
|
node-version: '20'
|
|
|
|
- name: Install test runner dependencies
|
|
run: cd tests && npm ci
|
|
|
|
- name: Start container (if needed)
|
|
if: ${{ inputs.use_existing_container != 'true' && inputs.use_existing_container != true }}
|
|
run: |
|
|
cd docker
|
|
docker compose down 2>/dev/null || true
|
|
docker compose up -d
|
|
sleep 10
|
|
|
|
- name: Run inference tests
|
|
id: inference-tests
|
|
run: |
|
|
cd tests
|
|
# Progress goes to stderr (visible), JSON results go to file
|
|
npm run --silent dev -- run --suite inference --no-llm --output json > /tmp/inference-results.json || true
|
|
|
|
echo "--- JSON Results ---"
|
|
cat /tmp/inference-results.json
|
|
|
|
- name: Check test results
|
|
run: |
|
|
FAILED=$(jq '.summary.failed' /tmp/inference-results.json)
|
|
echo "Failed tests: $FAILED"
|
|
if [ "$FAILED" -gt 0 ]; then
|
|
echo "::error::$FAILED inference test(s) failed"
|
|
exit 1
|
|
fi
|
|
|
|
- name: Upload inference results
|
|
uses: actions/upload-artifact@v4
|
|
if: always()
|
|
with:
|
|
name: inference-test-results
|
|
path: /tmp/inference-results.json
|
|
|
|
- name: Stop container (if we started it)
|
|
if: ${{ always() && inputs.use_existing_container != 'true' && inputs.use_existing_container != true }}
|
|
run: |
|
|
cd docker
|
|
docker compose down || true
|
|
echo "Container stopped"
|