[V3dot10] Prototyping an autobuild system

Keith Hodges keith_hodges at yahoo.co.uk
Wed Jan 17 02:20:02 UTC 2007

Dear friends,

this is quite a challenge and lots of ideas have been running around in 
my head. This is what I have come up with so far. Any further ideas or 
feedback would be most useful. Is this anything close to what we are 
looking for?

a. A script runs periodically to check an rss feed to see if any pages 
have changed. It only looks at the first 150 lines or so to obtain the 
most recent changes rather than wasting time parsing the whole lot. 
(alternatives, check a mailbox file, or run a smail script on receipt of 
email - I think that the rss solution is the most generic)

b. the script picks and logs the first page whose change date is more 
modern than the last page the script processed. It records the change 
date in a file.

[ for a far too clever possibility, the change date file can easily be 
on an ftp server common to lots of these scripts running on several 
machines, a build farm! For an even more interesting possibility the log 
file can also be on a shared ftp server (performance?) ]

c. at this point we have a page to process...

We look for a page <pageName__build_script>
In a directory of the same name as the page, we run the script embedded 
in the page using markers <code build> ... </code build>.

d. To run this script we will need a secure chroot jail on the server. 
If there is no jail available then default to a known script on our 
server. I will attempt the "known script" version first. Given that the 
security risk is still there, it would be better to get the jail set up 
and use this method.

e. the script runs, it requests a starting image, then it runs squeak, 
generating files as the main output. - when squeak is launched we need 
to record the pid, and to be able to know if it has completed or failed.

f. when the script completes the resulting files, and images are moved 
to suitable destinations to be of use to users. For example after a test 
run, the resulting test image will have the TestRunner open displaying 
all errors and failures ready for debugging.

There you go, that's the concept.

I have begun my prototype in ruby, there is a utility in ruby called 
rio, which can treat local files similarly to remote files. Hence my 
comments about the farm possibilities earlier.

any thoughts, cos my brain hurts

best regards


All New Yahoo! Mail – Tired of Vi at gr@! come-ons? Let our SpamGuard protect you. http://uk.docs.yahoo.com/nowyoucan.html

More information about the V3dot10 mailing list