Upgrade to Maxima 5.49 and ecl 26.5.5 #847
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: Build & Test with all meson features disabled | |
| # TODO: | |
| # | |
| # * -Dbrial=disabled | |
| # * -Declib=disabled | |
| # * -Dauto_features=disabled (when all others are working) | |
| on: | |
| push: | |
| branches: | |
| - master | |
| - develop | |
| pull_request: | |
| 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 | |
| permissions: | |
| contents: read | |
| jobs: | |
| test: | |
| name: Conda minimal (${{ matrix.os }}, Python ${{ matrix.python }}, all) | |
| runs-on: ${{ matrix.os }}-latest | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| os: ['ubuntu'] | |
| python: ['3.14'] | |
| steps: | |
| - uses: actions/checkout@v7 | |
| - name: Merge CI fixes from sagemath/sage | |
| run: | | |
| .github/workflows/merge-fixes.sh | |
| env: | |
| GH_TOKEN: ${{ github.token }} | |
| - name: Cache conda packages | |
| uses: actions/cache@v6 | |
| with: | |
| path: ~/conda_pkgs_dir | |
| key: | |
| ${{ runner.os }}-conda-${{ hashFiles('environment-3.12-linux.yml') }} | |
| - name: Compiler cache | |
| uses: hendrikmuhs/ccache-action@v1.2 | |
| with: | |
| key: ${{ runner.os }}-meson-${{ matrix.python }}-minimal | |
| - name: Setup Conda environment | |
| uses: conda-incubator/setup-miniconda@v4 | |
| continue-on-error: true | |
| id: conda1 | |
| with: | |
| python-version: ${{ matrix.python }} | |
| # Disabled for now due to | |
| # https://github.com/conda-incubator/setup-miniconda/issues/379 | |
| # miniforge-version: latest | |
| use-mamba: true | |
| channels: conda-forge | |
| channel-priority: true | |
| activate-environment: sage-dev | |
| environment-file: environment-${{ matrix.python }}-linux.yml | |
| # Sometimes the conda setup fails due to network issues. | |
| # This is a workaround to retry the setup step if it fails. | |
| # Workaround for https://github.com/conda-incubator/setup-miniconda/issues/129 | |
| - name: Setup Conda environment (2nd time) | |
| uses: conda-incubator/setup-miniconda@v4 | |
| if: steps.conda1.outcome == 'failure' | |
| with: | |
| python-version: ${{ matrix.python }} | |
| miniforge-version: latest | |
| use-mamba: true | |
| channels: conda-forge | |
| channel-priority: true | |
| activate-environment: sage-dev | |
| environment-file: environment-${{ matrix.python }}-linux.yml | |
| # Build without the packages whose support we are disabling, to | |
| # be on the safe side. The -Dfoo=disabled option is an off switch | |
| # for sage.features.foo, but it's possible that some parts of the | |
| # code are bypassing the feature framework and e.g. attempting | |
| # to detect an optional package with an import statement. We want | |
| # those to fail as well. | |
| - name: Remove optional packages from Conda environment | |
| shell: bash -l {0} | |
| run: conda remove bliss libbraiding libhomfly rw sirocco | |
| - name: Print Conda environment | |
| shell: bash -l {0} | |
| run: | | |
| conda info | |
| conda list | |
| - name: Build | |
| shell: bash -l {0} | |
| run: | | |
| export PATH="/usr/lib/ccache:/usr/local/opt/ccache/libexec:$PATH" | |
| export CC="ccache $CC" | |
| export CXX="ccache $CXX" | |
| meson setup --python.install-env=prefix --prefix="${HOME}/.local" --wrap-mode=nodownload -Dbuild-docs=false -Dbliss=disabled -Dcoxeter3=disabled -Dlibbraiding=disabled -Dlibhomfly=disabled -Dmcqd=disabled -Dmeataxe=disabled -Drankwidth=disabled -Dsirocco=disabled -Dtdlib=disabled builddir | |
| meson install -C builddir | |
| - name: Check that all modules can be imported | |
| shell: bash -l {0} | |
| run: | | |
| # We want pytest to ignore sage_setup and sage_docbuild when | |
| # they are not installed (not able to be imported). We also | |
| # kill src/build-docs.py because it is used to build the | |
| # docs and thus imports sage_docbuild. | |
| rm -R src/sage_setup src/sage_docbuild src/build-docs.py | |
| # Increase the length of the lines in the "short summary" | |
| export COLUMNS=120 | |
| # The following command checks that all modules can be imported. | |
| # The output also includes a long list of modules together with | |
| # the number of tests in each module (this can be ignored). | |
| # We do this before the "Test" step because we delete two | |
| # modules with flaky tests in that step, but we'd still like | |
| # to make sure that pytest can import them. | |
| pytest -n 4 -qq --doctest --collect-only | |
| - name: Test | |
| shell: bash -l {0} | |
| run: | | |
| pytest -n 4 -rfEs -s src | |
| # These modules have flaky tests, and don't use any optional | |
| # features in any case. | |
| rm src/sage/libs/singular/function.pyx | |
| rm src/sage/rings/polynomial/plural.pyx | |
| # These are all sage-the-distro scripts, and at least one | |
| # is so bit-rotted that it can't be imported. | |
| rm -R src/bin | |
| # Two failures (GH issue 39872) that should be fixed in | |
| # the (as yet unreleased) cython-3.3. Not worth losing | |
| # sleep over at the moment. | |
| rm src/sage/misc/sageinspect.py | |
| # Hides a spurious warning that breaks a doctest | |
| export PYDEVD_DISABLE_FILE_VALIDATION=1 | |
| python3 -m sage.doctest -p4 --format github src | |
| - name: Upload log | |
| uses: actions/upload-artifact@v7 | |
| if: failure() | |
| with: | |
| name: ${{ runner.os }}-meson-${{ matrix.python }}-minimal-log | |
| path: builddir/meson-logs/ |