Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
sagemathgh-39467: Disable broken and outdated CI
    
<!-- ^ Please provide a concise and informative title. -->
<!-- ^ Don't put issue numbers in the title, do this in the PR
description below. -->
<!-- ^ For example, instead of "Fixes sagemath#12345" use "Introduce new method
to calculate 1 + 2". -->
<!-- v Describe your changes below in detail. -->
<!-- v Why is this change required? What problem does it solve? -->
<!-- v If this PR resolves an open issue, please link to it here. For
example, "Fixes sagemath#12345". -->

Many of the CI runs after a new release are failing, for months now, see
eg https://github.com/sagemath/sage/actions/runs/12979684199/job/3621812
6145. Some of these failures are genuine (eg a certain package cannot be
built on a certain system) and some others are due to constraints of the
build system (eg running out of free space). Since there is very little
point in senselessly burning energy, all runs that were failing for the
last releases are disabled. Once the underlying issues are fixed, they
can be easily be re-enabled.

Moreover, the "minimal" runs where only a couple of systems packages are
installed and most are build using sage are removed, keeping only the
"standard" where all available system packages (corresponding to
standard sage packages) are installed.

New test run: https://github.com/tobiasdiez/sage/actions/runs/1319937223
2/job/36847711005

### 📝 Checklist

<!-- Put an `x` in all the boxes that apply. -->

- [ ] The title is concise and informative.
- [ ] The description explains in detail what this PR is about.
- [ ] I have linked a relevant issue or discussion.
- [ ] I have created tests covering the changes.
- [ ] I have updated the documentation and checked the documentation
preview.

### ⌛ Dependencies

- sagemath#39251 (to resolve merge conflicts)

<!-- List all open PRs that this PR logically depends on. For example,
-->
<!-- - sagemath#12345: short description why this is a dependency -->
<!-- - sagemath#34567: ... -->
    
URL: sagemath#39467
Reported by: Tobias Diez
Reviewer(s): Dima Pasechnik, Kwankyu Lee, Tobias Diez, user202729
  • Loading branch information
Release Manager committed Mar 9, 2025
2 parents 8ad1ae6 + 82832bc commit a12e957
Show file tree
Hide file tree
Showing 7 changed files with 18 additions and 275 deletions.
51 changes: 2 additions & 49 deletions .github/workflows/ci-linux-incremental.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
name: CI Linux incremental

## This GitHub Actions workflow runs SAGE_ROOT/tox.ini with select environments,
## This GitHub Actions workflow runs SAGE_ROOT/tox.ini with selected environments,
## whenever a GitHub pull request is opened or synchronized in a repository
## where GitHub Actions are enabled.
##
Expand Down Expand Up @@ -99,56 +99,9 @@ jobs:
"debian-bullseye",
"debian-bookworm",
"fedora-30",
"fedora-40",
"gentoo-python3.11",
"debian-bullseye-i386"]
"fedora-40",]
tox_packages_factors: >-
["standard",
"minimal"]
docker_push_repository: ghcr.io/${{ github.repository }}/
max_parallel: 8

constraints_pkgs-norequirements:
needs: [changed_files]
uses: ./.github/workflows/docker.yml
with:
# Build incrementally from published Docker image
incremental: true
free_disk_space: true
from_docker_repository: ghcr.io/sagemath/sage/
from_docker_target: "with-targets-pre"
from_docker_tag: "dev"
docker_targets: "with-targets-pre"
targets_pre: "${{needs.changed_files.outputs.build_targets}} all-sage-local python3-ensure tox-ensure sagelib-tox-sagepython-constraints_pkgs-norequirements"
tox_system_factors: >-
["ubuntu-focal",
"ubuntu-noble",
"debian-bookworm",
"fedora-40",
"debian-bullseye-i386"]
tox_packages_factors: >-
["standard"]
docker_push_repository: ghcr.io/${{ github.repository }}/
max_parallel: 16

site:
needs: [changed_files]
uses: ./.github/workflows/docker.yml
with:
# Build incrementally from published Docker image
incremental: true
free_disk_space: true
from_docker_repository: ghcr.io/sagemath/sage/
from_docker_target: "with-targets"
from_docker_tag: "dev"
docker_targets: "with-targets"
targets: "${{needs.changed_files.outputs.build_targets}} doc-html ptest-nodoc"
# Only test systems with a usable system python (>= 3.9)
# with only a small number of test failures as of 10.2.rc0
tox_system_factors: >-
["gentoo-python3.11",
"archlinux-latest",
"fedora-40"]
tox_packages_factors: >-
["standard-sitepackages"]
docker_push_repository: ghcr.io/${{ github.repository }}/
142 changes: 8 additions & 134 deletions .github/workflows/ci-linux.yml
Original file line number Diff line number Diff line change
@@ -1,8 +1,7 @@
name: CI Linux

## This GitHub Actions workflow runs SAGE_ROOT/tox.ini with select environments,
## whenever a GitHub pull request is opened or synchronized in a repository
## where GitHub Actions are enabled.
## This GitHub Actions workflow runs SAGE_ROOT/tox.ini with selected environments,
## whenever a tag is pushed.
##
## It builds and checks some sage spkgs as defined in TARGETS.
##
Expand Down Expand Up @@ -33,29 +32,7 @@ permissions:
packages: write

jobs:

# standard (without ptest) for the default platform (used by build.yml etc.)
default:
uses: ./.github/workflows/docker.yml
with:
# Build from scratch
free_disk_space: true
docker_targets: "with-system-packages configured with-targets-pre with-targets"
# FIXME: duplicated from env.TARGETS
targets_pre: all-sage-local
targets: build doc-html
targets_optional: ptest
tox_system_factors: >-
["ubuntu-jammy"]
tox_packages_factors: >-
["standard"]
docker_push_repository: ghcr.io/${{ github.repository }}/
logs_artifact: false

# All platforms. This duplicates the default platform, but why not,
# it makes it more robust regarding random timeouts.

standard:
minimal:
if: ${{ success() || failure() }}
uses: ./.github/workflows/docker.yml
with:
Expand All @@ -66,124 +43,21 @@ jobs:
targets_pre: all-sage-local
targets: build doc-html
targets_optional: ptest
tox_system_factors: >-
["ubuntu-jammy"]
tox_packages_factors: >-
["standard"]
["minimal"]
docker_push_repository: ghcr.io/${{ github.repository }}/
# Make sure that all "standard" jobs can start simultaneously,
# so that runners are available by the time that "default" starts.
max_parallel: 50

standard-constraints_pkgs-norequirements:
if: ${{ success() || failure() }}
needs: [standard]
uses: ./.github/workflows/docker.yml
with:
# Build incrementally from previous stage (pre)
incremental: true
free_disk_space: true
from_docker_repository: ghcr.io/${{ github.repository }}/
from_docker_target: "with-targets-pre"
docker_targets: "with-targets-pre"
targets_pre: all-sage-local python3-ensure tox-ensure sagelib-tox-sagepython-constraints_pkgs-norequirements
tox_packages_factors: >-
["standard"]
max_parallel: 15

standard-sitepackages:
if: ${{ success() || failure() }}
needs: [standard]
standard:
uses: ./.github/workflows/docker.yml
with:
# Build incrementally from previous stage (pre)
incremental: true
free_disk_space: true
from_docker_repository: ghcr.io/${{ github.repository }}/
from_docker_target: "with-targets-pre"
docker_targets: "with-targets with-targets-optional"
# FIXME: duplicated from env.TARGETS
targets: build doc-html
targets_optional: ptest
tox_packages_factors: >-
["standard-sitepackages"]
# Only test systems with a usable system python (>= 3.9)
tox_system_factors: >-
["ubuntu-jammy",
"ubuntu-lunar",
"ubuntu-mantic",
"debian-bookworm",
"debian-trixie",
"debian-sid",
"linuxmint-21.1",
"linuxmint-21.2",
"fedora-40",
"centos-stream-9-python3.9",
"almalinux-8-python3.9",
"gentoo-python3.10",
"gentoo-python3.11",
"archlinux-latest",
"opensuse-15.5-gcc_11-python3.11",
"opensuse-tumbleweed-python3.10",
"opensuse-tumbleweed"]
docker_push_repository: ghcr.io/${{ github.repository }}/
max_parallel: 8

minimal:
if: ${{ success() || failure() }}
uses: ./.github/workflows/docker.yml
with:
# Build from scratch
free_disk_space: true
docker_targets: "with-system-packages configured with-targets-pre with-targets with-targets-optional"
# FIXME: duplicated from env.TARGETS
targets_pre: all-sage-local
targets: build doc-html
targets_optional: ptest
tox_packages_factors: >-
["minimal"]
docker_push_repository: ghcr.io/${{ github.repository }}/
# Reduced from 30 because it may run in parallel with 'standard' and 'standard-sitepackages' above.
# Calibrated for clogging the job pipeline until the "default" job has finished.
max_parallel: 24

maximal-pre:
if: ${{ success() || failure() }}
needs: [minimal]
uses: ./.github/workflows/docker.yml
with:
free_disk_space: true
# Build from scratch
docker_targets: "with-system-packages configured with-targets-pre"
# FIXME: duplicated from env.TARGETS
targets_pre: all-sage-local
tox_packages_factors: >-
["maximal"]
["standard"]
docker_push_repository: ghcr.io/${{ github.repository }}/

optional:
if: ${{ success() || failure() }}
needs: [maximal-pre]
uses: ./.github/workflows/docker.yml
with:
incremental: true
free_disk_space: true
from_docker_repository: ghcr.io/${{ github.repository }}/
from_docker_target: "with-targets-pre"
tox_packages_factors: >-
["maximal"]
docker_targets: "with-targets-optional"
# We remove packages starting with _, in particular package _develop
targets_optional: '$(echo $(export PATH=build/bin:$PATH && sage-package list :optional: --has-file "spkg-install.in|spkg-install|requirements.txt" --no-file "huge|has_nonfree_dependencies" | grep -v sagemath_doc | grep -v ^_))'

experimental:
if: ${{ success() || failure() }}
needs: [optional]
uses: ./.github/workflows/docker.yml
with:
incremental: true
free_disk_space: true
from_docker_repository: ghcr.io/${{ github.repository }}/
from_docker_target: "with-targets-pre"
tox_packages_factors: >-
["maximal"]
docker_targets: "with-targets-optional"
targets_optional: '$(echo $(export PATH=build/bin:$PATH && sage-package list :experimental: --has-file "spkg-install.in|spkg-install|requirements.txt" --no-file "huge|has_nonfree_dependencies" | grep -v sagemath_doc))'
58 changes: 0 additions & 58 deletions .github/workflows/ci-macos.yml
Original file line number Diff line number Diff line change
Expand Up @@ -99,61 +99,3 @@ jobs:
with:
path: "dist/*.tar.gz"
name: dist

local-macos-nohomebrew:

needs: [dist]

runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
max-parallel: 4
matrix:
os: [ macos-12, macos-13, macos-14 ]
tox_system_factor: [macos-nobootstrap]
tox_packages_factor: [minimal]
xcode_version_factor: [default]
env:
TOX_ENV: local-${{ matrix.tox_system_factor }}-${{ matrix.tox_packages_factor }}
LOGS_ARTIFACT_NAME: logs-commit-${{ github.sha }}-tox-local-${{ matrix.tox_system_factor }}-${{ matrix.tox_packages_factor }}-xcode_${{ matrix.xcode_version_factor }}
steps:
- uses: actions/checkout@v4
if: "!contains(matrix.tox_system_factor, 'nobootstrap')"
- uses: actions/download-artifact@v4
with:
path: .
name: dist
if: contains(matrix.tox_system_factor, 'nobootstrap')
- name: Unpack sage dist
run: |
tar xf sage*.tar.gz --strip-components=1
if: contains(matrix.tox_system_factor, 'nobootstrap')
- name: Move homebrew away
run: |
(cd $(brew --prefix) && for a in bin etc include lib opt sbin share; do sudo mv $a $a-moved; done)
- name: Select Xcode version
run: |
if [ ${{ matrix.xcode_version_factor }} != default ]; then sudo xcode-select -s /Applications/Xcode_${{ matrix.xcode_version_factor }}.app; fi
- name: Install test prerequisites
run: |
sudo /usr/bin/python3 -m pip install tox
- name: Build and test with tox
# We use a high parallelization on purpose in order to catch possible parallelization bugs in the build scripts.
# For doctesting, we use a lower parallelization to avoid timeouts.
run: |
(sleep 20000; pkill make) &
MAKE="make -j12" tox -e $TOX_ENV -- SAGE_NUM_THREADS=6 $TARGETS
- name: Prepare logs artifact
run: |
mkdir -p "artifacts/$LOGS_ARTIFACT_NAME"; cp -r .tox/*/log "artifacts/$LOGS_ARTIFACT_NAME"
if: always()
- uses: actions/upload-artifact@v4
with:
path: artifacts
name: ${{ env.LOGS_ARTIFACT_NAME }}
if: always()
- name: Print out logs for immediate inspection
# and markup the output with GitHub Actions logging commands
run: |
.github/workflows/scan-logs.sh "artifacts/$LOGS_ARTIFACT_NAME"
if: always()
24 changes: 0 additions & 24 deletions .github/workflows/docker.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,49 +19,25 @@ on:
default: >-
[
"ubuntu-xenial-toolchain-gcc_9",
"ubuntu-bionic-gcc_8",
"ubuntu-focal",
"ubuntu-jammy",
"ubuntu-lunar",
"ubuntu-mantic",
"ubuntu-noble",
"debian-bullseye",
"debian-bookworm",
"debian-trixie",
"debian-sid",
"linuxmint-20.1",
"linuxmint-20.2",
"linuxmint-20.3",
"linuxmint-21",
"linuxmint-21.1",
"linuxmint-21.2",
"linuxmint-21.3",
"fedora-30",
"fedora-31",
"fedora-32",
"fedora-33",
"fedora-34",
"fedora-35",
"fedora-36",
"fedora-37",
"fedora-38",
"fedora-39",
"fedora-40",
"fedora-41",
"centos-stream-9",
"centos-stream-9-python3.12",
"almalinux-8-python3.9",
"almalinux-9-python3.11",
"gentoo-python3.10",
"gentoo-python3.11",
"gentoo-python3.12",
"archlinux-latest",
"opensuse-15.5-gcc_11-python3.11",
"opensuse-tumbleweed-python3.10",
"opensuse-tumbleweed",
"conda-forge-python3.11",
"ubuntu-bionic-gcc_8-i386",
"debian-bullseye-i386",
]
# 'tox -e update_docker_platforms' updates above
tox_packages_factors:
Expand Down
10 changes: 2 additions & 8 deletions .github/workflows/macos.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,15 +23,9 @@ on:
# https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners/about-github-hosted-runners#standard-github-hosted-runners-for-public-repositories
description: 'Stringified JSON object'
default: >-
[["12", "", "homebrew-macos-usrlocal-minimal"],
["12", "", "homebrew-macos-usrlocal-standard"],
["12", "", "homebrew-macos-usrlocal-python3_xcode-standard"],
["12", "", "homebrew-macos-usrlocal-maximal"],
["13", "xcode_15.0", "homebrew-macos-usrlocal-standard"],
[
["latest", "", "homebrew-macos-opthomebrew-standard"],
["13", "", "conda-forge-macos-minimal"],
["13", "", "conda-forge-macos-standard"],
["latest", "", "conda-forge-macos-standard"]]
]
type: string
extra_sage_packages:
description: 'Extra Sage packages to install as system packages'
Expand Down
2 changes: 1 addition & 1 deletion src/doc/en/developer/github.rst
Original file line number Diff line number Diff line change
Expand Up @@ -462,7 +462,7 @@ Actions.
test. Details are again available by clicking on the check.

The automatic workflow runs on a container based on
``ubuntu-focal-standard``. To request a run of the workflow on a different
``ubuntu``. To request a run of the workflow on a different
platform, you can issue a `workflow dispatch
<https://docs.github.com/en/actions/managing-workflow-runs/manually-running-a-workflow#running-a-workflow>`_.
You can select any of the platforms for which a `prebuilt container image
Expand Down
6 changes: 5 additions & 1 deletion src/doc/en/developer/portability_testing.rst
Original file line number Diff line number Diff line change
Expand Up @@ -1139,7 +1139,8 @@ makes them available on `GitHub Packages
<https://github.com/features/packages>`_ (ghcr.io).

This makes it easy for developers to debug problems that showed up in
the build logs for a given platform.
the build logs for a given platform. These images are not intended for production
deployment.

The image version corresponding to the latest development release
receives the additional Docker tag ``dev``, see for example the Docker
Expand Down Expand Up @@ -1188,6 +1189,9 @@ are available:
installation of Sage, including the HTML documentation, but ``make
ptest`` has not been run yet.

Note that some of these images are outdated due to build errors.
Moreover, standard and minimal images are discontinued.

.. only:: html

.. include:: portability_platform_table.rst
Expand Down

0 comments on commit a12e957

Please sign in to comment.