We build and test on the following platforms:
Read more about installation, setup and maintenance under Platforms & HSMs.
SURFnet has provided us with virtual machines in a VMware Infrastructure site that are used for testing.
Primary administrator for the VMs is Jerry Lundström.
Contact at SURFnet is Roland M. van Rijswijk.
Jenkins is used for distributed building and testing on the different platforms.
Jenkins jobs are grouped per branch in tabs for easy access.
The master jenkins server is hosted by John Dickinson at Sinodun, this provides the web interface and management of all the jobs.
You can access the Jenkins web site here https://jenkins.opendnssec.org/.
The test dashboard and results are available for anyone to view. However, in order to perform more advanced tasks, like configuring existing or new jobs users will need an account. Contact John Dickinson (jad at sinodun.com on email or jabber) to get an account set up.
Building and testing is split into a couple of different categories.
Smoke runs are meant to be executed on source code change and run as often as possible so the build and test stage need to be very fast in execution time.
SVN is polled for change 7 days a week between 06:00 and 01:00 GMT every 10 minutes, different groups (branches) of jobs are spaced apart with 1 minute and may overlap. The jobs executed are build-<tag> and test-<tag>.
|Only the change is checked out and only the change is built.|
Daily runs, as they are called, runs daily and have a time slot of a few hours. They can include more heavy tests that can take longer to run.
Daily runs are executed Tuesday to Sunday at 02:00 GMT, different groups (branches) are not spaced apart and the jobs executed are test-daily-<tag>.
Weekly runs runs weekly and is a combination of Smoke and Daily runs that is lead by a clean up job so that the Smoke and Daily runs on newly checked out code and all jobs will be rebuilt from scratch.
Weekly runs are executed on Monday at 02:00 GMT, different groups (branches) are not spaced apart and the jobs executed are test-weekly-<tag>.
The framework is a bundle of shell script (bash) functions that sets up an environment per branch for building and testing.
The framework (lib.sh) is included in each branch and will have to be maintained between branches.
Read more about the framework under Framework (lib.sh).
We build ldns, SoftHSM and OpenDNSSEC, for all other libraries that the software depend on we use the distribution provided libraries to make sure the software works with the distribution.
Ldns is not part of the OpenDNSSEC project but it is vital to OpenDNSSEC so we don't use the distribution provided libraries for that.
We build trunk and each branch per Release Process. You can find examples and templates under Build jobs and information about the framework functions under Framework (lib.sh).
All builds should be done without root access.
If the current build object supports 'make check' / 'make test' we run that in the build process before installing the object other tests are located here in the test phase and these tests are mostly System Tests and/or System Integration Tests.
You can find examples and templates under Test jobs and developing tests and information about the framework functions under Framework (lib.sh).
All test should be done without root access.
All files related to building and testing are kept inside each branch in the directory testing.
All file names must be lower case, build scripts start with build-what.sh, tests scripts start with test-what.sh. Examples below: