Developer Documentation
Architecture
Jenkins is used for CI/CD, jobs are being created with JJB: (https://gerrit.akraino.org/r/gitweb?p=ci-management.git;a=tree;f=jjb/kni;h=6a3b8e1dbc7468a9075f30859694ff727e7c78a6;hb=refs/heads/master).
In the future additional builds with OpenShift with third party labs can be considered.
Deploys will be executed in PODs . Different types of PODs are going to be considered:
- virtualized deploy (libvirt) for initial testing
- baremetal deploy for merges and tagging testing
The bootstrap node of each POD will be connected to Jenkins as an slave.
Pipelines
Three diferent types of testing are proposed:
- check: when a new change is being sent, it will perform lightweight tests such as lint, syntax or virtual deployments
- gate: when a change is going to be merged, it will perform more extensive testing, including deployments in all affected platforms
- tag: when a new stable version is being tagged, it will run the gate tests + some additional tests including the ones in validation lab, stress testing, etc...
Artifacts
- Documentation
- Installation scripts
- Test logs and results
Gerrit
https://gerrit.akraino.org/r/admin/repos/q/filter:kni
Please ensure that all the submitted patches are properly signed. You need to use Signed-off-by: <email_address> in the footer of your commit messages.
Jenkins Jobs
Daily: https://jenkins.akraino.org/view/kni/
Validation Lab Setup
https://docs.google.com/presentation/d/1uk-DW2b6f1bv8-k5o0zqqmdQxTAnGeFFwKA1JQRgbH8/edit#slide=id.p1