Given the following scenario:
- About 10 different projects (all C/C++)
- Each project needs to be built on Linux (multiple distros), FreeBSD & Windows
- Some projects have optional tests
How would one design this in GoCD? My initial idea would be to create a template "Cross-Build", have one stage "Build" and in there jobs for each platform & compiler combination. I would then use that template for building each of the projects.
However, in that case my pipelines would rarely have more than one stage - the build stage.
Testing and creating installers would be separate pipelines then with dependencies to the upstream build stage of my "Cross-Build" pipeline.
Should I instead create one pipeline (template) per platform - or per compiler - or per platform+compiler combination and then have for each of my projects more/multiple pipelines to build?
Is this common practice? What is the recommended way?
Can somebody provide some information (maybe even screenshots/XML) for a typical C++ build system in GoCD?
Best regards,
~ Joel