Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migrated to Confluence 5.3

Table of Contents

Platforms

We build and test on the following platforms:

  • Debian 6.0.3 amd64
  • Ubuntu Server 10.04.3 amd64
  • Ubuntu Server 10.04.3 i386
  • Red Hat Enterprise Linux 6.2 amd64
  • CentOS 6.2 amd64
  • CentOS 6.2 i386
  • Scientific Linux 6.1 amd64
  • OpenSUSE 12.1 amd64
  • OpenSUSE 12.1 i386
  • Solaris 11 11/11
  • FreeBSD 9 amd64
  • FreeBSD 9 i386
  • OpenBSD 5.0 amd64
  • NetBSD 5.1 amd64
  • SUSE Linux Enterprise Server SP2 amd64

Read more about installation, setup and maintenance under Platforms & HSMs.

Buildfarm

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

Jenkins is used for distributed building and testing on the different platforms.

Jenkins jobs are grouped per branch in tabs for easy access.

Jenkins master server

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/.

User Accounts

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.

Build schedule

Building and testing is split into a couple of different categories.

Smoke runs

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>.

Info
Only the change is checked out and only the change is built.

Daily runs

Daily runs, as they are called, run 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 daily from 04:00 GMT:

  • 04:00 - trunk/trunk-mysql
  • 05:00 - 1.3/1.3-mysql
  • (06:00 - enforcer-ng NOTE: NOT SET UP YET)

The jobs executed are test-daily-<tag>.

Weekly runs

Weekly runs run on a weekly basis and is lead by a clean up job which then triggers a full build.

Info

Therefore the following Smoke and Daily runs happen on newly checked out code and all build and test jobs will be rebuilt from scratch.

 (A further test-weekly-<tag> job may be added in future to these runs.)

Weekly runs are executed on Fri/Sat/Sun at the moment:

  • FRI 12:05am - enforcer-ng
  • (FRI 2:00am - enforcer-ng-mysql  NOTE: NOT SET UP YET)
  • SAT 12:05am - trunk
  • SAT 2:00am - trunk-mysql
  • SUN 12:05am - 1.3
  • SUN 2:00am - 13.-mysql

Framework

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).

Build

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.

Test

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.

Files

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:

Ldns

OpenDNSSEC/testing/build-ldns.sh

SoftHSM

softHSM/testing/build-softhsm.sh
softHSM/testing/test-softhsm.sh

OpenDNSSEC

OpenDNSSEC/testing/build-opendnssec.sh
OpenDNSSEC/testing/test-opendnssec.sh