Table of Contents
MantisBT Build Process proposal
This page is only a draft, pending discussion on the development mailing list.
Scope
This document proposes a number of improvements to the MantisBT build process, by introducing a structured build process used to validate code changes as they happen and to produce nightly builds.
Goals:
- Increased visibility of the build results and of their consumability
- Increased feedback speed regarding corectness of changes
- Larger testing coverage of the MantisBT codebase
Non-goals:
- Continuous deployment of the resulting artifacts
- Generating release artifacts , replacing the current release process
Build process
The current MantisBT testing infrastructure supports two kinds of tests:
- Self-contained unit tests
- Integration tests for the SOAP API
These tests could be arranged in the following succession
- Unit tests
- Integration tests SOAP matrix build
- Integration tests running against MySQL Community 5.1.x
- Integration tests running PostgreSQL 9.0.x
Database backend extensibility
This build will allows us to easily scale in the medium term by adding more databases from those in our supported or experimental phase:
- DB2 Express 9.7.x
- Oracle XE 10g
- SQL Server Express ( problematic, probably requires Windows license )
Adding new kinds of integration tests
As we progress, we will be able to new kinds of matrix builds, for instance:
- file API builds against multiple backends ( database, file, ftp )
- authentication API builds against different authentication schems ( Mantis internal, LDAP )
Another possibility is to add Selenium-driven tests to our build, to validate that the pages work as expected .
Publishing results
The results will be published as checksummed archives, which have a validated quality - they pass ( or not ) the tests as currently defined. This is key information for both developers and early consumers of the build and encourages rapid feedback on versions still in development.