Skip to content

Update portability tests to use Meson #90

Update portability tests to use Meson

Update portability tests to use Meson #90

Workflow file for this run

name: CI Linux
on:
push:
tags:
- '*'
# TODO: Remove this before merging
pull_request:
workflow_dispatch:
# Allow to run manually
jobs:
build:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
container:
- ubuntu:trusty
- ubuntu:xenial
- ubuntu:bionic
- ubuntu:focal
- ubuntu:jammy
- ubuntu:lunar
- ubuntu:mantic
- debian:buster
- debian:bullseye
- debian:bookworm
- debian:trixie
- debian:sid
- linuxmintd/mint20.1-amd64
- linuxmintd/mint20.2-amd64
- linuxmintd/mint20.3-amd64
- linuxmintd/mint21-amd64
- linuxmintd/mint21.1-amd64
- linuxmintd/mint21.2-amd64
- fedora:30
- fedora:31
- fedora:32
- fedora:33
- fedora:34
- fedora:35
- fedora:36
- fedora:37
- fedora:38
- fedora:39
- centos:centos7
- quay.io/centos/centos:stream8
- quay.io/centos/centos:stream9
- almalinux:8
- almalinux:9
- sheerluck/sage-on-gentoo-stage4
- archlinux
- opensuse/leap:15.3
- opensuse/leap:15.4
- opensuse/leap:15.5
- opensuse/tumbleweed
- i386/ubuntu:bionic
- i386/debian:bullseye
container:
image: ${{ matrix.container }}
env:
# For debian compatibility
PIP_BREAK_SYSTEM_PACKAGES: 1
steps:
- name: Checkout code
# cannot use v4 yet because of https://github.com/actions/checkout/issues/1487
uses: actions/checkout@v3
- name: Install dependencies
run: |
SYSTEM=$(build/bin/sage-guess-package-system)
INSTALL_PYTHON=$(python3 -c 'import sys; print(sys.version_info < (3, 9))' || echo 'True')
eval $(build/bin/sage-print-system-package-command $SYSTEM update)
# We cannot use the setup python action because it doesn't support all containers
# https://github.com/actions/setup-python/issues/527
if [ $INSTALL_PYTHON = 'True' ]; then
eval $(build/bin/sage-print-system-package-command $SYSTEM --yes --ignore-missing install python-pip python3-pip)
fi
eval $(build/bin/sage-print-system-package-command $SYSTEM --yes --ignore-missing install $(build/bin/sage-get-system-packages $SYSTEM $(build/bin/sage-package list :standard:)))
pip3 install --upgrade pip
# Needed for bootstrap
pip3 install jinja2
# Needed to download and install cypari2 below
eval $(build/bin/sage-print-system-package-command $SYSTEM --yes --ignore-missing install git)
# # Download and install pari for cypari2
# # https://github.com/sagemath/cypari2/issues/145
# eval $(build/bin/sage-print-system-package-command $SYSTEM --yes --ignore-missing install wget sudo)
# wget https://raw.githubusercontent.com/sagemath/cypari2/master/.install-pari.sh
# chmod +x .install-pari.sh
# ./.install-pari.sh
env:
PARI_VERSION: pari-2.15.4
- name: Bootstrap
run: python3 -m sage_setup.autogen.interpreters src/sage/ext/interpreters
env:
PYTHONPATH: src
- name: Build
run: |
# Cannot yet use build isolation due to https://github.com/sagemath/cypari2/issues/143
pip3 install 'meson-python' 'cython>=3.0.0,!=3.0.3' 'numpy>=1.19' 'cysignals>=1.10.2' 'gmpy2>=2.1.0' 'memory_allocator'
# dependencies of cypari2
pip3 install wheel setuptools
pip3 install --no-build-isolation git+https://github.com/sagemath/cypari2.git
pip3 install --no-build-isolation . -v
- name: Test
run: ./sage -t --all -p4 || true