As part of your pipeline, you may need to perform browser testing across different platforms/environments. To minimize testing time, it's best to use a consistent shell scripting language across platforms.
One solution is to use the bash shell on Windows with the shell executor, which you can implement by following this guide: https://gitlab.com/gitlab-org/gitlab-runner/-/merge_requests/3503. Alternatively, you can use pwsh across all platforms.
If you plan to use the docker-windows executor, you'll need a GitLab helper container image with bash support. You can create one for yourself by following this guide: https://gitlab.com/gitlab-org/gitlab-runner/-/merge_requests/3779.
For building the application image, consider using the windowscore or windowsserver (for GUI applications) base image. To manage and install applications, use choco.
FROM mcr.microsoft.com/powershell:lts-windowsserver-ltsc2022
ARGS CHROME_VERSION=108.0.5359.99
RUN choco install -y google-chrome-stable --version $Env:CHROME_VERSION