Design: FirmwareBartender
Buildflow
- The FirmwareBartender
Evaluates which firmwares have to be compiled
Orders the firmware for priority
If required: Calls git clone/checkout
If required: Calls git clean
Builds one firmware after the other * Informs TestBartender about the firmwares which have become ready
Multiprocessing
The firmware shall be built while tests are running.
Therefore, the FirmwareBartender delegates the build to a subprocesses.
sequenceDiagram
participant m as main()
participant f as FirmwareBartender
participant b as Build Process
participant s as Filesystem
m->>f: connected tentacles
f-->>+b: firmware-variant list
b->>+s: RPI_PICO2
s-->>-b: done
b-->>f: EventFirmwareSpec(RPI_PICO2)
b->>+s: TEENSY40
s-->>-b: done
b-->>f: EventFirmwareSpec(TEENSY40)
b->>+s: RPI_PICO2-RISCV
s-->>-b: done
b-->>f: EventFirmwareSpec(RPI_PICO2-RISCV)
b-->>-f: EventExitFirmware()