CI Development¶
This page will serve as description and development plans for our CI system
Current CI maintainers: primary - @kevindweb, secondary - @koolzz
CI is being moved to a new repository inside sdnfv called called: onvm-ci you can find it here.
Currently CI does 3 main functions:¶
- Checks if the PR was submitted to the
developbranch - Runs Linter and reports errors (only on lines modified by the diff)
- Runs the Speed Tester NF and Pktgen and reports measured performance
Done¶
- 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 system. CI should implement some type of request queue to resolve this.
- Pktgen Tests in addition to Speed Tester
- Pktgen testing, with a 2 node setup where one node would be running Pktgen and the other would run the Basic Monitor NF. This is done both by reserving 2 worker nodes that are directly connected.
Planned features¶
- Expanding performance test coverage
- We should also include mTCP test with epserver and epwget
- Additionally, we need a X node chain speed tester performance
- Linter coverage
- Currently we only lint .c, .h, .cpp files. We have a lot of python/shell scripts that we should also be linting.
- Github Messaging
- With the new CI modes and a message editing api from github3.py, we are able to post responses as they come in.
- Linting data comes much faster than speed testing for example, so NF data will be appended to an already posted message in Github for quick responses.
- 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.