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