-
-
Notifications
You must be signed in to change notification settings - Fork 26
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Update build system to use Meson (#206)
* Update build system to use Meson * Finish migration to meson * Fix compilation on Windows * add conda environment * fix ci * remove obsolete manifest * Run meson setup before tests * add ninja as requirement * try to fix cython * Simplify pip install command * Latest python on cygwin is 3.9 * install ninja in cygwin * Readd preliminary_late_includes_cy28 * Run commands in cygwin shell * Remove MINSIGSTKSZ_IS_CONSTANT * print logs * fix cygwin path * always print logs * add build as requirements * fix tests * Use pytest * improve log printing * config pytest * fix example * use pip install to compile cysignals * fix tests * include tests * try to fix alarm input * fix remaining imports * fix tests * ignore import errors * set higher timeout * increase timeout even more * add per-test timeout of 30s * Migrate to pytest * Fix dist * remove duplicate and non-functional dist * don't run tests before dist * Remove non-functional sage tests * Don't install package before testing * improve sdist gen * do install package * fix dist path * back to pip install * just run pytest without any files * combine macos and linux * simplify conftest * fix format * remove unused cython instruction * Fix failing test * remove duplicate conftest * export sig_raise_exception * try to fix cygwin * don't build wheels for old python * try to fix wheel building * merge cygwin code * manually install ninja in ci * fix meson * fix cygwin * move cygwin code
- Loading branch information
1 parent
c0e13b6
commit fa6d45d
Showing
26 changed files
with
436 additions
and
885 deletions.
There are no files selected for viewing
This file was deleted.
Oops, something went wrong.
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,111 @@ | ||
name: Run Sage CI for Linux/Cygwin/macOS | ||
|
||
## This GitHub Actions workflow provides: | ||
## | ||
## - portability testing, by building and testing this project on many platforms | ||
## (Linux variants and Cygwin), each with two configurations (installed packages), | ||
## | ||
## - continuous integration, by building and testing other software | ||
## that depends on this project. | ||
## | ||
## It runs on every pull request and push of a tag to the GitHub repository. | ||
## | ||
## The testing can be monitored in the "Actions" tab of the GitHub repository. | ||
## | ||
## After all jobs have finished (or are canceled) and a short delay, | ||
## tar files of all logs are made available as "build artifacts". | ||
## | ||
## This GitHub Actions workflow uses the portability testing framework | ||
## of SageMath (https://www.sagemath.org/). For more information, see | ||
## https://doc.sagemath.org/html/en/developer/portability_testing.html | ||
|
||
## The workflow consists of two jobs: | ||
## | ||
## - First, it builds a source distribution of the project | ||
## and generates a script "update-pkgs.sh". It uploads them | ||
## as a build artifact named upstream. | ||
## | ||
## - Second, it checks out a copy of the SageMath source tree. | ||
## It downloads the upstream artifact and replaces the project's | ||
## package in the SageMath distribution by the newly packaged one | ||
## from the upstream artifact, by running the script "update-pkgs.sh". | ||
## Then it builds a small portion of the Sage distribution. | ||
## | ||
## Many copies of the second step are run in parallel for each of the tested | ||
## systems/configurations. | ||
|
||
#on: [push, pull_request] | ||
|
||
on: | ||
pull_request: | ||
types: [opened, synchronize] | ||
push: | ||
tags: | ||
- '*' | ||
workflow_dispatch: | ||
# Allow to run manually | ||
|
||
concurrency: | ||
# Cancel previous runs of this workflow for the same branch | ||
group: ${{ github.workflow }}-${{ github.ref }} | ||
cancel-in-progress: true | ||
|
||
jobs: | ||
cygwin-without-sage: | ||
runs-on: windows-latest | ||
strategy: | ||
fail-fast: false | ||
matrix: | ||
python-version-start: [python-3] | ||
python-version: [9] | ||
steps: | ||
- run: | | ||
git config --global core.autocrlf false | ||
git config --global core.symlinks true | ||
- name: Set up the repository | ||
uses: actions/checkout@v4 | ||
with: | ||
submodules: recursive | ||
fetch-depth: 0 | ||
- name: Set up Cygwin | ||
uses: egor-tensin/setup-cygwin@v4 | ||
with: | ||
packages: gcc-core gcc-g++ python3${{ matrix.python-version }}-devel ninja pkgconf | ||
- name: Install dependencies | ||
shell: C:\tools\cygwin\bin\bash.exe --norc -eo pipefail -o igncr '{0}' | ||
run: | | ||
python3.${{ matrix.python-version }} -m pip install --upgrade pip | ||
python3.${{ matrix.python-version }} -m pip install --upgrade -r ./requirements.txt | ||
- name: Build and check | ||
shell: C:\tools\cygwin\bin\bash.exe --norc -eo pipefail -o igncr '{0}' | ||
run: | | ||
pip install --no-build-isolation --config-settings=builddir=builddir . | ||
meson test --print-errorlogs -C builddir | ||
ci: | ||
name: CI (${{ matrix.os }} with Python ${{ matrix.python-version }}) | ||
runs-on: ${{ matrix.os }} | ||
strategy: | ||
fail-fast: false | ||
matrix: | ||
os: ['macos-13', 'macos-latest', 'ubuntu-latest'] | ||
python-version: ['3.10', '3.11', '3.12', '3.13-dev'] | ||
steps: | ||
- name: Set up the repository | ||
uses: actions/checkout@v4 | ||
with: | ||
submodules: recursive | ||
fetch-depth: 0 | ||
- name: Set up Python ${{ matrix.python-version }} | ||
uses: actions/setup-python@v5 | ||
with: | ||
python-version: ${{ matrix.python-version }} | ||
- name: Install dependencies | ||
run: | | ||
pip install --upgrade pip | ||
pip install --upgrade -r requirements.txt | ||
pip install --upgrade ninja | ||
- name: Build | ||
run: pip install --no-build-isolation --config-settings=builddir=builddir . | ||
- name: Test | ||
run: meson test --print-errorlogs -C builddir |
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
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
This file was deleted.
Oops, something went wrong.
Oops, something went wrong.