Merge to 1.3.0 release (#88) #447
This file contains hidden or 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: 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" |