considering how similar many CI providers are in terms of how you write your tests, I would say that this is either very achievable or not that worth it.
you already can do a lot by writing a bunch of scripts that will be executed on a CI, and just fiddle with differences in like metadata/artifact/how you declare your containers.
and while you are there, you can generate the code CI definitions for more than one CI provider (think of it like "multi-cloud" but for CI approach.