Skip to content

Docs test coverage setup with codecov #26

Docs test coverage setup with codecov

Docs test coverage setup with codecov #26

Workflow file for this run

# This provided workflow file is focused on testing a Python project using pip, the package installer for Python.
# There's also a specialized job for building and testing the package in a Mingw64 environment on Windows.
name: Pip
on:
workflow_dispatch:
pull_request:
push:
branches:
- develop
- main
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
build:
strategy:
fail-fast: false
matrix:
platform: [windows-latest, macos-latest, ubuntu-latest]
python-version: ["3.7", "3.11"]
runs-on: ${{ matrix.platform }}
steps:
- uses: actions/checkout@v3
- uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}
- name: Add requirements
run: python -m pip install --upgrade wheel setuptools
- name: Build and install
run: pip install --verbose .
- name: Test and generate coverage reports
run: |
pip install pytest pytest-cov
pytest -v --cov=pymurtree --cov-report=xml
- name: Upload coverage reports to Codecov
uses: codecov/codecov-action@v3
env:
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
file: ./coverage.xml
# fail_ci_if_error: true # Optional: Set to true if you want the workflow to fail when Codecov upload fails
verbose: true # Optional: Set to true if you want more detailed output from the Codecov action
build-mingw64:
runs-on: windows-latest
defaults:
run:
shell: msys2 {0}
steps:
- uses: msys2/setup-msys2@v2
with:
update: true
install: >-
mingw-w64-x86_64-gcc
mingw-w64-x86_64-python-pip
mingw-w64-x86_64-python-wheel
mingw-w64-x86_64-python-pandas
git
mingw-w64-x86_64-meson
- uses: actions/checkout@v3
- name: Add requirements
# This is required because --no-build-isolation disable dependences
# installation
run: python -m pip install gitpython pybind11 meson-python
- name: Build and install
# --no-build-isolation is required because the vanilla setuptool does not
# support Mingw64.See patches here:
# https://github.com/msys2/MINGW-packages/tree/master/mingw-w64-python-setuptools
# Without those patches build_ext fails with:
# error: --plat-name must be one of ('win32', 'win-amd64', 'win-arm32', 'win-arm64')
run: pip install --no-build-isolation .
- name: Test
run: |
pip install pytest
pytest