14
Jenkins, Bhyve, and Webdriver: Continuous Integration testing on FreeNAS Craig Rodrigues [email protected]

Jenkins, Bhyve, and Webdriver: Continuous Integration testing on FreeNAS by Craig Rodrigues

Embed Size (px)

DESCRIPTION

On November 7, 2013, the FreeBSD Vendor Summit was held at the Yahoo! campus in Sunnyvale, California. Craig Rodrigues, iXsystems software engineer, gave a presentation, "Jenkins, BHyve, and WebDriver: Continuous Integration Testing on FreeNAS". Craig's presentation described how iXsystems is using modern best practices for building and testing FreeNAS code. Jenkins is a framework for doing continuous builds and integration, and is used by hundreds of companies. BHyve (BSD Hypvervisor) is the new virtual machine system which will be part of FreeBSD 10. Webdriver is a Python toolkit for testing web applications. By combining these technologies, iXsystems is developing a modern and sophisticated workflow for testing and improving the quality of FreeNAS.

Citation preview

Page 1: Jenkins, Bhyve, and Webdriver: Continuous Integration testing on FreeNAS by Craig Rodrigues

Jenkins, Bhyve, and Webdriver: Continuous Integration testing on

FreeNAS

Craig [email protected]

Page 2: Jenkins, Bhyve, and Webdriver: Continuous Integration testing on FreeNAS by Craig Rodrigues

What is Jenkins?

System which provides tools for Continuous Integration, Testing Open source (MIT licensed) Written by Kohsuke Kawaguchi

Page 3: Jenkins, Bhyve, and Webdriver: Continuous Integration testing on FreeNAS by Craig Rodrigues

How do I Install it?

pkg install devel/jenkins

Depends on OpenJDK Needs a few few entries in /etc/rc.conf Additional installation notes:http://forums.freebsd.org/showthread.php?p=239397

Page 4: Jenkins, Bhyve, and Webdriver: Continuous Integration testing on FreeNAS by Craig Rodrigues
Page 5: Jenkins, Bhyve, and Webdriver: Continuous Integration testing on FreeNAS by Craig Rodrigues

How do I configure it?

Easy to use web interface for configuration Functionality extensible via 3rd party plugins (over 700)

Page 6: Jenkins, Bhyve, and Webdriver: Continuous Integration testing on FreeNAS by Craig Rodrigues

Where do I Get Help?

http://jenkins-ci.org, active community Books Conferences Consulting companies, http://cloudbees.com

Page 7: Jenkins, Bhyve, and Webdriver: Continuous Integration testing on FreeNAS by Craig Rodrigues

Jenkins User Conference 2013

Page 8: Jenkins, Bhyve, and Webdriver: Continuous Integration testing on FreeNAS by Craig Rodrigues

How do I use it?

Page 9: Jenkins, Bhyve, and Webdriver: Continuous Integration testing on FreeNAS by Craig Rodrigues

How am I trying to use Jenkins?

Developer Build TestSCM (git) Deploy

Page 10: Jenkins, Bhyve, and Webdriver: Continuous Integration testing on FreeNAS by Craig Rodrigues

BHyve

BSD Hypervisor, in FreeBSD 10 works great for booting/testing images Python pexpect over serial interface to drive installer thanks to Neel, Peter

Page 11: Jenkins, Bhyve, and Webdriver: Continuous Integration testing on FreeNAS by Craig Rodrigues

Webdriver

Framework for automated web app testing Built into Firefox I'm using Python Splinter library to interface with Webdriver:http://splinter.cobrateam.info

Page 12: Jenkins, Bhyve, and Webdriver: Continuous Integration testing on FreeNAS by Craig Rodrigues

Webdriver example usingPython splinter library

from splinter import Browser browser = Browser()browser.visit("http://www.yahoo.com")browser.find_by_id("p_13838465-p").fill("FreeBSD vendor summit")browser.find_by_id("search-submit").click()

Page 13: Jenkins, Bhyve, and Webdriver: Continuous Integration testing on FreeNAS by Craig Rodrigues

Special Thanks

FreeBSD ports team BHyve team

Page 14: Jenkins, Bhyve, and Webdriver: Continuous Integration testing on FreeNAS by Craig Rodrigues

FreeNAS and TrueNAS

#1 Open-Source NAS software Take a look and try it out! http://www.freenas.org

TrueNAS:http://www.ixsystems.com/truenas