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()