mirage / xen-arm-builder

Archived - the Xen and ARM support in MirageOS has been superseeded by our PVH support - Build an SDcard image for Xen/ARM, for a Cubieboard
ISC License
57 stars 36 forks source link

Testing xen-arm-builder automatically #62

Open lcdunstan opened 8 years ago

lcdunstan commented 8 years ago

I imagine that the current way that PRs for this project are tested is:

My proposal for automating this would be:

But do you consider xen-arm-builder to be important enough to warrant setting this up?

I've done some experiments including:

So, is this worthwhile?

lcdunstan commented 8 years ago

Here's a log of the build: https://jenkins-lukedunstan.rhcloud.com/job/xen-arm-builder_external/1/console

Here's a log of a script that writes the image to the sdcard and then boots it: https://jenkins-lukedunstan.rhcloud.com/job/load-image_external/4/console

(Jenkins is only used as a place to store log files)

mor1 commented 7 years ago

Hi @infidel; As it happens, after the refresh we're starting to look at automating more of the build infrastructure to support better testing, including looking again at some of our local machine room infrastructure. Is this something you managed to push any further on in the meantime? It would be great to get something setup to test like this!

lcdunstan commented 7 years ago

I didn't spend much more time on it but it did work. Some shell scripts are at https://github.com/infidel/cubiebuild (jenkins-ssh.sh is the entry point) but it could potentially be much simpler, because the manner in which I used Jenkins is not normal, and the reason for that is because I was using a cubieboard2 as the build machine, installing the resulting image on a second cubieboard2.

It would be simpler to just have a proper server do the build and then have a serial device server (aka terminal server) to control the serial console of the target board, plus another network relay device to control the target power.

The basic concept is the same as what I did though: build an image file, power off the target board, power it on, send serial console commands to U-Boot to load the newly built kernel into RAM, then use tftp ... | dd ... to download the full image to SD card, then power cycle to boot it. The main missing piece is to run tests to verify that the new image is fully working.