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 and other release artifacts to Builder Controller.
-
On build failure, Builder Controller sends failure notifications to Message Service.
-
Builder controller creates provenance files and signs disk images and provenance files with the Signing Service.
-
Builder Controller uploads all build artifacts to Binary Cache.
-
Builder Controller uploads disk images to Artifact Storage.
-
Builder controller triggers automated hardware tests on Test Automation Agent.
-
Test Automation Agent fetches disk images from the Artifact Storage and runs the hardware test on them.
-
Test Automation Agent sends test reports to the Builder Controller.
-
Builder Controller uploads test reports to Artifact Storage.
-
Users can download disk images, disk image signatures, provenance files, provenance file signatures and test reports from the Controller.
-
Users can verify disk image signatures and provenance file signatures with Signing Service.