===== Introduction ===== AGL uses a combination of tools for its CI tests. * AGL-JTA (a version of [[http://elinux.org/Fuego|Fuego]] is the frontend - more information can be found here: [[agl-jta|AGL-JTA]] * [[https://validation.linaro.org/static/docs/v2/index.html|Lava]] as tool to manage the boards remotely. Both tools can actually work independently, both can execute tests. We combine them to get the best out of both worlds: * AGL-JTA/Fuego has an extensive predefined set of tests and strong reporting capabilities * LAVA is capable and excels at managing single boards and board-farms (power-up, deployment of filesystem and so on) and exposes a remote API. ===== Use-cases ===== From the above you can deduct the following use-cases: * In-house lab - for an isolated, in-house lab, AGL-JTA/Fuego is likely your choice. With a small set of boards on the same network, you only need AGL-JTA/Fuego - no LAVA server is needed. * Board-Farm - to scale-out the testing and parallelize the execution, we need to manage multiple boards of the same type/family and multiple different boards/brands. In this case you need LAVA to mange the boards. * Remote Labs - to distribute the boards across sites and manage them, you need LAVA. ===== Workflow ===== The setup supports multiple operation methods: * Code-change trigger: * Gerrit triggers JTA, which runs the test. Board allocation and bring-up is handled by Lava. * Scripted trigger: * Script triggers JTA, which runs the test. Board allocation and bring-up is handled by Lava. * Manual trigger: * Manual trigger in JTA, which runs the test. Board allocation and bring-up is handled by Lava. * Direct test: * Board allocation, bring-up and test execution through Lava. ===== Setup ===== A (WIP) documents describes the setup: {{:eg-ciat:agl_test_fw_guider.xls|SETUP(xls)}} / {{:eg-ciat:agl_test_fw_guider-mixed.pdf|SETUP(pdf)}} .