Return-Path: Delivered-To: apmail-ant-user-archive@www.apache.org Received: (qmail 56504 invoked from network); 4 Nov 2010 17:53:07 -0000 Received: from unknown (HELO mail.apache.org) (140.211.11.3) by 140.211.11.9 with SMTP; 4 Nov 2010 17:53:07 -0000 Received: (qmail 12519 invoked by uid 500); 4 Nov 2010 17:53:38 -0000 Delivered-To: apmail-ant-user-archive@ant.apache.org Received: (qmail 12463 invoked by uid 500); 4 Nov 2010 17:53:37 -0000 Mailing-List: contact user-help@ant.apache.org; run by ezmlm Precedence: bulk List-Unsubscribe: List-Help: List-Post: List-Id: "Ant Users List" Reply-To: "Ant Users List" Delivered-To: mailing list user@ant.apache.org Received: (qmail 12455 invoked by uid 99); 4 Nov 2010 17:53:37 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 04 Nov 2010 17:53:37 +0000 X-ASF-Spam-Status: No, hits=0.0 required=10.0 tests=FREEMAIL_FROM,RCVD_IN_DNSWL_NONE,SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (nike.apache.org: domain of antoine@gmx.de designates 213.165.64.23 as permitted sender) Received: from [213.165.64.23] (HELO mail.gmx.net) (213.165.64.23) by apache.org (qpsmtpd/0.29) with SMTP; Thu, 04 Nov 2010 17:53:29 +0000 Received: (qmail invoked by alias); 04 Nov 2010 17:53:08 -0000 Received: from unknown (EHLO antoine-levy-lamberts-macbook.local) [38.101.196.246] by mail.gmx.net (mp055) with SMTP; 04 Nov 2010 18:53:08 +0100 X-Authenticated: #22961642 X-Provags-ID: V01U2FsdGVkX1+Ua0RPs+mUi0xj7FB7nZk0I8vJzzD2rPBgMOMQfj ogbcOFu3ePEPLr Message-ID: <4CD2F2FE.6020303@gmx.de> Date: Thu, 04 Nov 2010 13:53:02 -0400 From: Antoine Levy Lambert User-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.6; en-US; rv:1.9.2.12) Gecko/20101027 Thunderbird/3.1.6 MIME-Version: 1.0 To: Ant Users List Subject: Re: svnant - deploying from Subversion References: <51772743BEA5D44A9EA5BF52AADDD6FB01199071@hammai008.delphi.local> In-Reply-To: <51772743BEA5D44A9EA5BF52AADDD6FB01199071@hammai008.delphi.local> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Y-GMX-Trusted: 0 X-Virus-Checked: Checked by ClamAV on apache.org Hello Michael, I would personnally not want to deploy the webapp directly from subversion, although this can certainly work. I would rather setup a build process and continuous integration and create a zip file or a war file from the sources in subversion. You would need to use a continuous integration server (CruiseControl, Hudson, ...) and a repository to store the various versions of your war or zip file. Ideally your web application should load the environment (server) dependent data from property files. On my project we are generating the environment dependent property files from data stored in a LDAP server. We have a custom schema with the property keys defined as attributes, and we create one entry (or one subtree) for each environment. The script which generates the properties for one given environment uses property files templates and replaces the tokens in these templates with the values contained in LDAP. Regards, Antoine On 11/4/10 11:45 AM, Ludwig, Michael wrote: > Our web app source code is stored in Subversion. It's not Java, it's a script app. It needs to be deployed to various servers, and some configuration data needs to be taken into account. > > There is no automation at the moment, but I'm about to change that. I'm presently cobbling together a script to build patches for existing installations using the SvnAnt interface to Subversion. Looks like it's got everything I need. > > http://subclipse.tigris.org/svnant.html > > I prefer patches because the entirety of the files in the site is simply too large. > > I think it's not too difficult to come up with a working concept of how state can be determined and steps taken accordingly. State and steps? Well, let's say LIVE has a certain version of the software deployed, which is basically a tag in SVN. In order to bring it up to date, some rather trivial steps need to be performed, basically copy and delete, really not much more in our case. > > I think my script just needs to know the pattern of the tag for a live version, then find the most recent one (a tag containing a timestamp or something else that is sortable), then determine the files that have been changed with respect to that tag, and also the deleted files, then copy the updated files to the server, delete the deleted files on the server, and perform any build action that might be required. > > Once I've made sure everything is deployed (maybe some checksumming), I can set the new tag in the repository. Or rather, set the new tag beforehand, and then delete it if the deployment goes wrong for some reason. > > Any thoughts on such a process you might want to share? Thanks! --------------------------------------------------------------------- To unsubscribe, e-mail: user-unsubscribe@ant.apache.org For additional commands, e-mail: user-help@ant.apache.org