Upgrade to Pro — share decks privately, control downloads, hide ads and more …

What's new in LibreCores CI? ORCONF 2019

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?

Oleg Nenashev

September 27, 2019
Tweet

More Decks by Oleg Nenashev

Other Decks in Technology

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 How it started… Continuous Integration

    service for open-source HW projects 6 LibreCores Web
  3. #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
  4. #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
  5. #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
  6. #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
  7. #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
  8. #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
  9. #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
  10. #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
  11. #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
  12. #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
  13. #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
  14. #librecores, #ORConf Oct 27, 2019 What’s next? Reviving LibreCores Developer

    Huddle More EDA tool Images & documentation LCCI Docker containers as FuseSoC stages 20
  15. #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
  16. #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: [email protected] • Gitter: https://gitter.im/librecores/librecores-ci 22
  17. #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
  18. #librecores, #ORConf Oct 27, 2019 Questions? Contacts: • Mailing list:

    [email protected] • Gitter: https://gitter.im/librecores/librecores-ci • Twitter: @oleg_nenashev 25