github.com/benchkram/bob@v0.0.0-20240314204020-b7a57f2f9be9/architecture.md (about) 1 # bob architecture 2 Fine grained infos on bob's features 3 4 5 ## Buildinfo & Artifact Store 6 Bob uses buildinfos and artifacts store to determine if a rebuild is required or if a target could be loaded from the artifact store. 7 8 * check if input hash exists in buildinfo store 9 * check validity of tragets 10 * check if tragets can be loaded from artifact store 11 * rebuild 12 * write buildinfo 13 * write artifacts 14 15 ``` 16 @startuml 17 ditaa(scale=0.9) 18 19 /--------------------------------\ 20 |cFFF | 21 | `bob build mytask` | 22 \----+----------------------+----/ 23 | | 24 | | 25 | | 26 /----+-----------------+---------+ /----+---------------------------+ 27 |cFFF | |cFFF | 28 | buildinfo store | | artifact store | 29 \--------------------------------/ \--------------------------------/ 30 31 @enduml 32 ``` 33 34 #### Buildinfo 35 A buildinfo item holds general information about the task triggered that build. It also contains a map of input:target combinations for each target in the build chain (child tragets included). 36 This allows to validate the integraty and existent of all targets. 37 38 It can be accessed by the input hash of a task. 39 40 #### Artifact 41 A artifact stores the targets and the path information of a task. 42 43 Artifacts can be accesed by the input hash of a task.