I can't take any credit for the actual work, but I did help in two ways:
- I started a wiki page to help people learn how to test it while it's under development.
- I set up my home machine to rebuild SmartOS regularly when there are new commits.
The latter evolved over time. At first I was just blindly rebuilding 90 minutes after the previous build had completed, but now I'm using a somewhat clever hack using a feature of git to do builds more intelligently.
In my build zone I have a separate delegated filesystem where I do builds, and a second, extra checkout of illumos joyent. Inside that extra checkout is where I have my hack:
[root@smartos-build ~/illumos-joyent]# cat .git/hooks/post-merge #!/bin/bash -x FILESYSTEM=zones/smartos-build/data/ws/smartos-live SNAPNAME=$(zfs list -t snapshot -Ho name -r $FILESYSTEM | tail -n 1) zfs rollback $SNAPNAME cd $(zfs list -Ho mountpoint $FILESYSTEM) gmake update zfs snapshot $FILESYSTEM@$(TZ=UTC date "+%Y%m%dT%H%M%SZ") time gmake world live mput -m -c 1 -f output/platform*.tgz \~\~/public/smartos/platform-hourly.tgz ./tools/build_iso mput -m -c 1 -f output-iso/platform*.iso \~\~/public/smartos/platform-hourly.iso /usr/bin/sum -x md5 output-iso/platform-*.iso output/platform*.tgz | sed 's|-[0-9][0-9TZ]*|-hourly|;s|[^ ]*/||' | mput -H 'content-type: text/plain' \~\~/public/smartos/md5sums.txt mput -H 'content-type: text/plain' \~\~/public/smartos/platform-hourly-gitstatus.json -m -f output/platform-*/i86pc/amd64/boot_archive.gitstatus cd -
In a screen session in a shell where I have my Manta SSH key available from an SSH agent, I simply run:
while true; do sleep 3600; git pull; done;
After a build finishes, check hourly for new commits and if there's anything new, the post-merge hook kicks off the next build. Otherwise, just sleep for another hour and check again.
Of course, Joyent runs a proper CI server that rebuilds SDC for every commit. At some point I'm hoping to figure out how to run a SmartOS machine off the SDC platform image so that I can stop doing my own builds. If I do, you'll probably read about it here.
Go kick the tires on the lx brand! I heard on IRC that someone managed to get XFCE running (I assume in a VNC server or with X forwarding or something....)