Skip to content

Merge pull request #249 from matkoniecz/patch-1 #165

Merge pull request #249 from matkoniecz/patch-1

Merge pull request #249 from matkoniecz/patch-1 #165

Workflow file for this run

name: CI
on: [ push, pull_request ]
jobs:
build-default:
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v4
- name: Install packages
run: sudo apt-get install -y -qq libboost-dev libexpat1-dev zlib1g-dev libbz2-dev libproj-dev libgeos-dev liblz4-dev
- name: Set up Python 3.6
uses: actions/setup-python@v5
with:
python-version: 3.6
- name: Build package 3.6
run: |
pip install build wheel
python -m build
shell: bash
- name: Set up Python 3.7
uses: actions/setup-python@v5
with:
python-version: 3.7
- name: Build package 3.7
run: |
pip install build wheel
python -m build
shell: bash
- name: Set up Python 3.8
uses: actions/setup-python@v5
with:
python-version: 3.8
- name: Build package 3.8
run: |
pip install build wheel
python -m build
shell: bash
- name: Set up Python 3.9
uses: actions/setup-python@v5
with:
python-version: 3.9
- name: Build package 3.9
run: |
pip install build wheel
python -m build
shell: bash
- name: Set up Python 3.10
uses: actions/setup-python@v5
with:
python-version: "3.10"
- name: Build package 3.10
run: |
pip install build wheel
python -m build
shell: bash
- name: Set up Python 3.11
uses: actions/setup-python@v5
with:
python-version: "3.11"
- name: Build package 3.11
run: |
pip install build wheel
python -m build
shell: bash
- name: Set up Python 3.12
uses: actions/setup-python@v5
with:
python-version: "3.12"
- name: Build package 3.12
run: |
pip install build wheel
python -m build
shell: bash
- name: Upload Artifact
uses: actions/upload-artifact@v4
with:
name: pyosmium-linux-x64-dist
path: dist
test-default:
runs-on: ubuntu-20.04
needs: build-default
strategy:
fail-fast: false
matrix:
python-version: [3.6, 3.7, 3.8, 3.9, "3.10", "3.11", "3.12"]
steps:
- uses: actions/checkout@v4
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
- uses: actions/download-artifact@v4
with:
name: pyosmium-linux-x64-dist
- name: Install osmium
run: |
pip install osmium*${PYVER/./}*.whl
shell: bash
env:
PYVER: ${{ matrix.python-version }}
- uses: ./.github/actions/run-tests
build-ubuntu:
runs-on: ${{ matrix.platform }}
strategy:
matrix:
compiler: [gcc-old, clang-old, gcc, clang, macos-intel, macos-arm]
include:
- compiler: gcc-old
cc: gcc-10
cxx: g++-10
platform: ubuntu-20.04
python: 3.6
deps: release
flavour: linux
- compiler: clang-old
cc: clang-10
cxx: clang++-10
platform: ubuntu-20.04
python: 3.6
deps: release
flavour: linux
- compiler: gcc
cc: gcc-12
cxx: g++-12
platform: ubuntu-22.04
python: "3.12"
deps: develop
flavour: linux
- compiler: clang
cc: clang-14
cxx: clang++-14
platform: ubuntu-22.04
python: "3.12"
deps: develop
flavour: linux
- compiler: macos-intel
platform: macos-13
python: "3.10"
deps: develop
flavour: macos
- compiler: macos-arm
platform: macos-14
python: "3.12"
deps: develop
flavour: macos
env:
CC: ${{ matrix.cc }}
CXX: ${{ matrix.cxx }}
steps:
- uses: actions/checkout@v4
- uses: ./.github/actions/install-dependencies
with:
version: ${{ matrix.deps }}
- uses: actions/setup-python@v5
with:
python-version: "${{ matrix.python }}"
- name: Install packages
run: sudo apt-get install -y -qq libboost-dev libexpat1-dev zlib1g-dev libbz2-dev libproj-dev libgeos-dev liblz4-dev
if: ${{ matrix.flavour == 'linux' }}
- name: Install packages
run: brew install boost geos lz4
shell: bash
if: ${{ matrix.flavour == 'macos' }}
- name: Install clang package
run: sudo apt-get install -y -qq clang-6.0
if: ${{ matrix.cc == 'clang-6.0' }}
- name: Install prerequisites
run: |
python -m pip install --upgrade pip
pip install pytest pytest-httpserver shapely setuptools requests
shell: bash
- name: Build package
run: python setup.py build
shell: bash
- name: Run tests
run: pytest test
shell: bash
build-windows:
runs-on: windows-2022
env:
VCPKG_DEFAULT_BINARY_CACHE: C:/vcpkg_binary_cache
steps:
- uses: actions/checkout@v4
- uses: actions/cache@v4
with:
path: |
C:/vcpkg_binary_cache
key: vcpkg-binary-cache-windows-2022
- name: Prepare cache
run: if [ ! -d C:/vcpkg_binary_cache ]; then mkdir C:/vcpkg_binary_cache; fi
shell: bash
- name: Install packages
run: vcpkg install bzip2:x64-windows expat:x64-windows zlib:x64-windows boost-variant:x64-windows boost-iterator:x64-windows lz4:x86-windows
shell: bash
- name: Set up Python 3.6
uses: actions/setup-python@v5
with:
python-version: 3.6
- name: Build package 3.6
run: |
pip install build wheel
python -m build
shell: bash
env:
CMAKE_TOOLCHAIN_FILE: C:/vcpkg/scripts/buildsystems/vcpkg.cmake
- name: Set up Python 3.7
uses: actions/setup-python@v5
with:
python-version: 3.7
- name: Build package 3.7
run: |
pip install build wheel
python -m build
shell: bash
env:
CMAKE_TOOLCHAIN_FILE: C:/vcpkg/scripts/buildsystems/vcpkg.cmake
- name: Set up Python 3.8
uses: actions/setup-python@v5
with:
python-version: 3.8
- name: Build package 3.8
run: |
pip install build wheel
python -m build
shell: bash
env:
CMAKE_TOOLCHAIN_FILE: C:/vcpkg/scripts/buildsystems/vcpkg.cmake
- name: Set up Python 3.9
uses: actions/setup-python@v5
with:
python-version: 3.9
- name: Build package 3.9
run: |
pip install build wheel
python -m build
shell: bash
env:
CMAKE_TOOLCHAIN_FILE: C:/vcpkg/scripts/buildsystems/vcpkg.cmake
- name: Set up Python 3.10
uses: actions/setup-python@v5
with:
python-version: "3.10"
- name: Build package 3.10
run: |
pip install build wheel
python -m build
shell: bash
env:
CMAKE_TOOLCHAIN_FILE: C:/vcpkg/scripts/buildsystems/vcpkg.cmake
- name: Set up Python 3.11
uses: actions/setup-python@v5
with:
python-version: "3.11"
- name: Build package 3.11
run: |
pip install build wheel
python -m build
shell: bash
env:
CMAKE_TOOLCHAIN_FILE: C:/vcpkg/scripts/buildsystems/vcpkg.cmake
- name: 'Upload Artifact'
uses: actions/upload-artifact@v4
with:
name: pyosmium-win64-dist
path: dist
test-windows:
runs-on: windows-2022
needs: build-windows
strategy:
fail-fast: false
matrix:
python-version: ["3.6", "3.7", "3.8", "3.9", "3.10", "3.11"]
env:
PYTEST_ADDOPTS: ${{ matrix.test-args }}
steps:
- uses: actions/checkout@v4
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
- uses: actions/download-artifact@v4
with:
name: pyosmium-win64-dist
- name: Install osmium
run: |
pip install osmium*${PYVER/./}*.whl
shell: bash
env:
PYVER: ${{ matrix.python-version }}
- uses: ./.github/actions/run-tests