Hakan Kuecuekyilmaz <hakan@askmonty.org> writes:
Kristian,
I have now a rough idea on how to run our make distcheck test.
What I need is a howto about adding tests to buildbot.
In Pushbuild times, BUILD/compile-dist && make dist was run prior to all other tests. The machines connected to Pushbuild would pull the .tar.gz archive to start their tests. I think, we don't really need that, but we need to test make distcheck is working.
Yes, Pushbuild had one job than ran and produced a source .tar.gz from `make dist`. And this was uploaded to most other build slaves as the basis for their builds. The good point about this approach is that it tests the actual sources that we are releasing, and forgettting to add some file to the list of what goes into the source tarball is a very common mistake. It also allows to test that the source can be built without having autotools, bison, etc. installed. The problem with out buildbot setup is that our slaves are too poorly connected network wise. I fear constantly up- and downloading source tarballs would overload internet connections. It could work well for machines on the same LAN as the Buildbot master though. However, we could do something simpler, something like this: BUILD/autorun.sh && make -j4 dist find . -maxdepth 1 \( -name 'mysql-*.tar.gz -prune -o -print0) | xargs -0 rm -Rf gzip -dc mysql-*.tar.gz | tar xf - (cd mysql-* && ./configure <options> && make -j4) (cd mysql-*/mysql-test && perl mysql-test-run.pl <options>) This does not catch if the build process starts depending on autotools or bison, but otherwise should work ok I think. A seperate test would be to just run `make distcheck` and check that it does not fail. This is a somewhat different test, it does not test that the resulting binary works, but it does do some extra checks (like that `make clean` works correctly). So either or both of these would be good to have. I believe Buildbot also has support for one build producing the source tarball with `make dist`, and once this is done triggering other builds to run from this. So if you want to do this it should be possible, but as you say we probably don't really need that at this point. As to a howto: - Find build slaves to run this on. - All of this can be configured just by setting up builders in the Buildbot master config file and adding appropriate buildsteps. - https://internal.askmonty.org/internal/index.php/BuildbotSetup has documentation on the setup and configuration of our Buildbot master. - /etc/buildbot/maria-master.cfg on hasky is the master config file, you can study it to see how the existing setup works. - http://djmitche.github.com/buildbot/docs/0.7.11/ is the Buildbot manual with detailed description of how the config file works. Hopefully that should get you started; feel free to ask any specific questions that may pop up. - Kristian.