ant-ivy-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Nicolas Lalevée <nicolas.lale...@anyware-tech.com>
Subject Re: Continuous integration and deciding whether to build
Date Fri, 29 Feb 2008 20:40:07 GMT

Le 29 févr. 08 à 20:24, Juha Ranta a écrit :

> Hello,
>
> As an introduction, I have an existing build system that I'm trying  
> to improve by using Ivy. I think Ivy is very cool, so big thanks for  
> it!
>
> I have a build server with projects checked out from CVS in one  
> directory like this:
>
> projectA/
> projectB/
> projectC/
> projectD/
> ....
>
> Each project has in its root directory a build.xml and ivy.xml which  
> also come from CVS.
>
> Each of these projects can build, tag, etc, itself and finally  
> publish its artifact to an Ivy repository independently without  
> directly referencing other projects. Now I'd like to implement a  
> simple script which polls CVS and builds automatically builds new  
> artifacts from projects which, well, need to be built. I can quite  
> easily get a list of these projects with the Ant task buildlist  
> sorted so that, for example, if A depends on B, B gets built and  
> published before A. During the buildlist processing, the script goes  
> through each of the projects to see if there are any changes in CVS  
> and if there are, the project gets built. This works fine except  
> that there are also the dynamic "latest.integration" revisions in  
> the ivy.xmls and the script doesn't know if some if the dynamic  
> revisions have changed by just polling CVS.
>
> I think that my script would work like I wanted it to if it would  
> trigger a new build if the project has changed in CVS since the last  
> build *or* if the dynamic revisions have changed. Therefore I'm now  
> wondering what's the best way to check whether the dynamic revisions  
> have changed. My script can get to the "static" ivy.xml of the  
> previous build. It perhaps would work if the script executed  
> "resolve", "delivered" a new static ivy.xml and then somehow diffed  
> the static dependencies of the previous static ivy.xml to the new  
> static ivy.xml to decide whether a new build should be triggered.
>
> Are the some easy ways to check if the dependencies of the latest  
> resolved ivy.xml differ from those of a previously resolved ivy.xml?  
> Or you think my approach is way off and that I should do it some  
> other way?


I have no answer but a question :)
It seems strange to me of having a dynamic revision that does not  
change between two builds. What is the rationale behind it ?

Nicolas


Mime
View raw message