Opened 9 years ago
Last modified 9 years ago
#1008 closed defect
Continuous integration framework — at Version 1
Reported by: | Alex Dumitru | Owned by: | Andrei Badoi |
---|---|---|---|
Priority: | major | Milestone: | 9.2 |
Component: | undecided | Version: | development |
Keywords: | Cc: | Andrei Badoi, drusu | |
Complexity: | Medium |
Description (last modified by )
A framework is needed that integrates into Jenkins (but it is not tightly coupled to it) and is able to test rasdaman under all possible configurations with both the system tests and conformance tests.
This is the purpose of the rascipy framework, to allow developers to create new configurations that can be tested. Each configuration can be defined as a strategy. A strategy consists of a:
- Rasdaman retriever - which retrieves the source code and sets the branch to be tested
- Rasdaman builder - which configures and builds rasdaman based on a set of criterias that we want to test (e.g. with/out enable debug, with different base dbs etc)
- Preparer - prepares the system for a rasdaman start, e.g. creating the database, etc
- Tester - tests the system using a specific framework (e.g. systemtests, conformance tests etc)
- Janitor - cleans up the system and frees resource for a new run.
A skeleton of the project can be found here http://git.flanche.com/alex/rascipy. The devs assigned to the task must complete the project based on the skeleton and then create all the strategies that we want to test. They will need to create the missing builders, janitors, services and so on, based on the examples in the code and to tie everything up.
Two first strategies that we would like to test and can be used as use-cases are:
- Rasdaman with enable debug and without
- Rasdaman with postgres and with sqlite
- Combinations of them
The skeleton is written in python as it can be easily integrated with Jenkins and has good support for running external tools (e.g. make, systemtests) while still offering the tools needed to keep the project sane over time.