I have been tasked with updating the companies outdated build process. It is all done in batch and perl scripts. The current build process is:
- Schedule a build through a web interface.
- Build server takes the build process off the queue.
- Build server checks out all of the files from the TFS source control.
- Build server runs a couple of code injection scripts that modify the source before the build.
- Build server updates versions and signs the code.
- Build server uses visual studio to compile the projects.
- After that is finished the build server zips up the output and drops it in a network share location.
The real difficult part is the code injection scripts. They are 3 perl scripts that modify a lot of code. They are also very machine dependent in the way they were designed. (So I can't just drop them in the build process without a lot of modification)
My end goal is to be able to run the build process on local dev machines and also have CI running on the TFS server.
In my searching it seems that there is no way to emulate a TFS Build on a local machine. So is my only option to use pre-/post-build command line scripts in my cs.proj files? Or is there a better way to do complex builds on the local machine and run the same builds on the TFS?
I have seen Using TFS build definitions on a local machine, but that seems a bit hacky to me. I guess it wouldn't be a horrible solution if there isn't a better one.