Skip to content

Continuous build system

Saksham Sharma edited this page Aug 2, 2016 · 1 revision

Continuous building and testing.

To ensure high quality release we perform continuous builds and tests. There are two build systems that are of interest in this setting each playing a slightly different role.

  1. Travis .

  2. Opensuse (not yet operational).

The Travis build system.

We now use the travis continuous build system. The main purpose of this build system is to ensure that no programming error creeps in to pull requests or merges. This is the first line of defence against bugs. Normally, we do not merge any pull request that fails the travis tests. However, in very special cases where the problem is somehow unique to the travis system, we might accept pull requests despite failing travis. Therefore, it is always good to run these tests on your local machine before anything else.

As in any travis build system the .travis.yml file controls the build. However, the actual building is done by the scripts/travis-build.hs file. To build test and verify all the raaz packages you can do the following from the root directory.

ghc --make scripts/travis-build.hs -o travis
./travis clean     # get rid of any stale builds
./travis install
./travis tests

The OpenSuse build services.

Opensuse provides build services (https://build.opensuse.org) to build across multiple distros and processor architectures. The facility to build across multiple architectures is particularly important for a cryptographic library because we need to test the endian safety of the underlying code. Besides, any successful build against a distro gives us confidence that the package will play well with whatever haskell environment that comes with the distro.

We are in the process of setting up such a service.