-
-
Notifications
You must be signed in to change notification settings - Fork 673
Description
We revise the GH Actions workflows to use a 2-stage build:
In the first stage, run make build-local
, and store SAGE_LOCAL
as a build artifact. In the second stage, download the build artifact and run more building and testing.
(+) On top of the artifact containing the full SAGE_LOCAL, we can test several ways to build the Python parts
- Sage distribution, classic
- Sage distribution with
configure --enable-editable
- Sage distribution with
configure --enable-system-site-packages
(configure --enable-system-site-packages via spkg-configure.m4 for cvxopt and other python packages #29665) - the configurations from pkgs/sagemath-standard/tox.ini
- build/install of modularized distributions such as pkgs/sage-categories (Modularization of sagelib: Break out separate packages sagemath-objects, sagemath-categories #29865), pkgs/sagemath-standard-no-symbolics (Modularization of sagelib: Break out a separate package sagemath-standard-no-symbolics #32601)
(+) Tests of optional and experimental packages can be streamlined, as we avoid rebuilding their dependencies that are standard packages.
(+) Splitting the job into two would also help with the configurations for which we scrape at the 6 hour time limit
(-) Unfortunately, because because "needs" cannot depend on "matrix", the jobs for building/testing Python packages would not start before all jobs building SAGE_LOCAL
for all platforms are completed
In this ticket, we only change all existing macos
workflows to a 2-stage workflow, integrating the separate workflows for optional and experimental packages.
As of this ticket, we rely on the bottleneck of the available parallel jobs on GH Actions to ensure that the 2nd stages of a configuration are run after the 1st stage of that configuration. Experience with this workflow will show whether this suffices.
We also update the macOS/Xcode versions according to what's available on GH Actions and switch the homebrew
builds to faster homebrew-usrlocal
variants, which can use bottles for all available packages.
Depends on #32113
Depends on #32947
CC: @tobiasdiez @kliem @orlitzky @isuruf
Component: porting
Author: Matthias Koeppe
Branch/Commit: edb4364
Reviewer: Dima Pasechnik
Issue created by migration from https://trac.sagemath.org/ticket/32703