-
-
Notifications
You must be signed in to change notification settings - Fork 540
New issue
Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? # to your account
Disable broken and outdated CI #39467
base: develop
Are you sure you want to change the base?
Changes from 7 commits
f882808
f93a2d7
5c8e5d6
60ae935
50bbe1a
164a837
6b05035
819cd48
b8639d7
a1b2d04
4871a96
e51ddca
49d2fb1
d129264
1364c41
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
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. | ||
## | ||
|
@@ -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] | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Please refrain from removing things just because it is broken. They can be fixed later. Turning off is enough. |
||
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 }}/ |
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. | ||
## | ||
|
@@ -33,157 +32,15 @@ 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 | ||
|
||
kwankyu marked this conversation as resolved.
Show resolved
Hide resolved
|
||
# All platforms. This duplicates the default platform, but why not, | ||
# it makes it more robust regarding random timeouts. | ||
|
||
standard: | ||
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: >- | ||
["standard"] | ||
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 | ||
|
||
kwankyu marked this conversation as resolved.
Show resolved
Hide resolved
|
||
standard-constraints_pkgs-norequirements: | ||
if: ${{ success() || failure() }} | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Just turn this off. Please do not remove things broken. They may be fixed later. |
||
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() }} | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Just turn this off. Please do not remove things broken. They may be fixed later. |
||
needs: [standard] | ||
maximal: | ||
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() }} | ||
kwankyu marked this conversation as resolved.
Show resolved
Hide resolved
|
||
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() }} | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. This is intended to test "optional packages" installed as system package. |
||
needs: [minimal] | ||
uses: ./.github/workflows/docker.yml | ||
kwankyu marked this conversation as resolved.
Show resolved
Hide resolved
|
||
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"] | ||
docker_push_repository: ghcr.io/${{ github.repository }}/ | ||
|
||
optional: | ||
if: ${{ success() || failure() }} | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. This is intended to test "optional sage packages" |
||
needs: [maximal-pre] | ||
kwankyu marked this conversation as resolved.
Show resolved
Hide resolved
|
||
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() }} | ||
kwankyu marked this conversation as resolved.
Show resolved
Hide resolved
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. This is intended to test "experimental sage packages" |
||
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))' |
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -19,17 +19,10 @@ 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", | ||
|
@@ -50,18 +43,11 @@ on: | |
"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: | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. See the comment at L52. The main list is in There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I only changed the ci flows on purpose so that people trying to fix these other systems have an easy way to do this via tox/dev container. But I can completely remove them everywhere if you don't think that anyone will actively work on them. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Do you know that removing platforms from the CI workflow also removes the corresponding docker images?
You and I don't know who does and will work on what platforms. The default list of platforms tested in CI should be determined by what platforms we want to support. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Anything that's not documented (in Sage documentation) is subject to change without notice, and our documentation does not promise anyone a million docker images ready to use. Thus "you and I don't know how these images are used" is not an argument to preserve them. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I doubt whether you (and the author as well) ever read through https://doc-release--sagemath.netlify.app/html/en/developer/portability_testing. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
of course I read it, I used it, etc. Please don't give such dismissive mkoeppe-style responses. The concrete names of containers are mentioned there in examples. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Did you see this section: https://doc-release--sagemath.netlify.app/html/en/developer/portability_testing#using-our-pre-built-docker-images-published-on-ghcr-io ? That is the documentation of available docker images. The proper way to update the documentation is what I mentioned in the beginning of this thread: #39467 (comment) There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. it's pretty clear that it's a collection of semi- random docker images, some of them quite old, corresponding to rather random betas, etc. It's too ambitious to support even half of them, too much work that noone would be doing There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. There is the master list of the linux platforms we support in I don't care what you think (and the author as well) should be in the list. Just update it properly by In the same vein, removing "minimal" and "optional" and "maximal" jobs is not a proper way to fix CI Linux. We have to support sage-the-distribution, as in the documentation. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. There is value in having this table, even if the CI currently doesn't build new images for all listed configs. You clearly see the latest release it was working. Moreover, removing it from the tox.ini also removes the codespaces, which is the easiest way to actually work on these images. So if anyone want's to work on fixing the issues, then we should give people the tools to do so. This PR is not about removing support for a given system, just removing failing CI runs. |
||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
By the way what is this part supposed to do? As I read retrofit-worktree does
but I don't understand why. Your commit would make sense if you assume the retrofit-worktree always fail (but why would it?)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
retrofit-worktree is to perform "incremental build" from the previous stage.
The change here makes ""incremental build" broken, and thus also the whole point of the multi-stage docker builds.
By the way, I made changes to simplify the multi-stage docker builds in the other PR.