Skip to content

Commit

Permalink
update coverage action
Browse files Browse the repository at this point in the history
  • Loading branch information
getzze committed Jun 19, 2024
1 parent efe222a commit 67f17cc
Show file tree
Hide file tree
Showing 2 changed files with 72 additions and 18 deletions.
55 changes: 37 additions & 18 deletions .github/workflows/check.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -85,27 +85,46 @@ jobs:
python -m pip install --upgrade pip
pip install -e .[test]
- name: run pytest --cov
env:
COVERAGE_FILE: ".coverage.${{ matrix.os }}.${{ matrix.python-version }}"
# Alternatively you can run coverage with the --parallel flag or add
# `parallel = True` in the coverage config file.
# If using pytest-cov, you can also add the `--cov-append` flag
# directly or through PYTEST_ADD_OPTS.
run: |
set -e
pytest --cov=./ --cov-report=xml
: .coverage confuses coveralls, remove it
rm -f .coverage
- name: upload coverage data to coveralls
uses: coverallsapp/[email protected]
pytest --cov --cov-report=xml
- name: Store coverage file
uses: actions/upload-artifact@v4
with:
parallel: true
flag-name: python-${{ matrix.python-version }}
github-token: ${{ secrets.GITHUB_TOKEN }}
- name: upload coverage data to codecov
uses: codecov/[email protected]
with:
fail_ci_if_error: true
name: coverage-${{ matrix.os }}-${{ matrix.python-version }}
path: .coverage.${{ matrix.os }}.${{ matrix.python-version }}

coveralls-finish:
needs: test
if: github.event_name != 'schedule'
coverage:
name: Coverage
runs-on: ubuntu-latest
needs: test
permissions:
pull-requests: write
contents: write
steps:
- uses: coverallsapp/[email protected]
- uses: actions/checkout@v4

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

- name: Coverage comment
id: coverage_comment
uses: py-cov-action/python-coverage-comment-action@v3
with:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
MERGE_COVERAGE_FILES: true

- name: Store Pull Request comment to be posted
uses: actions/upload-artifact@v4
if: steps.coverage_comment.outputs.COMMENT_FILE_WRITTEN == 'true'
with:
parallel-finished: true
name: python-coverage-comment-action
path: python-coverage-comment-action.txt
35 changes: 35 additions & 0 deletions .github/workflows/coverage.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
name: Post coverage comment

on:
workflow_run:
workflows: ["CI"]
types:
- completed

jobs:
test:
name: Run tests & display coverage
runs-on: ubuntu-latest
if: github.event.workflow_run.event == 'pull_request' && github.event.workflow_run.conclusion == 'success'
permissions:
# Gives the action the necessary permissions for publishing new
# comments in pull requests.
pull-requests: write
# Gives the action the necessary permissions for editing existing
# comments (to avoid publishing multiple comments in the same PR)
contents: write
# Gives the action the necessary permissions for looking up the
# workflow that launched this workflow, and download the related
# artifact that contains the comment to be published
actions: read
steps:
# DO NOT run actions/checkout here, for security reasons
# For details, refer to https://securitylab.github.com/research/github-actions-preventing-pwn-requests/
- name: Post comment
uses: py-cov-action/python-coverage-comment-action@v3
with:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
GITHUB_PR_RUN_ID: ${{ github.event.workflow_run.id }}
# Update those if you changed the default values:
# COMMENT_ARTIFACT_NAME: python-coverage-comment-action
# COMMENT_FILENAME: python-coverage-comment-action.txt

0 comments on commit 67f17cc

Please sign in to comment.