Test merge #3203
Workflow file for this run
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: Python bindings | |
on: | |
push: | |
branches: [ RC_1_2 RC_2_0 master ] | |
paths: | |
- src/** | |
- include/** | |
- deps/** | |
- Jamfile | |
- Jamroot.jam | |
- bindings/python/** | |
- setup.py | |
- setup.cfg | |
- tox.ini | |
- pyproject.toml | |
pull_request: | |
paths: | |
- src/** | |
- include/** | |
- deps/** | |
- Jamfile | |
- Jamroot.jam | |
- bindings/python/** | |
- setup.py | |
- setup.cfg | |
- tox.ini | |
- pyproject.toml | |
concurrency: | |
group: ${{ github.ref }}-${{ github.workflow }}-${{ github.event_name }} | |
cancel-in-progress: true | |
env: | |
HOMEBREW_NO_INSTALLED_DEPENDENTS_CHECK: 1 | |
HOMEBREW_NO_AUTO_UPDATE: 1 | |
jobs: | |
test: | |
name: build | |
runs-on: ${{ matrix.os }} | |
strategy: | |
# on linux and mac, the boost libraries are fixed to a python version. | |
# since we install boost from repos on those systems, we must use the | |
# matching python versions | |
matrix: | |
include: | |
- os: ubuntu-20.04 | |
python-version: 3.8 | |
- os: macos-latest | |
python-version: "3.12" | |
- os: windows-2022 | |
python-version: 3.6 | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
submodules: true | |
fetch-depth: 1 | |
filter: tree:0 | |
# Note: | |
# - on mac and linux images, 'python' is python2 and 'python3' is | |
# python3 | |
# - on windows, neither 'python' nor 'python3' is in PATH by default | |
# - setup-python sets up PATH so 'python' and 'python3' point to the | |
# requested version on mac and linux, but on windows it only sets up | |
# 'python'. | |
- uses: actions/setup-python@v2 | |
with: | |
python-version: ${{ matrix.python-version }} | |
- name: install tox | |
run: | | |
python3 -m pip install --upgrade pip | |
python3 -m pip install --upgrade tox | |
- name: dependencies (MacOS) | |
if: runner.os == 'macOS' | |
run: | | |
brew install boost-build boost boost-python3 python@3.12 openssl@3 python-setuptools | |
export PATH=$(brew --prefix)/opt/python@3.12/bin:$PATH | |
- name: update package lists (linux) | |
if: runner.os == 'Linux' | |
continue-on-error: true | |
run: | | |
sudo apt update | |
- uses: Chocobo1/setup-ccache-action@v1 | |
if: runner.os != 'Windows' | |
with: | |
update_packager_index: false | |
override_cache_key: ccache-python-${{ matrix.os }}-${{ github.base_ref }} | |
ccache_options: | | |
max_size=500M | |
- name: dependencies (linux) | |
if: runner.os == 'Linux' | |
run: | | |
sudo apt install libboost-tools-dev libboost-python-dev libboost-dev libboost-system-dev python3 python3-setuptools libssl-dev | |
- name: install boost (windows) | |
if: runner.os == 'Windows' | |
shell: cmd | |
run: | | |
git clone --depth=1 --recurse-submodules -j10 --branch=boost-1.78.0 https://github.com/boostorg/boost.git | |
cd boost | |
bootstrap.bat | |
- name: boost headers (windows) | |
if: runner.os == 'Windows' | |
shell: cmd | |
run: | | |
cd boost | |
.\b2 headers | |
- name: build/test with tox (windows) | |
if: runner.os == 'Windows' | |
shell: cmd | |
run: | | |
set BOOST_ROOT=%CD%\boost | |
set PATH=%BOOST_ROOT%;%PATH% | |
set PYTHON_INTERPRETER=python | |
tox -e py | |
- name: build no-deprecated (Linux) | |
if: runner.os == 'Linux' | |
run: | | |
cd bindings/python | |
python3 setup.py build_ext --b2-args "deprecated-functions=off" | |
- name: tests (Linux) | |
if: runner.os == 'Linux' | |
run: | | |
# Exporting SYSTEM_VERSION_COMPAT=0 helps pip allow install macos 11 tagged wheels. Ref https://github.com/pypa/packaging/issues/497 | |
export SYSTEM_VERSION_COMPAT=0 | |
tox -e py | |
- name: tests (MacOS) | |
if: runner.os == 'macOS' | |
run: | | |
# Exporting SYSTEM_VERSION_COMPAT=0 helps pip allow install macos 11 tagged wheels. Ref https://github.com/pypa/packaging/issues/497 | |
export SYSTEM_VERSION_COMPAT=0 | |
export PYTHON_INTERPRETER=$(brew --prefix)/opt/python@3.12/bin/python3 | |
tox -e py |