name: Unit Tests run-name: Run the unit test suite on: push: branches: [ main ] pull_request: branches: [ main ] paths: - 'llama_stack/**' - '!llama_stack/ui/**' - 'tests/unit/**' - 'uv.lock' - 'pyproject.toml' - 'requirements.txt' - '.github/workflows/unit-tests.yml' # This workflow workflow_dispatch: concurrency: group: ${{ github.workflow }}-${{ github.ref == 'refs/heads/main' && github.run_id || github.ref }} cancel-in-progress: true jobs: unit-tests: runs-on: ubuntu-latest strategy: fail-fast: false matrix: python: - "3.12" - "3.13" steps: - name: Checkout repository uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 - name: Install dependencies uses: ./.github/actions/setup-runner with: python-version: ${{ matrix.python }} - name: Run unit tests run: | PYTHON_VERSION=${{ matrix.python }} ./scripts/unit-tests.sh --junitxml=pytest-report-${{ matrix.python }}.xml - name: Upload test results if: always() uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2 with: name: test-results-${{ matrix.python }} path: | .pytest_cache/ pytest-report-${{ matrix.python }}.xml htmlcov-${{ matrix.python }}/ retention-days: 7