Install LLVM via Homebrew #1450
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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.7'] | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Fix Broken Python 3.7.17 (no _bz2 module) | |
run: rm -rf $RUNNER_TOOL_CACHE/Python/3.7.17 | |
shell: bash | |
- name: Set Up Python | |
uses: actions/setup-python@v4 | |
with: | |
python-version: ${{ matrix.python-version }} | |
- name: Display Python Version | |
run: python -c "import sys; print(sys.version)" | |
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: Link OpenMP | |
run: | | |
if [ "$RUNNER_OS" == "macOS" ]; then | |
brew link --force libomp | |
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.7', '3.8', '3.9', '3.10', '3.11'] | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Fix Broken Python 3.7.17 (no _bz2 module) | |
run: rm -rf $RUNNER_TOOL_CACHE/Python/3.7.17 | |
shell: bash | |
- name: Set Up Python | |
uses: actions/setup-python@v4 | |
with: | |
python-version: ${{ matrix.python-version }} | |
- name: Display Python Version | |
run: python -c "import sys; print(sys.version)" | |
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 "Install LLVM" | |
brew install llvm | |
echo "Linking OpenMP into /usr/local/lib" | |
brew link --force libomp | |
echo "Checking /usr/local/lib for OpenMP" | |
ls /usr/local/lib | grep lib*omp*.dylib | |
echo "Changing @rpath for the omppool.cpython-x-darwin.so shared object to look in /usr/local/lib" | |
ls "$(python -c 'import site; print(site.getsitepackages()[0])')"/numba/np/ufunc/omppool.*.so | xargs install_name_tool -change @rpath/libomp.dylib /usr/local/lib/libomp.dylib | |
ls "$(python -c 'import site; print(site.getsitepackages()[0])')"/numba/np/ufunc/omppool.*.so | xargs install_name_tool -change @rpath/libiomp5.dylib /usr/local/lib/libiomp5.dylib | |
echo "Checking Numba OpenMP Access" | |
python -c "from numba.np.ufunc import omppool" | |
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.7', '3.8', '3.9', '3.10', '3.11'] | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Fix Broken Python 3.7.17 (no _bz2 module) | |
run: rm -rf $RUNNER_TOOL_CACHE/Python/3.7.17 | |
shell: bash | |
- name: Set Up Python | |
uses: actions/setup-python@v4 | |
with: | |
python-version: ${{ matrix.python-version }} | |
- name: Display Python Version | |
run: python -c "import sys; print(sys.version)" | |
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 | |
brew link --force libomp | |
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: Check Coverage Report | |
run: coverage report -m --fail-under=100 --skip-covered --omit=setup.py,docstring.py,stumpy/cache.py | |
shell: bash | |
- name: Upload Coverage Tests Results | |
uses: codecov/codecov-action@v3 |