Opened 9 years ago

Closed 9 years ago

#1008 closed defect (fixed)

Continuous integration framework

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 Alex Dumitru)

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.

Change History (10)

comment:1 by Alex Dumitru, 9 years ago

Description: modified (diff)

comment:2 by Dimitar Misev, 9 years ago

Very nice, to the strategies I'd add rasnet/rnp as well.

comment:3 by Dimitar Misev, 9 years ago

Bonus points I'd say if the strategy descriptions are clear and intuitive, then they could act as detailed and up to date installation/setup guides on their own.

comment:4 by Alex Dumitru, 9 years ago

Cc: Peter Baumann removed

@abadoi, drusu: I've added the builder classes that you need to implement and tests for the builder as well. Please use the tests and let me know once you get them to pass.

comment:5 by Alex Dumitru, 9 years ago

@abadoi, drusu: Please report on any progress on this task.

in reply to:  5 comment:6 by drusu, 9 years ago

Replying to mdumitru:

@abadoi, drusu: Please report on any progress on this task.

We are done with retriever classes.
We are currently working on the builder classes. - we will let you know once we are done with this.

comment:7 by Alex Dumitru, 9 years ago

Sounds good, please update the repository with the necessary files by Wed. evening.

comment:8 by Dimitar Misev, 9 years ago

Milestone: 9.2

comment:9 by Peter Baumann, 9 years ago

can we close this?

comment:10 by Alex Dumitru, 9 years ago

Resolution: fixed
Status: newclosed

Yes, the system is in production.

Note: See TracTickets for help on using tickets.