Files
ollama37/.github/workflows/inference.yml
Shang Chieh Tseng 0e66cc6f93 Fix workflows to fail on test failures
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>
2025-12-15 21:48:40 +08:00

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"