Recommendations for multi-platform builds, tests & deployments

17 views
Skip to first unread message

Joel Bodenmann

unread,
Nov 26, 2020, 4:46:28 AM11/26/20
to go-cd
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

Aravind SV

unread,
Nov 26, 2020, 6:45:14 AM11/26/20
to Joel Bodenmann, go-cd

Hello Joel,

I can’t speak to a typical C++ build in GoCD, but some of the questions you bring up have been tackled in this blog post series:

https://www.gocd.org/tags/modeling-deployment-pipelines.html

In particular, these two:

Also see:

There’s no correct answer for this, in my opinion. One thing I’d make sure to do is to keep most logic outside of the CD tool, and in scripts I control.

Regards,
Aravind

Joel Bodenmann

unread,
Nov 27, 2020, 8:53:48 AM11/27/20
to go-cd
Thank you for linking to your blog posts, Aravind. This has indeed been a good start to get a better understanding.

I will try to adapt this to my need, ask more question in separate conversations and eventually publish a small guide for C/C++ people as a starting point.


Best regards,
~ Joel
Reply all
Reply to author
Forward
0 new messages