Skip to content

Commit

Permalink
chore: drop codecov
Browse files Browse the repository at this point in the history
  • Loading branch information
percevalw committed May 13, 2024
1 parent 264b3a1 commit 1f868ed
Show file tree
Hide file tree
Showing 2 changed files with 122 additions and 23 deletions.
137 changes: 114 additions & 23 deletions .github/workflows/tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -29,19 +29,14 @@ jobs:
strategy:
fail-fast: true
matrix:
python-version: ["3.7", "3.8", "3.9", "3.10", "3.11"]
python-version: ["3.7"]#, "3.8", "3.9", "3.10", "3.11"]
steps:
- uses: actions/checkout@v2
- name: Cache downloaded resources
uses: actions/cache@v3
with:
path: ~/.data/
key: resources
- name: Set up Java
uses: actions/setup-java@v2
with:
distribution: "temurin" # See 'Supported distributions' for available options
java-version: "8"
- name: Set up Python
uses: actions/setup-python@v2
with:
Expand All @@ -59,26 +54,122 @@ jobs:
if: matrix.python-version != '3.9'

- name: Test with Pytest on Python ${{ matrix.python-version }}
env:
UMLS_API_KEY: ${{ secrets.UMLS_API_KEY }}
run: python -m pytest --cov foldedtensor --cov-report xml
if: matrix.python-version == '3.9'
run: coverage run -m pytest

- name: Upload coverage
uses: codecov/codecov-action@v2
if: matrix.python-version == '3.9'
- name: Upload coverage data
uses: actions/upload-artifact@v4
with:
name: coverage-data-${{ matrix.python-version }}
path: .coverage.*
if-no-files-found: ignore

Installation:
Coverage:
name: Combine & check coverage
if: always()
needs: Pytest
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
python-version: ["3.7", "3.8", "3.9", "3.10", "3.11"]
env:
GITHUB_PR_NUMBER: ${{github.event.pull_request.number}}
steps:
- uses: actions/checkout@v2
- uses: actions/setup-python@v2
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
- name: Install library
# Use latest Python, so it understands all syntax.
python-version: "3.7"

- uses: actions/download-artifact@v4
with:
pattern: coverage-data-*
merge-multiple: true

- name: Combine coverage & fail if it's <100%
run: |
pip install .
python -Im pip install --upgrade "git+https://github.com/percevalw/coveragepy.git#egg=coverage[toml]"
ls -lah
python -Im coverage combine
python -Im coverage html --skip-covered --skip-empty
# Report and write to summary.
python -Im coverage report --format=detailed-markdown >> $GITHUB_STEP_SUMMARY
echo '## Coverage Report' > step-summary.md
cat $GITHUB_STEP_SUMMARY >> step-summary.md
- name: Upload HTML report if check failed
uses: actions/upload-artifact@v4
with:
name: html-report
path: htmlcov
if: ${{ failure() }}

- name: Upload Coverage Percentage for Main
if: github.ref == 'refs/heads/main' || github.ref == 'refs/heads/main'
run: |
coverage report > coverage-report.txt
echo "main_coverage=$(grep 'TOTAL' coverage-report.txt | awk '{print $NF}' | sed 's/%//')" > main-coverage.txt
uses: actions/upload-artifact@v4
with:
name: main-coverage-percentage
path: main-coverage.txt

- name: Compare Coverage Percentages
if: github.ref != 'refs/heads/main' && github.ref != 'refs/heads/main' && github.event_name == 'pull_request'
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
main_coverage=$(cat ./.github/workflows/artifacts/main-coverage.txt)
branch_coverage=$(coverage report | grep 'TOTAL' | awk '{print $NF}' | sed 's/%//')
: "${main_coverage:=90}"
# echo "Main Coverage: $main_coverage%" > step-summary.md
# echo "Branch Coverage: $branch_coverage%" > step-summary.md
# Echo comparison in with cross if it's lower, and checkmark if it's higher.
if (( $(echo "$branch_coverage < $main_coverage" | bc -l) )); then
echo "Coverage has decreased from the main branch."
echo "Branch Coverage: $branch_coverage% < Main Coverage: $main_coverage% :x:" > step-summary.md
FAILED=true
else
echo "Coverage is sufficient or improved."
echo "Branch Coverage: $branch_coverage% >= Main Coverage: $main_coverage% :white_check_mark:" > step-summary.md
FAILED=false
fi
COMMENT_BODY_JSON=$(jq -Rs . <<< $(cat step-summary.md))
HEADER="Authorization: token $GITHUB_TOKEN"
PR_COMMENTS_URL="https://api.github.com/repos/${{ github.repository }}/issues/${{ github.event.pull_request.number }}/comments"
# Fetch existing comments to find if one from this workflow already exists
COMMENTS=$(curl -s -H "$HEADER" "$PR_COMMENTS_URL")
COMMENT_ID=$(echo "$COMMENTS" | jq -r '.[] | select(.user.login == "github-actions[bot]" and (.body | startswith("## Coverage Report"))) | .id')
# Check if we have a comment ID, if so, update it, otherwise create a new one
if [[ "$COMMENT_ID" ]]; then
# Update existing comment
curl -s -X PATCH -H "$HEADER" -H "Content-Type: application/json" -d "{\"body\": $COMMENT_BODY_JSON}" "https://api.github.com/repos/${{ github.repository }}/issues/comments/$COMMENT_ID"
else
# Post new comment
curl -s -X POST -H "$HEADER" -H "Content-Type: application/json" -d "{\"body\": $COMMENT_BODY_JSON}" "$PR_COMMENTS_URL"
fi
if [[ "$FAILED" == "true" ]]; then
exit 1
fi
# Installation:
# runs-on: ubuntu-latest
# strategy:
# fail-fast: false
# matrix:
# python-version: ["3.7", "3.8", "3.9", "3.10", "3.11"]
# steps:
# - uses: actions/checkout@v2
# - uses: actions/setup-python@v2
# with:
# python-version: ${{ matrix.python-version }}
# - name: Install library
# run: |
# pip install .
#
8 changes: 8 additions & 0 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,14 @@ testpaths = [
"tests",
]

[tool.coverage.run]
concurrency = ["multiprocessing"]
parallel = true
include = ['foldedtensor/*']

[tool.coverage.report]
include = ['foldedtensor/*']
precision = 1

[build-system]
requires = [
Expand Down

0 comments on commit 1f868ed

Please sign in to comment.