ali0sha has asked for the wisdom of the Perl Monks concerning the following question:
Hiya,
I have a project at work for which I'd like to get a continuous integration pipeline set up. As far as I can tell, the ideal CI scenario is:
The issue I have centres around prerequisites: as with all things, CPAN isn't perfect, and I need specific combinations of modules installed in a specific order (this one 0.2.5 or below, this other one 6.2 or above IF this third one has gone beyond 1.3) and some of them don't build at all on windows until I've messed around with some environment variables. Even in an ideal world, it would take 2 hours to compile all of them from CPAN.
In light of this, I currently have one VM which has the prerequisites installed, and if I need to update my module's prereqs, I have to log into that VM and ensure everything works properly. How do I avoid this sort of pain, and potentially scale out to multiple agents? Do I set up a local PPM server to cache successful builds, then set up my prereqs out of that? Do I attempt to fix the upstream modules I'm having trouble with, and suck up the 2 hours of compilation? Is it even desirable to ensure a build 'from scratch' works all the time?
|
---|