name: Test Python Package on: push: branches: - main pull_request: jobs: test: runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@v4 - name: Set up Python uses: actions/setup-python@v5 with: python-version: ${{ inputs.python-version }} - name: Install uv run: pip install uv - name: Install dependencies env: UV_LINK_MODE: copy run: uv sync --all-extras - name: Run pytest env: PYTHONPATH: . run: uv run pytest --cov=data_store --cov-report=term-missing > coverage.txt - name: Post coverage summary to PR env: API_URL: ${{ vars.API_URL }} REPO_OWNER: ${{ github.repository_owner }} REPO_NAME: ${{ github.event.repository.name }} PR_NUMBER: ${{ github.event.pull_request.number }} CI_RUNNER_TOKEN: ${{ secrets.CI_RUNNER_TOKEN }} run: | COVERAGE=$(cat coverage.txt) COMMENT_BODY="**Test Coverage Report:**\n\`\`\`\n$COVERAGE\n\`\`\`" curl -s -X POST "$API_URL/repos/$REPO_OWNER/$REPO_NAME/issues/$PR_NUMBER/comments" \ -H "Authorization: token $CI_RUNNER_TOKEN" \ -H "Content-Type: application/json" \ -d "{\"body\": \"$COMMENT_BODY\"}"