living on master - elinux...using yocto project, jenkins and lava for a rolling release living on...

22
Using Yocto Project, Jenkins and LAVA for a rolling release Living on Master: Tim Orling Intel Open Source Technology Center

Upload: others

Post on 21-Mar-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Living on Master - eLinux...Using Yocto Project, Jenkins and LAVA for a rolling release Living on Master: Tim Orling Intel Open Source Technology Center Traditional Approach: “Fork

Using Yocto Project, Jenkins and LAVA for a rolling release

Living on Master:

Tim OrlingIntel Open Source Technology Center

Page 2: Living on Master - eLinux...Using Yocto Project, Jenkins and LAVA for a rolling release Living on Master: Tim Orling Intel Open Source Technology Center Traditional Approach: “Fork

Here’s why.

You’re doing it all wrong.

Page 3: Living on Master - eLinux...Using Yocto Project, Jenkins and LAVA for a rolling release Living on Master: Tim Orling Intel Open Source Technology Center Traditional Approach: “Fork

Traditional Approach:“Fork It and Forget It”⎻ Pin upstream at a fixed version⎻ Make changes in tree⎻ No patches sent upstream

2/26/18 https://www.publicdomainpictures.net/view-image.php?image=168789&picture=cave-man-chiseling 3

git clonepokycdpokygit clonemeta-foo

Page 4: Living on Master - eLinux...Using Yocto Project, Jenkins and LAVA for a rolling release Living on Master: Tim Orling Intel Open Source Technology Center Traditional Approach: “Fork

Traditional Approach:“Fork It and Forget It”⎻ Obsolete from day one⎻ Upstream never stops⎻ Huge technical debt

2/26/18 https://www.publicdomainpictures.net/view-image.php?image=210256&picture=bison 4

Page 5: Living on Master - eLinux...Using Yocto Project, Jenkins and LAVA for a rolling release Living on Master: Tim Orling Intel Open Source Technology Center Traditional Approach: “Fork

Follow the Linux* kernel release model

⎻ http://www.kroah.com/log/blog/2018/02/05/linux-kernel-release-model/

⎻ Upstream First⎻ Backport to stable branches⎻ Constantly moving code-base

2/26/18http://blog.garagistry.com/2016/07/tour-rouge-for-trip-in-history.html

5

Page 6: Living on Master - eLinux...Using Yocto Project, Jenkins and LAVA for a rolling release Living on Master: Tim Orling Intel Open Source Technology Center Traditional Approach: “Fork

Time to share.

Everyone has their own solution

Page 7: Living on Master - eLinux...Using Yocto Project, Jenkins and LAVA for a rolling release Living on Master: Tim Orling Intel Open Source Technology Center Traditional Approach: “Fork

Motivations

OpenSource

EnterpriseClass

OfftheShelf Distributed

3/14/18 7

Page 8: Living on Master - eLinux...Using Yocto Project, Jenkins and LAVA for a rolling release Living on Master: Tim Orling Intel Open Source Technology Center Traditional Approach: “Fork

Inspirations

3/14/18 8

Page 9: Living on Master - eLinux...Using Yocto Project, Jenkins and LAVA for a rolling release Living on Master: Tim Orling Intel Open Source Technology Center Traditional Approach: “Fork

System overview

2/26/18 9

Page 10: Living on Master - eLinux...Using Yocto Project, Jenkins and LAVA for a rolling release Living on Master: Tim Orling Intel Open Source Technology Center Traditional Approach: “Fork

Repository layout

2/26/18 10

Page 11: Living on Master - eLinux...Using Yocto Project, Jenkins and LAVA for a rolling release Living on Master: Tim Orling Intel Open Source Technology Center Traditional Approach: “Fork

Use automation to stay up to date

⎻ Continuous Integration job runs daily

2/21/18 11

autosync gitsubmodules

git review[pullrequest]

triggerbuild

Page 12: Living on Master - eLinux...Using Yocto Project, Jenkins and LAVA for a rolling release Living on Master: Tim Orling Intel Open Source Technology Center Traditional Approach: “Fork

Testing production images

⎻ Tests run on every build

2/26/18 12

LAVA*jobNetworkBoot(iPXE)

Custominitramfs

FlashproductionimagetoUSBstick

Reboot pytest

pytest isanOpenSourcetestingframework

Page 13: Living on Master - eLinux...Using Yocto Project, Jenkins and LAVA for a rolling release Living on Master: Tim Orling Intel Open Source Technology Center Traditional Approach: “Fork

Testing System Overiew

2/26/18 13

DUT=DeviceUnderTestLAN=LocalAreaNetworkPDU=PowerDistributionUnit

Page 14: Living on Master - eLinux...Using Yocto Project, Jenkins and LAVA for a rolling release Living on Master: Tim Orling Intel Open Source Technology Center Traditional Approach: “Fork

Testing System

3/14/18 14

DUT=DeviceUnderTestLAN=LocalAreaNetworkPDU=PowerDistributionUnit

Page 15: Living on Master - eLinux...Using Yocto Project, Jenkins and LAVA for a rolling release Living on Master: Tim Orling Intel Open Source Technology Center Traditional Approach: “Fork

Next Steps

3/14/18 15

⎻ Test Case events working well⎻ Measurements and Units under

development⎻ Need to complete internal

Open Sourcing process

pytest-lava

TestCaseEvents Measurements Units

Page 16: Living on Master - eLinux...Using Yocto Project, Jenkins and LAVA for a rolling release Living on Master: Tim Orling Intel Open Source Technology Center Traditional Approach: “Fork

Next Steps

LAVAdashboard

Other

TAPJUnit ⎻ Industry Standard Result Formats

⎻ Test Anything Protocol⎻ JUnit.xml

3/14/18 16

Page 17: Living on Master - eLinux...Using Yocto Project, Jenkins and LAVA for a rolling release Living on Master: Tim Orling Intel Open Source Technology Center Traditional Approach: “Fork

Next Steps

3/14/18 17

DataAnalysisandVisualization

ElasticStack

Elasticsearch Logstash Kibana

Page 18: Living on Master - eLinux...Using Yocto Project, Jenkins and LAVA for a rolling release Living on Master: Tim Orling Intel Open Source Technology Center Traditional Approach: “Fork

Moving forward.

Let’s do this.

Page 19: Living on Master - eLinux...Using Yocto Project, Jenkins and LAVA for a rolling release Living on Master: Tim Orling Intel Open Source Technology Center Traditional Approach: “Fork

Reference Enterprise Class System

End-to-End Complete⎻ Orchestrated containers?

⎻ “Easy” to deploy⎻ “Effortless” to replicate

⎻ Internal Layer Index⎻ Jenkins Master⎻ Artifact server⎻ Data Visualization

Public LAVA server⎻ Share and Re-use test

definitions⎻ Distributed LAVA dispatchers

⎻ Containerized⎻ Better HW coverage

⎻ Each site focuses on platforms they care about

2/21/18 19

Page 20: Living on Master - eLinux...Using Yocto Project, Jenkins and LAVA for a rolling release Living on Master: Tim Orling Intel Open Source Technology Center Traditional Approach: “Fork

Questions?

Page 21: Living on Master - eLinux...Using Yocto Project, Jenkins and LAVA for a rolling release Living on Master: Tim Orling Intel Open Source Technology Center Traditional Approach: “Fork

Reference

⎻ https://validation.linaro.org⎻ https://github.com/Linaro/lava-

server⎻ https://github.com/Linaro/lava-

dispatcher⎻ https://pytest.org⎻ https://github.com/pytest-dev

⎻ https://git.linaro.org/lava-team/refactoring.git/

⎻ https://kernelci.org⎻ https://jenkins.io⎻ https://www.elastic.co/⎻ https://lists.yoctoproject.org/lis

tinfo/automated-testing

3/14/18 21

Page 22: Living on Master - eLinux...Using Yocto Project, Jenkins and LAVA for a rolling release Living on Master: Tim Orling Intel Open Source Technology Center Traditional Approach: “Fork

Thank you.

Special Thanks to:

• John Akre

• Kevron Rees

• Randy Witt

• Brian Avery

• Stephano Cetola