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