Note that there are some explanatory texts on larger screens.

plurals
  1. POAutomated Releases with Hudson+Ant+Subversion
    primarykey
    data
    text
    <p>We have recently spun up Hudson for continuous integration, and beginning to enjoy the benefits of automated test, static analysis, etc. Our next step is to get our cumbersome manual release process underway. What I envision is a two-phase process:</p> <ol> <li><p>Branch for a release line. Once our development line stabilizes, we'd like to branch. Because we have low-density, high-demand users, there is often a little flurry of activity following a formal release, resulting in a bit of stop-and-go-development at the beginning of a release line (and we don't want to block mainline development for this) so the practice of branching at a convenient time, and then allowing for a stabilization window (hours to a day or two) makes sense. (This is done in subversion; usually we tag the development release immediately before the branch, then branch, then carry on parallel development)</p></li> <li><p>Cut a release from the branch. This currently involves </p> <ol> <li>A bit of "fixup" to put release numbers where they belong.</li> <li>Checkin</li> <li>Tag</li> <li>Export</li> <li>Build</li> <li>A bit of "fixup" to return release numbers to "devel/snapshot".</li> <li>Checkin</li> </ol></li> </ol> <p>So to operationalize something like this in Hudson, cleanly, how can we:</p> <ul> <li><p>Execute a branch operation from Hudson that branches the tree, given a new release branch name, and spawns a new Hudson job to create a new continuous build line for that branch. (It's close to a copy of the existing -trunk configuration, but have to replace some workspace names and things...)</p></li> <li><p>Where does the logic belong to interact with Subversion? (Conceivably, could be in the ant script; could be a separate script; Hudson/plugins also seem to provide some of this logic?)</p></li> <li><p>Any thoughts on users/permissions for Hudson/subsidiary processes when it talks to the repo in write mode?</p></li> <li><p>How about phase two, the above questions also apply, can I just use the release plugin to automate logic like this?</p></li> </ul> <p>I have perused the Hudson and Release Plugin documentation, but it's rather spotty and there aren't a lot of worked examples laid out from end-to-end...</p> <p><strong>Edited to add:</strong> I understand and expected the "Have you considered Maven?" responses... I appreciate it, and I understand that Maven is probably the right long-term solution, but a build-system changeover along with all the sturm and drang of moving to Maven's precise constraints and educating the technical staff isn't feasible in the near-term. Presumably there's a way to do this with Ant and a little elbow grease...</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.
 

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