How are people solving automated releasing/deployment

3 views
Skip to first unread message

strou...@gmail.com

unread,
Dec 17, 2009, 5:07:39 PM12/17/09
to The Java Posse
I have been wrestling with/procrastinating automating release
processes for the last year or so. I need to do a little play and
pray, but I thought I would see what some other folks are doing.

In my case, I have a bunch of web apps and some command line apps
which make up the environment (ok, there are native apps and db stuff
too). I have been using maven as the build tool for several years
now. My thought has always been to write some scripts that pull from
the ci server and manually install/deploy. Thoughts?

Are people doing deployments using maven? Are they doing deployments
out of their ci server? What about for command line apps? Are they
just writing scripts to pull the branch from the version control or ci
servers and run the maven deploy plugin? Or, is the majority using
custom deployment scripts? How are you specifying environments (dev,
stage, prod, etc)?

I would appreciate your thoughts,
LES

Kevin Wright

unread,
Dec 17, 2009, 5:21:00 PM12/17/09
to java...@googlegroups.com
My favourite approach is:

release version-numbered binary artefacts from the CI server
(have it tag the build in version control at the same time)
These are the artefacts that then go through the dev -> test -> stage -> prod process

That way you have full traceability of exactly what was released, all the way back to source


--

You received this message because you are subscribed to the Google Groups "The Java Posse" group.
To post to this group, send email to java...@googlegroups.com.
To unsubscribe from this group, send email to javaposse+...@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/javaposse?hl=en.





--
Kevin Wright

mail/google talk: kev.lee...@googlemail.com
wave: kev.lee...@googlewave.com
skype: kev.lee.wright
twitter: @thecoda

Alexey Zinger

unread,
Dec 17, 2009, 7:37:34 PM12/17/09
to java...@googlegroups.com
In my case, the environment at work is as follows:
  • app server: JBoss
  • RDBMS: Oracle
  • build tool: Ant
  • version control: CVS
I maintain a custom list of build notes.  Each staging build specified a CVS tag.  DB changes are somewhat rare, but when they happen, a custom patch script is submitted to our DBA's.  Deployment to development and staging servers is entirely through Ant build scripts.  Tagging CVS and maintaining build notes is manual.
 
Alexey
2001 Honda CBR600F4i (CCS)
2002 Suzuki Bandit 1200S
1992 Kawasaki EX500
http://azinger.blogspot.com
http://bsheet.sourceforge.net
http://wcollage.sourceforge.net



From: "pub...@lesstroud.com" <strou...@gmail.com>
To: The Java Posse <java...@googlegroups.com>
Sent: Thu, December 17, 2009 5:07:39 PM
Subject: [The Java Posse] How are people solving automated releasing/deployment
--

You received this message because you are subscribed to the Google Groups "The Java Posse" group.
To post to this group, send email to java...@googlegroups.com.
To unsubscribe from this group, send email to javaposse+unsub...@googlegroups.com.

Marcelo Fukushima

unread,
Dec 17, 2009, 10:47:59 PM12/17/09
to java...@googlegroups.com
where i work we use maven and its release plugin for the swing apps
and the webapps
we recently switched to using hudson for the release just because its
very easy.
For the release notes, we sync the versions with the JIRA versions and
generate the release notes from there (but the business guys often
have to write some more docs for our clients when a new release is
available and that is done manually)

> --
>
> You received this message because you are subscribed to the Google Groups "The Java Posse" group.
> To post to this group, send email to java...@googlegroups.com.

> To unsubscribe from this group, send email to javaposse+...@googlegroups.com.


> For more options, visit this group at http://groups.google.com/group/javaposse?hl=en.
>
>
>

--
http://mapsdev.blogspot.com/
Marcelo Takeshi Fukushima

Tony Childs

unread,
Dec 17, 2009, 6:32:53 PM12/17/09
to java...@googlegroups.com
I set up a Hudson CI instance and Nexus instance for my team a few months ago. The CI server pulls code from subversion, runs maven builds, and then deploys them to our maven repository (managed by Nexus).  Currently it's only auto-deploying to our snapshot repo.  Release deploys will be executed manually.  I find this approach a very easy way to modularize the development process for a team using Maven. I'm also looking into a way to deploy web apps (WAR target), to a running tomcat test server.  I believe there is a Hudson plugin for that, but I haven't gotten around to doing it yet.

carl

unread,
Dec 18, 2009, 12:35:10 AM12/18/09
to The Java Posse
We also use a Hudson instance to do all of our continuous building.
The whole company is getting on the bandwagon and we already have over
200 jobs of all sorts building all the time.

Hudson pulls source from a Perforce repository. Nearly all builds are
Ant based--all those that are Java are at least. Many are also using
Ivy for dependency management, and I/we are converting more all the
time. For the binary artifact repository we are using Artifactory, and
the Ivy tasks in the build publish snapshots directly to it. This is
mostly modules that contain libraries as jars, but also webapps as
wars, and other zip bundles of stand-alone Java apps. I still need to
automate the release step to allow Hudson+Human to easily publish
released modules to the repository.

We're also building RPMs using Hudson, and hopefully soon also DEBs,
and AMIs.

Christian Catchpole

unread,
Dec 18, 2009, 2:09:19 AM12/18/09
to The Java Posse
There is a really good lightning talk (by Steven Herod) on automated
deployment here..

http://www.youtube.com/watch?v=oHg5SJYRHA0

strou...@gmail.com

unread,
Dec 18, 2009, 2:38:45 AM12/18/09
to The Java Posse
Carl,
what are you using to do your rpm and ami builds? I'd be interested
to know what you come up with for the Hudson+Human. That's the
direction I am headed, too. I am thinking automated nightly release
to dev servers and manual/manually scheduled releases elsewhere. Maybe
a plugin for hudson will work. More than likely, I'll end up with a
shell script though. :)

strou...@gmail.com

unread,
Dec 18, 2009, 2:39:13 AM12/18/09
to The Java Posse
damn, you got me! :-P

On Dec 18, 2:09 am, Christian Catchpole <christ...@catchpole.net>
wrote:

Christian Catchpole

unread,
Dec 18, 2009, 2:50:28 AM12/18/09
to The Java Posse
Shhhhhhh!!!!

On Dec 18, 5:39 pm, "pub...@lesstroud.com" <stroud....@gmail.com>
wrote:

Casper Bang

unread,
Dec 18, 2009, 6:47:38 AM12/18/09
to The Java Posse
suckerCount++;

On Dec 18, 8:50 am, Christian Catchpole <christ...@catchpole.net>

Kevin Wright

unread,
Dec 18, 2009, 7:44:56 AM12/18/09
to java...@googlegroups.com


Maven2 can help cover this space as well :)
rpm, deb, msi, javadoc, source, etc... can all be released as "secondary" artefacts to a maven repository.

Once you're using maven at this level, you really need to be looking at an installation of nexus or artifactory.

The other route, if you're using OSGi, is to consider releasing to a bundle repository such as eclipse's P2 (Nexus pro can also help with this)


Either way, the same logic applies.  The ONLY binary artefacts that get deployed to dev/stage/prod/etc are those produced from CI builds.
I'd even go so far as to recommend continuous deployment to an environment for your Hudson builds
That way, everything can easily be kept in sync to avoid any nasty surprises

 
--

You received this message because you are subscribed to the Google Groups "The Java Posse" group.
To post to this group, send email to java...@googlegroups.com.
To unsubscribe from this group, send email to javaposse+...@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/javaposse?hl=en.


Reply all
Reply to author
Forward
0 new messages