-
Notifications
You must be signed in to change notification settings - Fork 0
Description
Copied from munich-quantum-toolkit/core #925
What's the problem this feature will solve?
Right now, our MLIR CI pipeline (https://github.com/munich-quantum-toolkit/core/blob/main/.github/workflows/ci_mlir.yml) is very barebones, as it only runs on Ubuntu and simply executes the tests.
Our typical CI (https://github.com/munich-quantum-toolkit/core/blob/main/.github/workflows/ci.yml with workflows defined here: https://github.com/munich-quantum-toolkit/workflows/tree/main/.github/workflows) is much more elaborate and reliable.
In the short time working on MLIR, this has already bitten us a couple of times, where Ubuntu would just be slightly more forgiving than macOS in certain aspects, and the code that would run just fine in CI would fail on macOS.
Furthermore, we currently do not track coverage for the MLIR part of the codebase, which creates a lot of uncertainty on how well the code base is tested.
Describe the solution you'd like
The goal of this issue is to set up a more complete CI pipeline for the MLIR subcomponent of MQT Core.
This involves (at least) setting up runners on
macos-13(x86, intel),macos-14(arm64),windows-latest.
Ideally, we could "just" tweak the existing CI workflows and cover all scenarios.
The main challenge in all of this is to get the MLIR/LLVM dependency installed with an appropriate version and, hopefully, without building it from scratch on CI runners.
From experience, an additional challenge to the installation itself can be the struggle to have the CMake build find the installed library on all the different operating systems.
In addition to the above and similar to our regular CI, a coverage collection run should be set up. I'd expect this to need some reading on best practices for that in the MLIR ecosystem. This will also need adjustments to the codecov setup (https://github.com/munich-quantum-toolkit/core/blob/main/.github/codecov.yml), where a new "MLIR" flag probably makes sense.