Note that there are some explanatory texts on larger screens.

plurals
  1. POWorkflow for continuous integration and automatic version stamping: .NET projects + CC.NET + SVN + MSBuild
    primarykey
    data
    text
    <p>I'm using SVN + CruiseControl.NET + MSBuild to build .NET projects. These are the technology specifics so that you understand the environment and my terminology, but the question is more general in nature.</p> <p>Right now, my CI workflow is pretty simple:</p> <ol> <li>CC.NET detects new revision to the project trunk detected in SVN</li> <li>CC.NET working copy is updated from SVN</li> <li>MSBuild is launched against a .proj file at the trunk</li> <li>Unit tests run</li> <li>If successful, project is copied/deployed</li> </ol> <p>At step 3, I would like to "stamp" the version number onto the build; in my case, in the AssemblyInfo.cs file, most likely using something like the AssemblyInfo task from msbuildtasks. As well, I would like to be able to repeat that build at that specific version number. Right now, I'm thinking that probably after step 4, I'll need to commit/tag back to SVN the project with the stamped AssemblyInfo.cs, but I'm having trouble thinking about the most straightforward way to do this.</p> <p>If I'm committing the project with the stamped AssemblyInfo.cs file back to the repository, it cannot be to the trunk since that will trigger another automated build: infinite loop. So, I would assume that it would need to go to a new tag. So then I would tag the revision, switch the working copy over to the tag, commit, then switch back to trunk. Is that the common way?</p> <p>Or am I over-complicating this? Should I even be worrying about committing this build back to the repo or just ZIPping up the built project and storing in a structured location in the file system?</p>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload