The only lockin here is convenience, garnix builds the existing outputs from your flake.nix, and there are already self hosted options which work the same way.
Not nearly as bad as writing a bunch of custom github actions or travis CI yaml files and needing to move.
You can replicate garnix's checks with much worse UX and less parallelism on any other service with a few lines of shell calling `nix flake check` and `nix build`. Making the UX good is left as an exercise for the reader.