Release v4.0.1 #210
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: CI | |
on: [ push, pull_request ] | |
jobs: | |
build-default: | |
runs-on: ubuntu-22.04 | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Install packages | |
run: | | |
sudo apt-get update -y -qq | |
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.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: Set up Python 3.13 | |
uses: actions/setup-python@v5 | |
with: | |
python-version: "3.13" | |
allow-prereleases: true | |
- name: Build package 3.13 | |
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-22.04 | |
needs: build-default | |
strategy: | |
fail-fast: false | |
matrix: | |
python-version: [3.7, 3.8, 3.9, "3.10", "3.11", "3.12", "3.13"] | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Set up Python ${{ matrix.python-version }} | |
uses: actions/setup-python@v5 | |
with: | |
python-version: ${{ matrix.python-version }} | |
allow-prereleases: true | |
- uses: actions/download-artifact@v4 | |
with: | |
name: pyosmium-linux-x64-dist | |
- name: Install osmium | |
run: | | |
pip install virtualenv | |
virtualenv osmium-test | |
WHEEL=`ls osmium*${PYVER/./}*.whl` | |
./osmium-test/bin/pip install ${WHEEL}[tests] | |
shell: bash | |
env: | |
PYVER: ${{ matrix.python-version }} | |
- name: Run tests | |
run: ./osmium-test/bin/pytest test | |
shell: bash | |
- name: Check tool availability | |
run: | | |
./osmium-test/bin/pyosmium-get-changes -h | |
./osmium-test/bin/pyosmium-up-to-date -h | |
build-platform: | |
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.7 | |
deps: release | |
flavour: linux | |
- compiler: clang-old | |
cc: clang-10 | |
cxx: clang++-10 | |
platform: ubuntu-20.04 | |
python: 3.7 | |
deps: release | |
flavour: linux | |
- compiler: gcc | |
cc: gcc-14 | |
cxx: g++-14 | |
platform: ubuntu-24.04 | |
python: "3.13" | |
deps: develop | |
flavour: linux | |
- compiler: clang | |
cc: clang-18 | |
cxx: clang++-18 | |
platform: ubuntu-24.04 | |
python: "3.13" | |
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.13" | |
deps: develop | |
flavour: macos | |
env: | |
CC: ${{ matrix.cc }} | |
CXX: ${{ matrix.cxx }} | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Install prerequisites | |
run: | | |
# Workaround for github/brew problem. Python is already install | |
# on the Github action runner and then homebrew comes along... | |
# See also: https://github.com/Homebrew/homebrew-core/issues/173191 | |
rm -f /usr/local/bin/2to3* /usr/local/bin/idle3* /usr/local/bin/pydoc3* /usr/local/bin/python3* | |
if: ${{ matrix.flavour == 'macos' }} | |
- uses: ./.github/actions/install-dependencies | |
with: | |
version: ${{ matrix.deps }} | |
- uses: actions/setup-python@v5 | |
with: | |
python-version: "${{ matrix.python }}" | |
allow-prereleases: true | |
- name: Install packages | |
run: | | |
sudo apt-get update -y -qq | |
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 | |
shell: bash | |
if: ${{ matrix.flavour == 'macos' }} | |
- name: Install prerequisites | |
run: | | |
python -m pip install --upgrade pip | |
pip install -U 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.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: 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 | |
env: | |
CMAKE_TOOLCHAIN_FILE: C:/vcpkg/scripts/buildsystems/vcpkg.cmake | |
- name: Set up Python 3.13 | |
uses: actions/setup-python@v5 | |
with: | |
python-version: "3.13" | |
allow-prereleases: true | |
- name: Build package 3.13 | |
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.7", "3.8", "3.9", "3.10", "3.11", "3.12", "3.13"] | |
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 }} | |
allow-prereleases: true | |
- uses: actions/download-artifact@v4 | |
with: | |
name: pyosmium-win64-dist | |
- name: Install osmium | |
run: | | |
pip install virtualenv | |
virtualenv osmium-test | |
WHEEL=`ls osmium*${PYVER/./}*.whl` | |
./osmium-test/Scripts/pip install ${WHEEL}[tests] | |
shell: bash | |
env: | |
PYVER: ${{ matrix.python-version }} | |
- name: Run tests | |
run: ./osmium-test/Scripts/pytest test | |
shell: bash | |
- name: Check tool availability | |
run: | | |
./osmium-test/Scripts/pyosmium-get-changes -h | |
./osmium-test/Scripts/pyosmium-up-to-date -h |