run your ci in docker containers so github actions is just a orchestrator

or try something like https://docs.dagger.io/use-cases#portable-ci