Skip to content

Upgrade to Maxima 5.49 and ecl 26.5.5 #2100

Upgrade to Maxima 5.49 and ecl 26.5.5

Upgrade to Maxima 5.49 and ecl 26.5.5 #2100

Workflow file for this run

name: CI
on:
push:
tags:
- '*'
pull_request:
paths:
- '**.build'
- 'uv.lock'
- 'subprojects/**'
- '.github/workflows/ci.yml'
- 'build/pkgs/*/distros/*.txt'
workflow_dispatch:
# Allow to run manually
jobs:
linux:
name: Build and Test
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
container:
- fedora:41
- fedora:42
- fedora:43
- debian:forky
- ghcr.io/void-linux/void-glibc-full
- archlinux
#- ubuntu:22.04 - gap is outdated there (only 4.11)
- ubuntu:24.04
- ubuntu:26.04
container:
image: ${{ matrix.container }}
steps:
- name: Prepare container
run: |
if [ "${{ matrix.container }}" = "ghcr.io/void-linux/void-glibc-full" ]; then
xbps-install -Syu xbps
xbps-install -yu
# node-based actions require libstdc++.so.6
xbps-install -Sy libstdc++ bash git
# setup-uv needs a version field in os-release to build its cache
# key, but rolling-release Void ships none (only ID); give it the
# same BUILD_ID that Arch uses (see astral-sh/setup-uv#773)
echo 'BUILD_ID=rolling' >> /etc/os-release
fi
if [ "${{ matrix.container }}" = "archlinux" ]; then
# The archlinux container is configured to not install docs by default
# but we need the maxima help to be in place
sed -i '/^NoExtract/d' /etc/pacman.conf
fi
if [ "${{ matrix.container }}" = "ubuntu:22.04" ]; then
apt-get update
apt-get install -y git
fi
- name: Checkout code
uses: actions/checkout@v7
- name: Install uv
uses: astral-sh/setup-uv@v9.0.0
# We cannot use the setup python action because it doesn't support all containers
# https://github.com/actions/setup-python/issues/527
- name: Set up Python
run: |
uv python install
if [ "${{ matrix.container }}" = "ghcr.io/void-linux/void-glibc-full" ] || [ "${{ matrix.container }}" = "archlinux" ]; then
uv venv --system-site-packages
else
uv venv
fi
. .venv/bin/activate
echo PATH=$PATH >> $GITHUB_ENV
- name: Install dependencies
run: |
SYSTEM=$(build/bin/sage-guess-package-system)
if [ "$SYSTEM" = "fedora" ]; then
dnf install -y git
# Need to use --setopt=tsflags="" to avoid errors with gphelp
dnf install -y pari-gp --setopt=tsflags=""
# Mitigate upstream packaging bug: https://bugzilla.redhat.com/show_bug.cgi?id=2332429
# by swapping the incorrectly installed OpenCL-ICD-Loader for the expected ocl-icd
dnf -y swap --repo='fedora' OpenCL-ICD-Loader ocl-icd
fi
eval $(build/bin/sage-print-system-package-command $SYSTEM update)
eval $(build/bin/sage-print-system-package-command $SYSTEM --yes --ignore-missing install $(build/bin/sage-get-system-packages $SYSTEM $(uv run --no-project build/bin/sage-package list :standard:)))
- name: Build
run: |
# Install build dependencies manually as workaround for https://github.com/astral-sh/uv/issues/1516
uv sync --frozen --inexact --no-install-project -v
uv sync --frozen --inexact --no-build-isolation -v
- name: Test
run: |
uv run --frozen ./sage -t --all -p4 || true
- name: Clear container name
id: clear-container-name
if: failure() || success()
run: |
# Output the container name, but with ":" and "/" replaced by "-"
# This is needed to avoid issues with the upload-artifact action
CONTAINER_NAME=$(echo "${{ matrix.container }}" | tr ':/' '--')
echo "CONTAINER_NAME=$CONTAINER_NAME" >> $GITHUB_OUTPUT
- name: Upload log
uses: actions/upload-artifact@v7
if: failure() || success()
with:
name: ${{ steps.clear-container-name.outputs.CONTAINER_NAME }}-log
path: |
build/cp313/meson-logs/
build/cp313/meson-info/
macos:
name: Build and Test (macos-${{ matrix.version }})
runs-on: macos-${{ matrix.version }}
strategy:
fail-fast: false
matrix:
version:
- '15'
- '26'
steps:
- name: Checkout code
uses: actions/checkout@v7
- name: Install uv
uses: astral-sh/setup-uv@v9.0.0
- name: Set up Python
uses: actions/setup-python@v7
with:
python-version: '3.12'
- name: Install dependencies
run: |
eval $(build/bin/sage-print-system-package-command homebrew update)
eval $(build/bin/sage-print-system-package-command homebrew --yes --ignore-missing install $(build/bin/sage-get-system-packages homebrew $(uv run --no-project build/bin/sage-package list :standard:)))
- name: Build
run: |
source ./.homebrew-build-env
# Install build dependencies manually as workaround for https://github.com/astral-sh/uv/issues/1516
uv sync --frozen --inexact --no-install-project -v
uv sync --frozen --inexact --no-build-isolation -v
- name: Test
run: |
uv run --frozen ./sage -t --all -p4 || true
- name: Upload log
uses: actions/upload-artifact@v7
if: failure() || success()
with:
name: macos-${{ matrix.version }}-log
path: |
build/cp312/meson-logs/
build/cp312/meson-info/