Skip to content

Fixed #1086 Remove Codecov #2018

Fixed #1086 Remove Codecov

Fixed #1086 Remove Codecov #2018

Workflow file for this run

name: Tests
on:
push:
branches: main
pull_request:
branches: main
jobs:
minimum-version-testing:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest, macos-latest, windows-latest]
python-version: ['3.9']
steps:
- uses: actions/checkout@v4
- name: Set Up Python
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
- name: Display Python Version
run: python -c "import sys; print(sys.version)"
shell: bash
- name: Upgrade Pip
run: python -m pip install --upgrade pip
shell: bash
- name: Generate Minimum Requirements File
run: sed 's/>/=/g' requirements.txt | sed 's/$/\.*/g' > requirements.min.txt
shell: bash
- name: Install Minimum Requirements
run: python -m pip install --upgrade -r requirements.min.txt
shell: bash
- name: Install STUMPY And Other Dependencies
run: python -m pip install --editable .[ci]
shell: bash
- name: Run Black
run: black --check --diff ./
shell: bash
- name: Run Flake8
run: flake8 ./
shell: bash
- name: Install and Link OpenMP
run: |
if [ "$RUNNER_OS" == "macOS" ]; then
echo "Installing OpenMP"
brew install libomp
echo "Linking OpenMP"
brew link --force libomp
echo "Find OpenMP Linking Location"
libfile=`brew list libomp --verbose | grep libomp.dylib`
echo $libfile
echo "Changing @rpath for the omppool.cpython-x-darwin.so shared object to look in $libfile"
ls "$(python -c 'import site; print(site.getsitepackages()[0])')"/numba/np/ufunc/omppool.*.so | xargs install_name_tool -change @rpath/libomp.dylib $libfile
fi
shell: bash
- name: Show Full Numba Environment
run: python -m numba -s
shell: bash
- name: Run Unit Tests
run: ./test.sh unit
shell: bash
unit-testing:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest, macos-latest, windows-latest]
python-version: ['3.9', '3.10', '3.11', '3.12']
steps:
- uses: actions/checkout@v4
- name: Set Up Python
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
- name: Display Python Version
run: python -c "import sys; print(sys.version)"
shell: bash
- name: Upgrade Pip
run: python -m pip install --upgrade pip
shell: bash
- name: Install STUMPY And Other Dependencies
run: python -m pip install --editable .[ci]
shell: bash
- name: Run Black
run: black --check --diff ./
shell: bash
- name: Run Flake8
run: flake8 ./
shell: bash
- name: Install OpenMP
run: |
if [ "$RUNNER_OS" == "macOS" ]; then
echo "Installing OpenMP"
brew install libomp
echo "Linking OpenMP"
brew link --force libomp
echo "Find OpenMP Linking Location"
libfile=`brew list libomp --verbose | grep libomp.dylib`
echo $libfile
echo "Changing @rpath for the omppool.cpython-x-darwin.so shared object to look in $libfile"
ls "$(python -c 'import site; print(site.getsitepackages()[0])')"/numba/np/ufunc/omppool.*.so | xargs install_name_tool -change @rpath/libomp.dylib $libfile
fi
shell: bash
- name: Show Full Numba Environment
run: python -m numba -s
shell: bash
- name: Run Unit Tests
run: ./test.sh unit
shell: bash
coverage-testing:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest, macos-latest, windows-latest]
python-version: ['3.9', '3.10', '3.11', '3.12']
steps:
- uses: actions/checkout@v4
- name: Set Up Python
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
- name: Display Python Version
run: python -c "import sys; print(sys.version)"
shell: bash
- name: Upgrade Pip
run: python -m pip install --upgrade pip
shell: bash
- name: Install STUMPY And Other Dependencies
run: python -m pip install --editable .[ci]
shell: bash
- name: Run Black
run: black --check --diff ./
shell: bash
- name: Run Flake8
run: flake8 ./
shell: bash
- name: Link OpenMP
run: |
if [ "$RUNNER_OS" == "macOS" ]; then
echo "Installing OpenMP"
brew install libomp
echo "Linking OpenMP"
brew link --force libomp
echo "Find OpenMP Linking Location"
libfile=`brew list libomp --verbose | grep libomp.dylib`
echo $libfile
echo "Changing @rpath for the omppool.cpython-x-darwin.so shared object to look in $libfile"
ls "$(python -c 'import site; print(site.getsitepackages()[0])')"/numba/np/ufunc/omppool.*.so | xargs install_name_tool -change @rpath/libomp.dylib $libfile
fi
shell: bash
- name: Show Full Numba Environment
run: python -m numba -s
shell: bash
- name: Run Coverage Tests
run: ./test.sh coverage
shell: bash
- name: Rename Coverage Data Files
run: mv .coverage .coverage.${{ matrix.os }}.${{ matrix.python-version }}
shell: bash
- name: Upload Coverage Data to Github
uses: actions/upload-artifact@v4
with:
name: coverage-data-${{ matrix.os }}-${{ matrix.python-version }}
path: .coverage.${{ matrix.os }}.${{ matrix.python-version }}
include-hidden-files: true
if-no-files-found: ignore
coverage-aggregation:
name: Combine and Check Coverage
if: always()
needs: coverage-testing
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
python-version: '3.12'
- name: Display Python Version
run: python -c "import sys; print(sys.version)"
shell: bash
- name: Upgrade Pip
run: python -m pip install --upgrade pip
shell: bash
- name: Install STUMPY And Other Dependencies
run: python -m pip install --editable .[ci]
shell: bash
- name: Run Black
run: black --check --diff ./
shell: bash
- name: Run Flake8
run: flake8 ./
shell: bash
- name: Link OpenMP
run: |
if [ "$RUNNER_OS" == "macOS" ]; then
echo "Installing OpenMP"
brew install libomp
echo "Linking OpenMP"
brew link --force libomp
echo "Find OpenMP Linking Location"
libfile=`brew list libomp --verbose | grep libomp.dylib`
echo $libfile
echo "Changing @rpath for the omppool.cpython-x-darwin.so shared object to look in $libfile"
ls "$(python -c 'import site; print(site.getsitepackages()[0])')"/numba/np/ufunc/omppool.*.so | xargs install_name_tool -change @rpath/libomp.dylib $libfile
fi
shell: bash
- name: Show Full Numba Environment
run: python -m numba -s
shell: bash
- uses: actions/download-artifact@v4
with:
pattern: coverage-data-*
merge-multiple: true
- name: Combine Coverage Files and Fail If Under 100%
run: ./test.sh combine
shell: bash
- name: List Files
run: ls
shell: bash
- name: Generate Coverage Report
run: ./test.sh report coverage.stumpy.json
shell: bash
- name: Get Coverage Percentage
run: |
export TOTAL=$(python -c "import json;print(json.load(open('coverage.stumpy.json'))['totals']['percent_covered_display'])")
shell: bash