Option for "Compact" check out directory (Shell Executor)
Description
Include problem, use cases, benefits, and/or goals
We have a runner, on Windows, to build .NET Projects using MSBuild, using a "shell" executor. The project is checked out to a folder with structure <working-directory>/builds/<short-token>/<concurrent-id>/<namespace>/<project-name>. Sadly, due to our organization especially of the namespaces, these paths get pretty long (~ 60 characters). As a consequence MSBuild hits its 260 long path limit while building.
Currently, we modify our projects to use shorter paths and move the bin / obj folders somewhere higher up te hierarchy, but that's not the default behavior so it's inconvenient for the developers.
We haven't found a way to influence the location of the check-out folder with the existing configuration options.
Proposal
It would be nice to either have some way to control the format of the build folder or an option to use a "compact" build folder.
For example: <working-directory>/builds/<short-token>/<concurrent-id>/<short-hash-of-namespace-and-project-name>. This way we have a shorter working path, so that we have less limitations for folder names in the project itself.
Links to related issues and merge requests / references
Please paste a link of the related issues or/and merge requests
Here's the documentation of how the path is built using the shell executor: https://docs.gitlab.com/runner/executors/shell.html