Skip to content
Mykola Yurchenko edited this page Jun 5, 2019 · 10 revisions

This page will serve as description and development plans for our CI system

Currently CI does 3 main functions:

  1. Checks if the PR was submitted to the develop branch

  2. Runs Linter and reports errors (only on lines modified by the diff)

  3. Runs the Speed Tester NF and reports measured performace

Planned features

  1. Expanding performance test coverage

    • The main goal is to implement Pktgen testing, this would require a 2 node setup where one node would be running Pktgen and the other would run the Basic Monitor NF. This can be done both by reserving 2 worker nodes that are directly connected or by directly connecting the main CI node to workers.
    • We should also include mTCP test with epserver and epwget
    • Additionally we need a X node chain speed tester performance
  2. Linter coverage

    • Currently we only lint .c, .h, .cpp files. We have a lot of python/shell scripts that we should also be linting.
  3. Event queue

    • When the CI is busy with another request it will deny all other requests and respond with a I'm busy, retry in 10 min message, which is clearly not ideal for a good CI sysytem. CI should implement some type of a request queue to resolve this.
  4. Better resource management(long term)

  • Utilizing the new cluster software we can figure out which nodes are unused and always have them ready to run CI tests. This would help speed up the CI process.
Clone this wiki locally