Cross platform CI advice

I’m running a CI pipeline on Mac but I’m now trying to configure the .gitlab-ci.yml to support stages that would be handled by a Windows-based gitlab runner.
I seem to run into a ton of issues with things like environment variables ($ENV vs %ENV%) and bash commands (printenv) when using a pwsh gitlab runner.
Is there a way to configure a gitlab-runner on Windows that can parse and handle bash syntax and linux commands?
I have had no luck with commands like gitlab-runner exec shell bash test-stage. But it does not seem to run it in bash, even though i have it installed.

Any advice would be super appreciated. Thanks!