als 2016 jan simon m ller
play

ALS 2016 - Jan-Simon Mller Contiguous Integration and Testing for - PowerPoint PPT Presentation

ALS 2016 - Jan-Simon Mller Contiguous Integration and Testing for Automotive in a distributed environment AGL development ... AGL development is done - like for many other opensource projects - in a distributed way Developers around


  1. ALS 2016 - Jan-Simon Möller Contiguous Integration and Testing for Automotive in a distributed environment

  2. AGL development ... ● AGL development is done - like for many other opensource projects - in a distributed way ● Developers around the globe contribute to the sources and recipes that make up AGL ● Code review through gerrit, CI builds and so on

  3. Problem statement ● BUT: we cannot do tests on HW in the same distributed way ... ● ... yet ? Why and how ? Image: public domain

  4. Tests on HW are hard !? ● You need the HW ● You need it on your desk/in your lab ● You need to deploy firmware/filesystems ● You need to reboot the board ● You need to initiate the test ● You need to collect the results ● You need to interpret the results ... rinse & repeat Images: elinux.org & dl9pf

  5. Where we'll struggle... ● Board not available on your desk ● Board cannot be shipped due to xyz ● Board hardwired on your desk while travelling ● Juggling SD-cards takes a lot of time ● It takes a lot of time vs. ● We want the info early - for each proposed patch

  6. Issues: And now press: ● Lots of manual work involved ● does not scale – * boards * build-variants * releases ● does not integrate with code review systems ● release management and maintenance depends on testresults

  7. What do we need ... and when ? ● We won't replace proper manual/long test runs for the releases! ● But for our daily work, we need: – fast results – as much test-coverage as possible in short time – large number of boards tested – remote / distributed operation ● => we need to keep pace with the development

  8. What do we need ... and when ? ● panacea ? ● jack of all trades device ? https://xkcd.com/763/

  9. Prior art (opensource) ● Linux – ktest.pl (S.Rostedt, http://elinux.org/Ktest) – 0-day builder (Fengguang Wu, Intel, https://01.org/lkp) ● https://kernelci.org ● lava (https://validation.linaro.org/static/docs ) ● JTA/fuego (http://elinux.org/Fuego) ● openQA (https://openqa.opensuse.org/)

  10. AGLs current infrastructure ● Gerrit for code review – git.automotivelinux.org ● Jenkins with gerrit-trigger for CI builds – build.automotivelinux.org ● => pretty much standard toolset

  11. Beta-test for new additions ... ● AGL-JTA (fork of fuego) – jta.agl.homelinux.org – = tool to compile and run predefined testcases ● Lava – porter.agl.homelinux.org – = board farm management and deployment framework

  12. Why JTA ? ● AGL-JTA is AGL's version of fuego (formerly JTA) – Has large number of Benchmarks and Functional tests – Visualization and reporting – JTA/fuego is part of the LTSI initiative – AGL modified/updated components to fit our needs – Updated to stable jenkins – Dedicated to upstreaming changes

  13. Demo JTA ● Instance with up as public beta: ● https://jta.automotivelinux.org

  14. Why Lava ● Lava supports – multiple boards (of same type / pool) – different boards at the same time – very good automation capabilities – remote RPC API – master/slave model – distributed slave sites in development – some tests built-in through testdefinitions in git

  15. Demo Lava ● Instance with porter board up as public beta: ● https://porter.automotivelinux.org

  16. Workflow / Feedback loop Gerrit Jenkins (Build) CI builds AGL-JTA (jta) Lava (porter)

  17. A Vision/Plan (short/mid) SPDX Fossology Gerrit Jenkins (Build) Extended tests, customized tests AGL-JTA (jta) Remote Lab Lava (lava) Remote Lab

  18. A Vision/Plan (mid/long) Gerrit SPDX Fossology Jenkins (Build) AGL-JTA (jta) Remote Board Lab Lava SDK (lava) Test & Debug App Remote Board Lab on board remotely openQA ? VM ← ← ← ← UI testing ?

  19. Open Issues ● present testresults in a unified way ● aggregate testresults (across revisions/variants/boards) ● visualize testresults (e.g. trends) ● Thoughts ?

  20. Todo's for AGL-JTA/fuego (IMHO) ● Further simplify installation ● Use latest version of jenkins (→ less UI modifications) ● Do not hardcode version of jenkins, use release from repository ● Do not assume JTA and board are „in the same room“ or on the same network ● Do not hardcode IPs and board specifics – use an abstraction )* ● Do not rebuild if not necessary ● )* Maybe abstract the actual board through a slave daemon like WIP in lava

  21. Todo's for LAVA (IMHO) ● Installation on debian works meanwhile, but configuration is still complex ● Documentation is good, but we desperately need a „getting-started in 30min“ or guided installation. ● UI ease-of-use (less clicks) ● more cmdline tools (like lava-boot) for developers

  22. A Roadmap ● For BB: – public beta of JTA and Lava ● For CC: – All reference boards/platforms included – Remote lab support – Fossology/SPDX reports ● For DD: – SDK integration ?!

  23. Questions ? ● Q/A ● Join – automotive-discussions ML – bi-weekly AGL EG-CIAT meetings – #automotive on freenode

Recommend


More recommend