From 9b1e5aad9c807ffcac9ad7a44aa9f43bdef9dae7 Mon Sep 17 00:00:00 2001 From: olaservo Date: Tue, 24 Jun 2025 21:29:51 -0700 Subject: [PATCH] Add python tests to CI --- .github/workflows/python.yml | 39 +++++++++++++++++++++++++++++++++++- 1 file changed, 38 insertions(+), 1 deletion(-) diff --git a/.github/workflows/python.yml b/.github/workflows/python.yml index a1edc0c9ce..a9981da4f4 100644 --- a/.github/workflows/python.yml +++ b/.github/workflows/python.yml @@ -23,8 +23,45 @@ jobs: PACKAGES=$(find . -name pyproject.toml -exec dirname {} \; | sed 's/^\.\///' | jq -R -s -c 'split("\n")[:-1]') echo "packages=$PACKAGES" >> $GITHUB_OUTPUT - build: + test: needs: [detect-packages] + strategy: + matrix: + package: ${{ fromJson(needs.detect-packages.outputs.packages) }} + name: Test ${{ matrix.package }} + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + + - name: Install uv + uses: astral-sh/setup-uv@v3 + + - name: Set up Python + uses: actions/setup-python@v5 + with: + python-version-file: "src/${{ matrix.package }}/.python-version" + + - name: Install dependencies + working-directory: src/${{ matrix.package }} + run: uv sync --frozen --all-extras --dev + + - name: Check if tests exist + id: check-tests + working-directory: src/${{ matrix.package }} + run: | + if [ -d "tests" ] || [ -d "test" ] || grep -q "pytest" pyproject.toml; then + echo "has-tests=true" >> $GITHUB_OUTPUT + else + echo "has-tests=false" >> $GITHUB_OUTPUT + fi + + - name: Run tests + if: steps.check-tests.outputs.has-tests == 'true' + working-directory: src/${{ matrix.package }} + run: uv run pytest + + build: + needs: [detect-packages, test] strategy: matrix: package: ${{ fromJson(needs.detect-packages.outputs.packages) }}