Opened 2 years ago

Closed 17 months ago

#1008 closed defect (fixed)

Continuous integration framework

Reported by: mdumitru Owned by: abadoi
Priority: major Milestone: 9.2
Component: undecided Version: development
Keywords: Cc: abadoi, drusu
Complexity: Medium

Description (last modified by mdumitru)

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 Changed 2 years ago by mdumitru

  • Description modified (diff)

comment:2 Changed 2 years ago by dmisev

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

comment:3 Changed 2 years ago by dmisev

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 Changed 2 years ago by mdumitru

  • Cc pbaumann 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 follow-up: Changed 2 years ago by mdumitru

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

comment:6 in reply to: ↑ 5 Changed 2 years ago by drusu

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 Changed 2 years ago by mdumitru

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

comment:8 Changed 22 months ago by dmisev

  • Milestone set to 9.2

comment:9 Changed 17 months ago by pbaumann

can we close this?

comment:10 Changed 17 months ago by mdumitru

  • Resolution set to fixed
  • Status changed from new to closed

Yes, the system is in production.

Note: See TracTickets for help on using tickets.