CI/CD Implementation
1. Summary:
Nephio Project uses combination of Prow with additional help of GitHub Actions as a CI/CD and GitHub management solution.
Prow is a Kubernetes based CI/CD, its main features:
- Job execution for testing, batch processing, artifact publishing
- GitHub events are used to trigger post-PR-merge (postsubmit) jobs and on-PR-update (presubmit) jobs
- Support for multiple execution platforms and source code review sites
- Pluggable GitHub bot automation that implements /foo style commands and enforces configured policies/processes
- GitHub merge automation with batch testing logic
- Front end for viewing jobs, merge queue status, dynamically generated help information
- Config-as-a-code with automagically applying changes.
- Automatic GitHub org/repo administration configured in source control.
- All benefits of running on Kubernetes - replication, load balancing, rolling updates, addons like Istio.
- JSON structured logs.
- Prometheus metrics.
What do we do with it:
- Code checking for syntax, common errors, security problems
- Licensing compliance scanning
- Artifacts building and delivery
- Testing environment provisioning
- Keeping GitHub policies applied
2. Diagram