Fix test workflow #127
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: Test PyMEOS | |
on: | |
push: | |
branches: [ "master", "stable-[0-9]+.[0-9]+" ] | |
paths-ignore: | |
- "docs/**" | |
- ".readthedocs.yml" | |
- "README.md" | |
- ".github/ISSUE_TEMPLATE/**" | |
pull_request: | |
branches: [ "master", "stable-[0-9]+.[0-9]+" ] | |
paths-ignore: | |
- "docs/**" | |
- ".readthedocs.yml" | |
- "README.md" | |
- ".github/ISSUE_TEMPLATE/**" | |
jobs: | |
test: | |
name: Test PyMEOS - Python ${{ matrix.python-version }} on ${{ matrix.os }} | |
runs-on: ${{ matrix.os }} | |
strategy: | |
fail-fast: false | |
matrix: | |
python-version: [ "3.8", "3.9", "3.10", "3.11", "3.12", "3.13" ] | |
os: [ ubuntu-latest, macos-13, macos-14 ] | |
include: | |
- ld_prefix: "/usr/local" | |
- os: macos-14 | |
ld_prefix: "/opt/homebrew" | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Get dependencies from apt (cache) | |
uses: awalsh128/cache-apt-pkgs-action@latest | |
if: runner.os == 'Linux' | |
with: | |
packages: build-essential cmake postgresql-server-dev-14 libproj-dev libjson-c-dev libgsl-dev libgeos-dev | |
version: 1.0 | |
- name: Get dependencies from homebrew (cache) | |
uses: tecolicom/actions-use-homebrew-tools@v1 | |
if: runner.os == 'macOS' | |
with: | |
tools: cmake libpq proj json-c gsl geos | |
- name: Update brew | |
if: matrix.os == 'macos-13' | |
# Necessary to avoid issue with macOS runners. See | |
# https://github.com/actions/runner-images/issues/4020 | |
run: | | |
brew reinstall [email protected] || brew link --overwrite [email protected] | |
brew reinstall [email protected] || brew link --overwrite [email protected] | |
brew update | |
- name: Fetch MEOS sources | |
env: | |
BRANCH_NAME: ${{ github.base_ref || github.ref_name }} | |
run: | | |
git clone --branch ${{ env.BRANCH_NAME }} --depth 1 https://github.com/MobilityDB/MobilityDB | |
- name: Install MEOS | |
run: | | |
mkdir MobilityDB/build | |
cd MobilityDB/build | |
cmake .. -DMEOS=on -DCMAKE_INSTALL_PREFIX=${{ matrix.ld_prefix }} | |
make -j | |
sudo make install | |
- name: Set up Python ${{ matrix.python-version }} | |
uses: actions/setup-python@v5 | |
with: | |
python-version: ${{ matrix.python-version }} | |
cache: "pip" | |
- name: Fetch PyMEOS CFFI sources | |
env: | |
BRANCH_NAME: ${{ github.base_ref || github.ref_name }} | |
run: | | |
git clone --branch ${{ env.BRANCH_NAME }} --depth 1 https://github.com/MobilityDB/PyMEOS-CFFI | |
- name: Install python dependencies | |
run: | | |
python -m pip install --upgrade pip | |
pip install -r PyMEOS-CFFI/dev-requirements.txt | |
pip install -r dev-requirements.txt | |
- name: Install pymeos_cffi | |
run: | | |
cd PyMEOS-CFFI | |
python ./builder/build_header.py | |
python ./builder/build_pymeos_functions.py | |
pip install . | |
- name: Test PyMEOS with pytest | |
run: | | |
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:${{ matrix.ld_prefix }}/lib | |
export DYLD_LIBRARY_PATH=$DYLD_LIBRARY_PATH:${{ matrix.ld_prefix }}/lib | |
pytest |