I was thinking of having an ant task that computes build.id from svn
unless build.id is already set. Then presumably for a source distro,
we would set build.id in lps.properties, just like we set version and
release. Wouldn't that work?
On 2006-06-24, at 17:27 EDT, Benjamin Shine wrote:
> The ant tasks below are actually not in the build process anymore.
> In the current scheme, build metadata is determined in build-tools/
> nightly/nightly-go.sh, then passed in as a parameter to ant like so:
>
> ant -Dbuild.revision=${buildnum} -Dbuild.branch=${branch} -
> Dbuild.version=${lpsversion} etc..
> which figures out..
> <property name="path.tag" value="http://svn.openlaszlo.org/$
> {build.project}/builds/${build.name}" / >
>
> That invocation of ant calls the svn-make-tag target, which copies
> http://svn.openlaszlo.org/${build.project}/${build.branch}
> to ${path.tag}
>
> ...which is then checked out to ~/builds/${build.name}
>
> and then the *normal* $LPS_HOME/build.xml is finally invoked:
> <target name="do-linux-build" if="linux.do" depends="init">
> <ant dir="${tmp.dir}/${build.name}" target="${build.target}"
> inheritAll="false">
> <property name="LPS_HOME" value="${tmp.dir}/${build.name}" />
> <property name="ANT_HOME" value="${env.ANT_HOME}" />
> </ant>
> </target>
>
> Which is the long way of saying: No, the build.id that I create for
> nightly builds is not available at compile-time for the server.
>
> How about an ant task that goes into $LPS_HOME/build.xml that sets
> up a property named build.internalid... and then you access it with
> System.getProperty()? Our source distro needs to be able to build
> when there's no svn around. I *hate* it when source accesses
> environment variables; a few places where this happened made it a
> headache to run the builds as cron tasks, which have a very minimal
> environment.
>
> Is there a java api for svn? Errg. Just what we need.
>
> On Jun 24, 2006, at 1:40 PM, P T Withington wrote:
>
>> So you are actually setting build.id? Given svn's ability to
>> output to an xml file, I'm tempted to just use that directly in
>> server/LPS.java to create the build information for the canvas.
>>
>> On 2006-06-24, at 15:28 EDT, Benjamin Shine wrote:
>>
>>>
>>> On Jun 24, 2006, at 11:03 AM, P T Withington wrote:
>>>
>>>> That sounds like exactly what I want. How can I get that value
>>>> into build.id from ant? Is there an ant task that will run
>>>> shell commands?
>>>
>>> I was doing this in the nightly build's build.xml for a while,
>>> but I switched to doing it in bash because I needed to be able to
>>> dictate the rev number from a script, not just use whatever the
>>> HEAD is. But something like this will do what you want. You will
>>> need subversion 1.3.1 -- that is the first client which supports
>>> svn info --xml. Also, it would be a good idea to remove the
>>> repository.xml file after you get what you need from it.
>>>
>>> <target name="get-rev-number" unless="done.get-rev-number">
>>> <sequential>
>>> <!-- Get the current repository information -->
>>> <exec executable="svn" output="repository-info.xml">
>>> <arg value="info" />
>>> <arg value="--xml" />
>>> <arg value="http://svn.openlaszlo.org/$
>>> {build.project}/${build.branch}" />
>>> </exec>
>>> <property name="done.get-rev-number" value="true" />
>>> </sequential>
>>> </target>
>>>
>>> <target name="setup-names" depends="get-rev-number"
>>> unless="done.setup-names">
>>> <!-- Load repository information into properties -->
>>> <xmlproperty file="repository-info.xml"/>
>>> <property name="revision" value="${info.entry(revision)}" />
>>> <property name="build.name"
>>> value="build-${info.entry(path)}-${revision}" />
>>> <property name="path.tag"
>>> value="http://svn.openlaszlo.org/${build.project}/
>>> builds/${build.name}" />
>>>
>>> <!-- print a lot of diagnostic information -->
>>> <echo message="revision is ${revision}" />
>>> <echo message="build.name is ${build.name}" />
>>> <echo message="path.tag is ${path.tag}" />
>>>
>>> <property name="done.setup-names" value="true" />
>>> </target>
>>>
>>>
>>>>
>>>> I like your metadata idea. I suppose what you really want to
>>>> know is if there are un-checked-in changes in the tree, but that
>>>> would be too slow in svn.
>>>
>>> I think checking for local changes doesn't require network
>>> access. It *shouldn't* at least. Aha:
>>> "With no args, print only locally modified items (no network
>>> access)."
>>> So the slowness comes from our gigantor tree. It could be fast if
>>> you list the top-level directories you actually care about...
>>>
>>> svn status lps WEB-INF| sed -e /.lzl$/d -e/.class$/d >
>>> localchanges.txt
>>>
>>> then do something creative with localchanges.txt to make it
>>> visible in the canvas...
>>> I'm liking this. Go Tucker!
>>>
>>>
>>> benjamin shine
>>> software engineer
>>> [EMAIL PROTECTED]
>>>
>>>
>>>
>>
>
> benjamin shine
> software engineer
> [EMAIL PROTECTED]
>
>
>
_______________________________________________
Laszlo-dev mailing list
[email protected]
http://www.openlaszlo.org/mailman/listinfo/laszlo-dev