FWIW, gitlab-runner exec
and earthly exist for running tests locally, with others things like nektos/act for GHA as a 3rd party solution. I’ll never get used to yaml, though, all my pipelines are mostly shell scripts. Using a markup language as a programming language was definitely one of the decisions of all time.
That’s why earthly exists. Now you can run your pipeline on a container with a “familiar syntax” inside another container with a “familiar syntax” inside of a “reproducible, easy-to-use” VM provisioned on top of probably KVM, as Torvalds intended