Myself and my group are horrendous at incrementing assembly version numbers and we frequently ship assemblies with 1.0.0.0 versions. Obviously, this causes a lot of headaches.
We're getting a lot better with our practices via our CI platform and I'd really like to set it up to auto increment the values within the assemblyinfo.cs
file so that the versions of our assemblies are auto updated with the code changes in that assembly.
I had previously setup (before we found Hudson) a way to increment the value through either msbuild
or the command line (can't remember), but with Hudson, that will update the SVN repository and trigger ANOTHER build. That would result in a slow infinite loop as Hudson polls SVN every hour.
Is having Hudson increment the version number a bad idea? What would be an alternative way to do it?
Ideally, my criteria for a solution would be one that:
- Increments the build number in
assemblyinfo.cs
before a build - Only increments the build number in assemblies that have changed. This may not be possible as Hudson wipes out the project folder every time it does a build
- Commits the changed assemblyinfo.cs into the code repository (currently VisualSVN)
- Does not cause Hudson to trigger a new build the next time it scans for changes
Working this out in my head, I could easily come up with a solution to most of this through batch files / commands, but all of my ideas would cause Hudson to trigger a new build the next time it scans. I'm not looking for someone to do everything for me, just point me in the right direction, maybe a technique to get Hudson to ignore certain SVN commits, etc.
Everything I've found so far is just an article explaining how to get the version number automatically incremented, nothing takes into account a CI platform that could be spun into an infinite loop.