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 - name: Run pytest with coverage report env: PYTHONPATH: . run: uv run pytest --cov=python_utils --cov-report=term-missing > coverage.txt - name: Post coverage summary to PR env: BASEPAGE_URL: ${{ secrets.BASEPAGE_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 "$BASEPAGE_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\"}"