Project Management CI Question

Anything and everything that's related to OGRE or the wider graphics field that doesn't fit into the other forums.
Post Reply
nebulism
Gnoblar
Posts: 4
Joined: Fri Jan 07, 2022 5:05 pm

Project Management CI Question

Post by nebulism »

Hi All,

Just getting started with Ogre3D and I am excited about it. As I start folding it into my projects, I want to be able to continue my current CI pipelines as per the usual (Gitlab/local runners). My simple question is, how do folks tend to prefer running CI on their project when Ogre3D is involved. I've thought of several ideas and they have their pro's and con's:

(Note these projects are all C/C++ based built in a modern MSVC 2022 environment/Win 10).

1. Create a project in the solution that is for Ogre3D and rebuild as a dependency just like any other piece of code. Pros are this will be rather bulletproof and relatively easy to maintain. Cons are the increased footprint of the repo (not too bad, given only a few hundred megs) and the increased time on building (which isn't the biggest deal). Also, I'll have to take a few hours just getting the CI to behave with this part, but it's not a big issue.

2. Build Ogre3D (or use a pre-build from the website) and the bring in the appropriate headers and libraries into a support folder in the repo. This probably is not that big of an issue as I'm not doing multi-dev work on this project (private to just me), therefore I can deal with the occasional management of updating the libs as needed. Also not very pretty from a version control perspective.

3. Build Ogre3D and locally deploy outside. Then reference this local deployment via the build system's CI. Not really a fan of this method, just an idea.

So all in all, what do you folks like to do to maintain your project CI pipelines while using Ogre3D as a dependency in the project?

Thank you so much!
Nebulism
nebulism
Gnoblar
Posts: 4
Joined: Fri Jan 07, 2022 5:05 pm

Re: Project Management CI Question

Post by nebulism »

As a side note, I've been playing with the build system today and it is quite nice. So kudos for that!
User avatar
sercero
Bronze Sponsor
Bronze Sponsor
Posts: 275
Joined: Sun Jan 18, 2015 4:20 pm
Location: Buenos Aires, Argentina
x 87

Re: Project Management CI Question

Post by sercero »

I'm not using CI, but my bias would be for using 2. since in my case updating OGRE is not something that I do so often.

But on the other hand, perhaps that would be against the CI philosophy...
User avatar
dark_sylinc
OGRE Team Member
OGRE Team Member
Posts: 4830
Joined: Sat Jul 21, 2007 4:55 pm
Location: Buenos Aires, Argentina
x 1097
Contact:

Re: Project Management CI Question

Post by dark_sylinc »

CI works best if it follows the same approach you do for each intended platforms (or other supported approaches you don't do so your CI will automatically ensure they don't break)

So it's not about what's best, it's about what you want to detect (and what you can pay for, and what carbon footprint you're willing to accept).

One thing to note I see you're not considering is that CI solutions often have "artifact caching" which basically allows you to carry over the output of build A into new build B.

This can have its own side effects (i.e. Visual Studio not realizing it needs to rebuild a file) but it allows you to negate the downsides of some of these approaches
Post Reply