Hi,

I am currently in search of a modern CI/CD system that can use e.g. vagrant 
to isolate the build machines. I would first like to describe what I mean 
by this and then would try to come up with an idea how that could be done 
in go.cd. 
Maybe there are people who have done something similar and can chip in and 
give some insights if it is feasible in go.cd.

Currently I need to compile a program with Visual Studio msvc and therefore 
I need a build machine (agent) which runs under windows. To now isolate and 
make this build environment reproducible I would like to create a script 
which can generate a vagrant box using a base windows image, install msvc 
and some dependencies and freeze this box.
After that I would like to use go.cd to spawn for each job it executes a 
fresh vagrant box.

Unfortunately it seems go.cd does not provide such a mechanism. So for now 
my idea is the following. Create a vagrant box containing windows, msvc 
etc. the go.cd build agent and the settings for autoregister.
On my big build machine I would then run a script which creates in a loop 
new vagrant instances up to a certain amount and deletes vagrant instances 
that have been shut down. This would allow me to always have a couple of 
build agents ready to process new jobs.
To now be fully reproducible I need to make sure that after a job execution 
in a vagrant box the box is not used a second time. For this I would add to 
any job a final task which shuts the vagrant box down.

Does this sound like a reasonable approach? My biggest gripe with it is 
that I have to add a shutdown task at the end of every job. I would rather 
like to have this setting as part of the build agent. Any idea how I could 
do that?
I would also rather like to have a plugin in go.cd which does the spawning 
of new vagrant boxes on a build agent directly without a custom script.

Any ideas and pointers how to achieve something like this would be great. 
And also if someone wants to works on this idea which me and mentor me 
creating a solution in this direction.

Kind regards,
Fabian

-- 
You received this message because you are subscribed to the Google Groups 
"go-cd" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to