| Since we have fairly large perforce syncs (upwards of 400GB), we design our system to ensure that different jobs running on the same node will use the same workspace. As a concrete example, I would have 2 jobs: CodeBuild.PlatformA and CodeBuild.PlatformB, building on a pool of N machines with some label. We set the custom workspace of both jobs to the same path (and their p4 client names to the same as well) so that we only have to incrementally sync source between runs of PlatformA and PlatformB. Without custom workspaces, we either have to allocate syncs for each job (in reality, this gets to upwards of 80 jobs per branch) or sync clean every time. As a secondary point, with longer job names we have also run into path length issues when using the default workspace path. However, the above use case is definitely the primary motivation. |