name: Tesla K80 Single-GPU Tests on: workflow_dispatch: # Manual trigger only jobs: test: runs-on: self-hosted timeout-minutes: 60 steps: - name: Checkout code uses: actions/checkout@v4 - name: Download ollama binary from latest build uses: dawidd6/action-download-artifact@v6 with: workflow: tesla-k80-ci.yml name: ollama-binary github_token: ${{ secrets.GITHUB_TOKEN }} check_artifacts: true search_artifacts: true - name: Make ollama binary executable run: | chmod +x ollama ls -lh ollama ./ollama --version - name: Build test-runner run: | cd cmd/test-runner go mod init github.com/ollama/ollama/cmd/test-runner || true go mod tidy go build -o ../../test-runner . cd ../.. ls -lh test-runner - name: Validate test configuration run: | ./test-runner validate --config test/config/quick.yaml - name: Run quick tests run: | ./test-runner run --profile quick --config test/config/quick.yaml --output test-report-quick --verbose timeout-minutes: 10 - name: Check quick test results run: | if ! jq -e '.summary.failed == 0' test-report-quick.json; then echo "Quick tests failed!" jq '.results[] | select(.status == "FAILED")' test-report-quick.json exit 1 fi echo "Quick tests passed!" - name: Upload quick test results if: always() uses: actions/upload-artifact@v4 with: name: quick-test-results path: | test-report-quick.json test-report-quick.md ollama.log retention-days: 7 - name: Run full tests (if quick tests passed) if: success() run: | ./test-runner run --profile full --config test/config/models.yaml --output test-report-full --verbose timeout-minutes: 45 - name: Check full test results if: success() run: | if ! jq -e '.summary.failed == 0' test-report-full.json; then echo "Full tests failed!" jq '.results[] | select(.status == "FAILED")' test-report-full.json exit 1 fi echo "All tests passed!" - name: Upload full test results if: always() uses: actions/upload-artifact@v4 with: name: full-test-results path: | test-report-full.json test-report-full.md ollama.log retention-days: 14