What's new in LibreCores CI? ORCONF 2019

568e3391c8b528f2b255443e4cca27ca?s=47 Oleg Nenashev
September 27, 2019

What's new in LibreCores CI? ORCONF 2019

There were significant changes in LibreCores CI over the past year. Let's take a look at what's new available to hardware projects: Docker images for EDA tools, new Jenkins server bundles, and SaaS for projects. And how was Google Summer of Code in LibreCores CI this year?

568e3391c8b528f2b255443e4cca27ca?s=128

Oleg Nenashev

September 27, 2019
Tweet

Transcript

  1. #librecores, #ORConf Oct 27, 2019 LibreCores Free and Open Digital

    Hardware What’s new in LibreCores CI? Oleg Nenashev, FOSSi and Jenkins project CloudBees, Inc. 2019
  2. #librecores, #ORConf Oct 27, 2019 > whoami 2 @oleg_nenashev oleg-nenashev

  3. #librecores, #ORConf Oct 27, 2019 What is LibreCores? 3

  4. #librecores, #ORConf Oct 27, 2019 4

  5. #librecores, #ORConf Oct 27, 2019 5 Web Planet CI https://www.librecores.org/

  6. #librecores, #ORConf Oct 27, 2019 How it started… Continuous Integration

    service for open-source HW projects 6 LibreCores Web
  7. #librecores, #ORConf Oct 27, 2019 LibreCores CI Vision, 2016 LibreCores

    CI GitHub SSO User management LibreCores Web Top-level Web UI Project repositories GitHub BitBucket SVN GitHub is a main target system 7 CI Status Gitlab
  8. #librecores, #ORConf Oct 27, 2019 LibreCores CI in 2017 Jenkins

    Docker (Swarm) LibreCores Pipeline Library Physical nodes FPGAs and other HW peripherals LibreCores CI Infrastructure Project-specific Infrastructure On-demand build agents SSH, JNLP over VPN 8
  9. #librecores, #ORConf Oct 27, 2019 LibreCores CI Vision, 2017 CI

    as SaaS Deploy on your own Developer tools • EDA tool Images • Shared Libraries for Jenkins Pipeline • Docker packages • Configuration scripts • ci.librecores.org • State: PoC It is not just a service! 9
  10. #librecores, #ORConf Oct 27, 2019 LibreCores CI Vision, Now CI

    as SaaS Deploy on your own Developer tools • EDA tool Images • Shared Libraries for Jenkins Pipeline • Docker packages • Configuration scripts • ci.librecores.org • State: Alpha Developer tools is a new TOP priority! 10
  11. #librecores, #ORConf Oct 27, 2019 Base Docker images 11 https://hub.docker.com/u/librecores

  12. #librecores, #ORConf Oct 27, 2019 Module-based Environment • Problem: Diverse

    tool requirements • Many different tools are needed • Different versions might be needed • Configuration matrix explosion • Docker is not just enough! • Tool Modules • Configured by „modulefiles“ • http://modules.sourceforge.net/ $> module load verilator/3.902 PATH=/tools/verilator/3.902/bin/:… VERILATOR_ROOT=/tools/verilator/3.902 12 Contributions by Stefan Wallentowitz
  13. #librecores, #ORConf Oct 27, 2019 13 2018… Maintenance and minor

    improvements
  14. #librecores, #ORConf Oct 27, 2019 2019 Projects were reactivated LibreCores

    CI Jenkins Master updates • https://github.com/librecores/librecores-ci-jenkins-server • Images on DockerHub are aligned with SaaS • CI/CD for the images Google Summer of Code 2019 14
  15. #librecores, #ORConf Oct 27, 2019 Google Summer of Code 2019

    New CI Pipelines for OpenRISC • Stay tuned for the talk by Stafford! LibreCores CI updates • Base images • FuseSoC / Yosys integrations • OpenRISC flows 15 http://nancychauhan.in/ https://github.com/Nancy-Chauhan https://fossi-foundation.org/2019/08/23/gsoc_LibrecoresCI_Report
  16. #librecores, #ORConf Oct 27, 2019 LibreCores CI Images. OpenRISC flavor

    • Built on the top of librecores/librecores-ci base image • Includes GCC build and OpenRISC standard testing scripts • Battle-tested in Travis and Jenkins 16 https://github.com/librecores/docker-images Contributions by Nancy Chauhan
  17. #librecores, #ORConf Oct 27, 2019 LibreCores CI images in Travis

    language: c cache: ccache sudo: true dist: trusty services: - docker before_install: - docker pull librecores/librecores-ci-openrisc - docker images script: - docker run --rm -v $(pwd):/src -e "JOB=$JOB" -e "SIM=$SIM" -e "PIPELINE=$PIPELINE" -e "EXPECTED_FAILURES=$EXPECTED_FAILURES" -e "EXTRA_CORE_ARGS=$EXTRA_CORE_ARGS" librecores/librecores-ci-openrisc /src/.travis/test.sh matrix: …. 17 https://github.com/openrisc/mor1kx/blob/master/.travis.yml
  18. #librecores, #ORConf Oct 27, 2019 Improved FuseSoC integration • New

    fusesoc() closure for FuseSoC Sim • Integrates with standard images and tools 18 https://github.com/librecores/librecores-pipeline-lib#fusesoc Contributions by Nancy Chauhan
  19. #librecores, #ORConf Oct 27, 2019 Yosys Log Parsers • Python

    script for extracting Cell counts and resource usage • Part of LCCI base images • Pipeline library steps: trends for your projects 19 Contributions by Nancy Chauhan
  20. #librecores, #ORConf Oct 27, 2019 What’s next? Reviving LibreCores Developer

    Huddle More EDA tool Images & documentation LCCI Docker containers as FuseSoC stages 20
  21. #librecores, #ORConf Oct 27, 2019 What’s next? Reviving LibreCores Developer

    Huddle More EDA tool Images & documentation LCCI Docker containers as FuseSoC stages Using K8s to Manage the LibreCores CI Infrastructure • Reusable Helm charts Back to SaaS • Got some budget to expand the instance • Integrate with FPGAaaS? • Sponsorship for CI SaaS from Cloud vendors 21
  22. #librecores, #ORConf Oct 27, 2019 Contributing Try it in your

    projects! • Base images • LCCI Jenkins Server GitHub: Code repository and issue tracker • https://github.com/librecores/docker-images • https://github.com/librecores/librecores-ci • https://github.com/librecores/librecores-pipeline-lib • Discussions: • Mailing list: dev@lists.librecores.org • Gitter: https://gitter.im/librecores/librecores-ci 22
  23. #librecores, #ORConf Oct 27, 2019 23

  24. #librecores, #ORConf Oct 27, 2019 LibreCores CI in Hacktoberfest Contributions

    welcome! https://hacktoberfest.digitalocean.com/ Suggested issues: https://github.com/search?q=org%3Alibrecores+label%3Ahacktoberfes t&unscoped_q=label%3Ahacktoberfest 24
  25. #librecores, #ORConf Oct 27, 2019 Questions? Contacts: • Mailing list:

    dev@lists.librecores.org • Gitter: https://gitter.im/librecores/librecores-ci • Twitter: @oleg_nenashev 25