-
Notifications
You must be signed in to change notification settings - Fork 24
Continuous build system
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.
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
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.