Migrate to meson build system with PPL 1.2 #117
Workflow file for this run
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: Test | |
| on: | |
| push: { branches: [ "master" ] } | |
| pull_request: { branches: [ "master" ] } | |
| concurrency: | |
| group: test-${{ github.ref }} | |
| cancel-in-progress: true | |
| permissions: | |
| contents: read | |
| jobs: | |
| test-ubuntu: | |
| runs-on: ubuntu-latest | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| python: ["3.12", "3.13", "3.14"] | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - uses: actions/setup-python@v6 | |
| with: | |
| python-version: ${{ matrix.python }} | |
| - name: Install system dependencies | |
| run: | | |
| sudo apt-get update | |
| sudo apt-get install -y libgmp-dev libmpfr-dev libmpc-dev libglpk-dev libppl-dev ppl-dev | |
| - name: Install Python build dependencies | |
| run: | | |
| pip install --upgrade pip | |
| pip install meson-python meson ninja cython cysignals "gmpy2>=2.1.0b1" | |
| - name: Build and install | |
| run: | | |
| pip install --no-build-isolation --verbose . | |
| - name: Install test dependencies | |
| run: | | |
| pip install sphinx cython-lint | |
| - name: Lint | |
| run: | | |
| cython-lint --ignore=E265,E266,E501,E741 --exclude='ppl_decl.pxd' ppl/ | |
| - name: Build (meson) | |
| run: | | |
| meson setup builddir | |
| meson compile -C builddir | |
| - name: Test (meson test) | |
| run: | | |
| meson test -C builddir -v | |
| - name: Show logs | |
| run: cat builddir/meson-logs/testlog.txt || true | |
| if: ${{ always() }} | |
| test-macos: | |
| runs-on: macos-latest | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| python: ["3.12", "3.13", "3.14"] | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - uses: actions/setup-python@v6 | |
| with: | |
| python-version: ${{ matrix.python }} | |
| - name: Install system dependencies | |
| run: | | |
| brew install gmp mpfr libmpc glpk ppl | |
| - name: Set Homebrew pkg-config paths | |
| run: | | |
| echo "PKG_CONFIG_PATH=$(brew --prefix ppl)/lib/pkgconfig:$(brew --prefix gmp)/lib/pkgconfig:$(brew --prefix mpfr)/lib/pkgconfig:$(brew --prefix libmpc)/lib/pkgconfig:$(brew --prefix glpk)/lib/pkgconfig:${PKG_CONFIG_PATH:-}" >> "$GITHUB_ENV" | |
| - name: Install Python build dependencies | |
| run: | | |
| pip install --upgrade pip | |
| pip install meson-python meson ninja cython cysignals "gmpy2>=2.1.0b1" | |
| - name: Build and install | |
| run: | | |
| pip install --no-build-isolation --verbose . | |
| - name: Install test dependencies | |
| run: | | |
| pip install sphinx cython-lint | |
| - name: Lint | |
| run: | | |
| cython-lint --ignore=E265,E266,E501,E741 --exclude='ppl_decl.pxd' ppl/ | |
| - name: Build (meson) | |
| run: | | |
| meson setup builddir | |
| meson compile -C builddir | |
| - name: Test (meson test) | |
| run: | | |
| meson test -C builddir -v | |
| - name: Show logs | |
| run: cat builddir/meson-logs/testlog.txt || true | |
| if: ${{ always() }} |