Skip to content

Simplification of CI system #4066

@jhale

Description

@jhale

Describe new/missing feature

The CI has become a bit difficult to maintain and this is likely to increase as we move towards GPU support. I think it needs a cleanup/simplification.

Spack CI:

  • The Spack-based CI is harmonised into a single runner file, parameterised over base platform and dependency sets specified in multiple static Spack .yaml files, rather than being written as spack add commands.
  • Each Spack environment file would have a specific written reason for its existence in terms of covering a good set of build/testing combinations (this would be the first step, infact).
  • FEniCS components would still be built and tested using regular commands, not Spack.

For native CI:

  • Native macOS (Homebrew plus cached PETSc), Ubuntu (system packages, no PETSc) and Windows (vcpkg, no PETSc) would remain.

For Docker:

  • Docker-based CI is removed.
  • Hence, the gigantic images with all combinations of PETSc are removed.
  • Dockerfiles and images are simplified with the main goal to provide the best end-user experience for dolfinx:nightly and dolfinx:stable. This means using as many pre-built Ubuntu and pypi packages as possible, possibly even PETSc (we will see).
  • I would propose keeping the split between dev-env and dolfinx:nightly/stable - it's been useful for debugging with inexperienced users and reduces download times.

Some disadvantages:

Suggested user interface

Metadata

Metadata

Assignees

No one assigned

    Labels

    ciContinuous IntegrationenhancementNew feature or requestroadmapPart of the FEniCS Roadmap

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions