Yocto Project CICD Developer Workflow Konrad Scherer Wind

  • Slides: 19
Download presentation
Yocto Project ® CI/CD Developer Workflow Konrad Scherer, Wind River Yocto Project Dev. Day

Yocto Project ® CI/CD Developer Workflow Konrad Scherer, Wind River Yocto Project Dev. Day Virtual , North America, 2020

Introduction • Linux Infrastructure Lead at Wind River • Focused on Developer Productivity •

Introduction • Linux Infrastructure Lead at Wind River • Focused on Developer Productivity • Maintain 100+ servers across 3 DC • Thanks to Puppet, Foreman, Sensu and their communities! 2 Yocto Project® | The Linux Foundation®

Agenda • Wrigel Build System • Yocto Developer Workflow Challenges • Dev. Builds and

Agenda • Wrigel Build System • Yocto Developer Workflow Challenges • Dev. Builds and Build Failure Login • Future Work 3 Yocto Project® | The Linux Foundation®

Wrigel Build System Rewriting Build Systems is Fun! Yocto Project | The Linux Foundation

Wrigel Build System Rewriting Build Systems is Fun! Yocto Project | The Linux Foundation

Wrigel the Third • Docker, Docker Swarm and Jenkins • Designed for easy setup

Wrigel the Third • Docker, Docker Swarm and Jenkins • Designed for easy setup of small cluster • Independent of Wind River network • Internal builds and in AWS https: //github. com/Wind. River-Open. Source. Labs/ci-scripts 5 Yocto Project® | The Linux Foundation®

Developer Workflow Challenges • "Git. Ops" only works for a single repo • How

Developer Workflow Challenges • "Git. Ops" only works for a single repo • How to manage collections of 40+ layers? • WRLinux has 400+ repos for offline install • How to support changeset across multiple repos? • No standard Yocto buildarea assembly solution 6 Yocto Project® | The Linux Foundation®

WR setup tool and git-repo • Git-repo manages large tree of repos • Manifest

WR setup tool and git-repo • Git-repo manages large tree of repos • Manifest generation by setup tool • Pro: Git-repo detects changes across entire tree • Pro: Automatic rebase of local commits when syncing • Con: Fork with support for bare repositories 7 Yocto Project® | The Linux Foundation®

Setup Tool and Layerindex • Discovery and dependency management • Manages additional buildtools •

Setup Tool and Layerindex • Discovery and dependency management • Manages additional buildtools • Integrated as bitbake-layers layerindex-fetch • Setup can also integrate layers not in layerindex 8 Yocto Project® | The Linux Foundation®

Developer Builds also known as try builds Yocto Project | The Linux Foundation

Developer Builds also known as try builds Yocto Project | The Linux Foundation

Dev. Build • Developer buildarea with local commits • Repo detects commits • "Fork"

Dev. Build • Developer buildarea with local commits • Repo detects commits • "Fork" repos and store commits on Git server • Containerized Layerindex uses forks • Recreate local buildarea on build system 10 Yocto Project® | The Linux Foundation®

Triggering Builds • What configurations? How many builds? • Default set of configs and

Triggering Builds • What configurations? How many builds? • Default set of configs and builds • Select machine, image, distro, sdk • local. conf override • Live feedback and email summary • For all options see: start_devbuild. sh 11 Yocto Project® | The Linux Foundation®

Build Failure Login For those nasty build failures Yocto Project | The Linux Foundation

Build Failure Login For those nasty build failures Yocto Project | The Linux Foundation

Build Failure Login • Save Docker Container Startup command • Create temp ssh key

Build Failure Login • Save Docker Container Startup command • Create temp ssh key and upload to build server • Add authorized_keys entry to run docker on login • Build environment perfectly recreated • Cleanup keys • See workspace_login. sh 13 Yocto Project® | The Linux Foundation®

Extensible Pipeline • OEQA tests on Qemu and Hardware using LAVA • Test Failure

Extensible Pipeline • OEQA tests on Qemu and Hardware using LAVA • Test Failure Login • Add more stages 14 Yocto Project® | The Linux Foundation®

Summary • Expose large compute cluster to developers • Build and test patches before

Summary • Expose large compute cluster to developers • Build and test patches before commit • Build failure inspection • Integration with runtime testing 15 Yocto Project® | The Linux Foundation®

Future Work • Yocto autobuilder helper scripts • Using AWS to scale builds •

Future Work • Yocto autobuilder helper scripts • Using AWS to scale builds • K 8 s and Tekton • Yocto self-hosted AMIs 16 Yocto Project® | The Linux Foundation®

<Your Section Title> Yocto Project | The Linux Foundation

<Your Section Title> Yocto Project | The Linux Foundation

What is the Yocto Project ®� ? IT'S NOT AN EMBEDDED LINUX DISTRIBUTION, IT

What is the Yocto Project ®� ? IT'S NOT AN EMBEDDED LINUX DISTRIBUTION, IT CREATES A CUSTOM ONE FOR YOU. The Yocto Project (YP) is an open source collaboration project that helps developers create custom Linuxbased systems regardless of the hardware architecture. The project provides a flexible set of tools and a space where embedded developers worldwide can share technologies, software stacks, configurations, and best practices that can be used to create tailored Linux images for embedded and IOT devices, or anywhere a customized Linux OS is needed. 18 Yocto Project® | The Linux Foundation®