Continuous Integration and Distribution
Ghaf Framework uses a CI/CD (Continuous Integration and Continuous Delivery) approach that aims to automate the process of building, testing, and deploying software.
Our goal is to have the ability to deploy code quickly and safely: once a build is deployed, the next build undergoes testing, while the latest build is being coded.
important
Currently, Continuous Deployment is not set up.
General Process
The software delivery pipeline consists of several stages:
-
Contributors make changes in the code and create a pull/merge request to merge changes from one personal fork or branch into the upstream repository/branch.
-
Builder Controller checks source code repositories for changes and fetches them.
-
Builder Controller arranges builds on Remote Builders to make disk images and other release artifacts.
-
After the building is done, Remote Builder sends disk images to Builder Controller to create provenance files and sign disk images and provenance files.
-
On build failure, Builder Controller sends failure notifications to Message Service.
-
Builder Controller uploads all build artifacts to Binary Cache.
-
Test Automation fetches disk images from the Controller and runs the hardware test on them.
-
Test Automation sends test reports to the Controller.
-
Users can download images and test reports from the Controller