BlueBrain / nmodl

Code Generation Framework For NEURON MODeling Language
https://bluebrain.github.io/nmodl/
Apache License 2.0
53 stars 15 forks source link

Review current CIs and their runtimes #1191

Open pramodk opened 7 months ago

pramodk commented 7 months ago

As part of this ticket, we should:

1uc commented 7 months ago

We know that if the generated C++ files don't change we don't need to run expensive integration tests. If we could collect a resonably large collection of MOD files we could probably detect change reasonably reliable. Difficulty: figuring out which combination of flags to check; and how to get a reference version of NMODL to generate references reliably.

Additionally, we could have means to opt-in to full CI, if we suspect something might be happening, despite none of the C++ (for coreneuron) changing.

If we manage to run the checks before building NEURON, we'd be able to cut various CI to about 7 minutes.

Finally, we probably remove sonar cloud because it just too slow; and I'm not sure anyone looks at the reports since no link is published. I've seen clang-tidy integration in CMake is quite mature, maybe that's a good replacement or we remove it because it's not useful if we don't make use of it.

JCGoran commented 7 months ago

While we're on the topic of CI: we're currently using Azure to build wheels for various platforms. Unfortunately, as of time of writing, Azure doesn't have arm64 MacOS runners (see https://github.com/actions/runner-images/issues/8971), so we can't build MacOS wheels for arm64.

As there is no ETA on when those runners will be available on Azure, and I imagine the number of users having that particular arch/OS combo will only increase over time (with respect to MacOS users on x86_64), I would propose we move all wheel-building CI pipelines to GitHub Actions, where we can already build arm64 wheels on MacOS 14 runners (as well as x86_64 wheels on Ubuntu, MacOS 13, and, possibly in the future when we implement #1112, Windows).