Skip to content

Simplification of CI system #4066

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

    Fields

    No fields configured for issues without a type.

    Projects

    Status
    Todo

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions