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

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend