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

    View Slide

  2. #librecores, #ORConf
    Oct 27, 2019
    > whoami
    2
    @oleg_nenashev
    oleg-nenashev

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  6. #librecores, #ORConf
    Oct 27, 2019
    How it started…
    Continuous
    Integration service
    for open-source
    HW projects
    6
    LibreCores
    Web

    View Slide

  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

    View Slide

  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

    View Slide

  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

    View Slide

  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

    View Slide

  11. #librecores, #ORConf
    Oct 27, 2019
    Base Docker images
    11
    https://hub.docker.com/u/librecores

    View Slide

  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

    View Slide

  13. #librecores, #ORConf
    Oct 27, 2019
    13
    2018…
    Maintenance and minor improvements

    View Slide

  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

    View Slide

  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

    View Slide

  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

    View Slide

  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

    View Slide

  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

    View Slide

  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

    View Slide

  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

    View Slide

  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

    View Slide

  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: [email protected]
    • Gitter: https://gitter.im/librecores/librecores-ci
    22

    View Slide

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

    View Slide

  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

    View Slide

  25. #librecores, #ORConf
    Oct 27, 2019
    Questions?
    Contacts:
    • Mailing list: [email protected]
    • Gitter: https://gitter.im/librecores/librecores-ci
    • Twitter: @oleg_nenashev
    25

    View Slide