-
Notifications
You must be signed in to change notification settings - Fork 134
Description
I think the CI setup could be simplified in a lot of ways and I would like to get some input on what you think would be desirable.
1. Removing the docker containers from the CI
Instead of using this bespoke contraption of testing-{stable,develop} docker containers, we could instead switch to a more standard setup with e.g. the micromamba setup action: https://github.com/mamba-org/setup-micromamba.
My understanding is that we have the docker containers mainly because then we don't have to reinstall the mamba environment with every test run. The micromamba action can do the same by caching the environment in GitHub's caching mechanism, which could potentially be even faster than the docker approach (because it is directly a part of the GitHub Actions offering).
If we dropped container usage from the CI this would also open up a (hopefully easy) path to testing on the macos and windows runners (those do not support the container: options, AFAIK) as well, without much difference in the actions themselves.
This change would entail removing the localbuild directory (for which I don't see a point anyway, conda packaging matters should happen in mss-feedstock) and instead having a more standard environment.yml file.
2. Drop the testing-stable.yml and testing-develop.yml files
It should be possible to declare the given on: options in testing.yml directly and drop the reusable workflow usage that is there right now.
3. Move the scheduled tests into the mss-feedstock repository
The purpose of the scheduled tests is to check that the package as it gets installed with mamba at that moment still works. AFAICT the scheduled tests in this repository do not actually do this properly, e.g. they always use the test suite from develop instead of the released package.
I think this workflow should instead be part of the mss-feedstock repository and it should open issues there, since it is a packaging matter if the published package in conda-forge suddenly breaks.
We could still have a scheduled test in this repository though, but just to prime the environment cache described in 1. every time that it expires. This would, again, just be another on: clause in testing.yml.
4. Unify testing.yml and testing_gsoc.yml
Those two workflows have a lot in common and I think they don't have to be separate files.
@ReimarBauer I would like to get some input on this before I start to change anything in this regard.