Skip to content

Merge to 1.3.0 release (#88) #447

Merge to 1.3.0 release (#88)

Merge to 1.3.0 release (#88) #447

Workflow file for this run

name: Build
on:
push:
branches: [master, release]
pull_request:
branches: [master, release]
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: ${{ github.ref != 'refs/heads/master' && github.ref != 'refs/heads/release' }}
jobs:
build:
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
python-version: ['3.9', '3.10', '3.11', '3.12', '3.13', '3.13t', 'pypy3.11']
os: [windows-latest, ubuntu-latest, macos-15-intel, macos-latest]
architecture: ['x86', 'x64']
exclude:
# Only test pypy on Linux
- os: windows-latest
python-version: pypy3.11
- os: macos-latest
python-version: pypy3.11
- os: macos-15-intel
python-version: pypy3.11
# no python builds available on macos 32 bit, arm or x64
- os: macos-latest
architecture: x86
- os: macos-15-intel
architecture: x86
# no python builds available on linux 32 bit
- os: ubuntu-latest
architecture: x86
# scipy dropped 32 bit windows builds
- os: windows-latest
architecture: x86
python-version: 3.9
- os: windows-latest
architecture: x86
python-version: 3.10
- os: windows-latest
architecture: x86
python-version: 3.11
- os: windows-latest
architecture: x86
python-version: 3.12
- os: windows-latest
architecture: x86
python-version: 3.13
- os: windows-latest
architecture: x86
python-version: 3.13t
- os: windows-latest
architecture: x86
python-version: 3.14
# pandas doesn't have wheels for 3.13t on Windows x64
- os: windows-latest
architecture: x64
python-version: 3.13t
# These are arm - old versions of Python are not supported
- os: macos-latest
python-version: 3.9
- os: macos-latest
python-version: 3.10
steps:
- uses: actions/checkout@v4
- name: Set up Python ${{ matrix.python-version }} ${{ matrix.architecture }}
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
architecture: ${{ matrix.architecture }}
- name: Install uv
if: matrix.python-version != '3.13t'
uses: astral-sh/setup-uv@v4
with:
enable-cache: true
cache-dependency-glob: "pyproject.toml"
- name: Install Ubuntu dependencies
if: startsWith(runner.os, 'Linux')
run: |
# Taken from scipy
sudo apt-get update
sudo apt-get install -y libopenblas-dev libatlas-base-dev liblapack-dev gfortran libgmp-dev libmpfr-dev libsuitesparse-dev ccache libmpc-dev libjpeg-dev zlib1g-dev libtiff-dev libfreetype6-dev liblcms2-dev libwebp-dev
- name: Install dependencies
run: |
python -c "import platform; print(platform.platform()); print(platform.architecture())"
if [[ "${{ matrix.python-version }}" == "3.13t" ]]; then
# Use pip for 3.13t (free-threading) as uv may not fully support it yet
python -m pip install --upgrade pip
pip install -e .[test]
else
uv pip install --system -e .[test]
fi
shell: bash
- name: Add numba
if: ${{ !contains(fromJSON('["pypy3.11", "3.13t"]'), matrix.python-version) }}
run: |
uv pip install --system -e .[numba]
- name: Test with pytest
run: |
pytest . -v --cov-report html --cov=fluids --cov-report term-missing -m "not online and not thermo"
coveralls || true
env:
COVERALLS_REPO_TOKEN: ${{ secrets.coveralls }}
COVERALLS_PARALLEL: true
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
PYTHON_GIL: ${{ matrix.python-version == '3.13t' && '0' || '' }}
- name: Upload coverage HTML report
if: always()
uses: actions/upload-artifact@v4
with:
name: coverage-html-${{ matrix.os }}-${{ matrix.python-version }}-${{ matrix.architecture }}
path: htmlcov/
finish:
needs: build
runs-on: ubuntu-latest
steps:
- name: Coveralls Finished
env:
COVERALLS_REPO_TOKEN: ${{ secrets.coveralls }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
curl https://coveralls.io/webhook?repo_token=${{ secrets.coveralls }} -d "payload[build_num]=${{ github.sha }}&payload[status]=done"