HOW TO SETUP YOUR OWN RUNBOT. SEINLET Nicolas, TECHNICAL CONSULTANT

Similar documents
Firenze. Iottly, open source Internet of Things distribution

Continuous Integration and Delivery. manage development build deploy / release

deploying meteor with meteor up

1 Download & Installation Usernames and... Passwords

Intellicus Enterprise Reporting and BI Platform

DevShop. Drupal Infrastructure in a Box. Jon Pugh CEO, Founder ThinkDrop Consulting Brooklyn NY

Parallels Plesk Automation

depl Documentation Release depl contributors

System Admin Module User Guide. Schmooze Com Inc.

Simple and powerful site deployment with capistrano

Django FTP Deploy Documentation

TestOps: Continuous Integration when infrastructure is the product. Barry Jaspan Senior Architect, Acquia Inc.

Continuous Integration and Delivery at NSIDC

How To Manage Change In Jeepers

Source Code Management for Continuous Integration and Deployment. Version 1.0 DO NOT DISTRIBUTE

Configuring the BIG-IP system for FirePass controllers

Application Note Startup Tool - Getting Started Guide

VMware Identity Manager Connector Installation and Configuration

138 Configuration Wizards

Mac OS X Security Checklist:

Putting It All Together. Vagrant Drush Version Control

Dry Dock Documentation

Installation Manual for Catalog Infinite Scroll extension

Double Feature Talk. 1) Intro to SSL 2) Git Basics for Devs & Designers

DevKey Documentation. Release 0.1. Colm O Connor

Introduction to the Git Version Control System

Client applications are available for PC and Mac computers and ios and Android mobile devices. Internet

Continuous Integration. CSC 440: Software Engineering Slide #1

Version Control Your Jenkins Jobs with Jenkins Job Builder

Technology and Cost Considerations for Cloud Deployment: Amazon Elastic Compute Cloud (EC2) Case Study

Using GitHub for Rally Apps (Mac Version)

Installation Process

Administering Jive Mobile Apps

Defender Token Deployment System Quick Start Guide

Jenkins World Tour 2015 Santa Clara, CA, September 2-3

StriderCD Book. Release 1.4. Niall O Higgins

Git - Working with Remote Repositories

Stellar Phoenix Exchange Server Backup

Introduction to Version Control with Git

Azure Day Application Development

Continuous Integration

DevOps Course Content

1. Data Domain Pre-requisites. 2. Enabling OST

A central continuous integration platform

Version control. with git and GitHub. Karl Broman. Biostatistics & Medical Informatics, UW Madison

Mobilize workforce using Fiori apps: Graybar Story

Preparing a Windows 7 Gold Image for Unidesk

BaseManager & BACnet Manager VM Server Configuration Guide

SUCCESFUL TESTING THE CONTINUOUS DELIVERY PROCESS

HOW TO... LAUNCH YOUR BUSINESS ONLINE PRESENTED BY

Introduction to Google Apps for Business Integration

ALTIRIS Deployment Solution 6.8 PXE Overview

Configuring Network Load Balancing with Cerberus FTP Server

Business Portal for Microsoft Dynamics GP Field Service Suite

APPLICATION NOTE. CC5MPX Digital Camera and IPn3Gb Cellular Modem 10/14. App. Note Code: 3T-Z

COURSE OUTLINE MOC 20413: DESIGNING AND IMPLEMENTING A SERVER INFRASTRUCTURE

FEEG Applied Programming 3 - Version Control and Git II

Getting Started Using Project Photon on VMware Fusion/Workstation

1 Thunderbird v3 and IMAP/SMTP Configuration

Smart Card Authentication. Administrator's Guide

A Guide to New Features in Propalms OneGate 4.0

RingStor User Manual. Version 2.1 Last Update on September 17th, RingStor, Inc. 197 Route 18 South, Ste 3000 East Brunswick, NJ

VMware Identity Manager Administration

ICONICS Using the Azure Cloud Connector

Introduction to Mobile Access Gateway Installation

Introduction to FileWave

NovaBACKUP xsp Version 12.2 Upgrade Guide

Practicing Continuous Delivery using Hudson. Winston Prakash Oracle Corporation

Module 11 Setting up Customization Environment

Integrated Installation Guide

Creating a DUO MFA Service in AWS

How To Install Project Photon On Vsphere 5.5 & 6.0 (Vmware Vspher) With Docker (Virtual) On Linux (Amd64) On A Ubuntu Vspheon Vspheres 5.4

EZcast Installation guide

Eylean server deployment guide

AutoMate BPA Server 10 Installation Guide

Spectrum Technology Platform. Version 9.0. Administration Guide

Migrating 200+ Load Balancers Into Mesos. Stephen Salinas

XStream Remote Control: Configuring DCOM Connectivity

Wireless Local Area Networks (WLANs)

10751-Configuring and Deploying a Private Cloud with System Center 2012

OnCommand Unified Manager 6.2

How to set up SQL Source Control. The short guide for evaluators

Product Version 1.0 Document Version 1.0-B

Wazza s QuickStart 17. Leopard Server - Blogs & Wikis

@CodenvyHQ

MS 50292: Administering and Maintaining Windows 7

Utility Snapshot Utility V2.1. User s Manual

Exchange Mailbox Protection Whitepaper

Avaya Video Conferencing Manager Deployment Guide

VitalQIP Appliance Manager (AM)

OMU350 Operations Manager 9.x on UNIX/Linux Advanced Administration

How To Backup In Cisco Uk Central And Cisco Cusd (Cisco) Cusm (Custodian) (Cusd) (Uk) (Usd).Com) (Ucs) (Cyse

Lesson Plans Microsoft s Managing and Maintaining a Microsoft Windows Server 2003 Environment

How To - Implement Single Sign On Authentication with Active Directory

insync Installation Guide

Transcription:

HOW TO SETUP YOUR OWN RUNBOT SEINLET Nicolas, TECHNICAL CONSULTANT

SUMMARY 1 2 3 4 Introduction Deploy a runbot Configure runbot Create own module 5 Conclusion

Introduction What, Why, When, Who?

What? o Runbot is a continuous integration server o Runbot is an Odoo module o Runbot is a communication tool between functional and technical guys o Live preview with 2 databases (base, all) o Provide build status to GitHub

Why? o Automate test phase o Let test instances leaving o Ease communication between technical and functional guys o Easy to use, even for non-technical guys o Do not replace a Q&A on customer side o Other CI softwares exists and may be already used by technical team o Designed for Odoo by Odoo o Integrated with Git and GitHub

Who? Any member, functional or technical, member of a company which : o Deploy Odoo o Deploy custom module o Deploy custom theme And also : o Developper who wants to test a new module o Reviewer to check the commit o Functional to check a use case o Anybody to test a new app

When? o Since the very beginning of the process o Before every merge o For every functional test o For a new feature test

Deploy a runbot In four steps

Deploy PostgreSQL Step 1 Step 2 Step 3 Step 4 As runbot is an Odoo module, we need PostgreSQL As we'll have many instances of odoo running on the server, we must adapt the PostgreSQL configuration, # of connections, total allocated memory, user authentification, fsync=false,

Deploy Odoo Step 1 Step 2 Step 3 Step 4 o Install python libraries o Install Odoo 8 from the github repo o Install runbot from the odoo-extra github repo o Install any runbot custom module o Don't forget the dbfilter parameter

Add ssh keys for authentification Step 1 Step 2 Step 3 Step 4 Your runbot will need read access to all your repositories, as well as read access to the odoo repository o Generate an ssh key for the linux user running runbot o Add this key to the github, bitbucket, user o Give read access for this user to your repositories

External tools Step 1 Step 2 Step 3 Step 4 o DNS : redirect *.runbot.mycompany.com o NGINX : runbot is running on port 8080 o Fake SMTP server (MailCatcher,...) o Any external software you link to (ftp, edi,...)

Scale up Runbot db Runbot server PostgreSQL Test DB xxx Test DB xxx Runbot server PostgreSQL Test DB xxx Test DB xxx

Configure runbot And how it works

How it's made Server Repositories Branches Builds Jobs Scheduler Update repositories Create missing branches Self assign builds Advance jobs (base, all, run) Update NGINX config

Global parameters o Parameters are shared by all instances o Timeout vs Max CPU time o Runbot domain vs FQDN

Add authentication As runbot is generaly behind a public IP, it's better to create groups and users o Use groups per team, project,... o Add users in groups o Manage default user profile It's possible to use other authentication methods (nginx,...)

Add your first repo : Odoo o The easiest one o Necessary for other repositories o Find missing libraries o Check Nginx o Check smtp o Check dns o Check ssh access to GitHub o Check PostgreSQL config o Check system load

Add your first repo : Odoo

Add your own repo : petstore

Use branch name matching o 1. Same branch name o 2. Common ancestors (git merge-base) o 3. Name splitting on '-' character

o Always on top o No build skipped o Last build not killed Use sticky branches

Link to GitHub o Set GitHub token to use GitHub API o Bi directional link

Create own module for runbot Customize to fit your needs

A first simple custo o Official Odoo repo needed as fallback o Official Odoo repo is already build by Odoo s.a. o Official Odoo repo can be used to test new features o Only build sticky branches

Add a field, Override update_git

Test base Test all Restore customer DB A second one: add a job o Add a field for the db to restore o Restore the database over the existing xxx-all o Upgrade all modules on this database

Add a field, restore the db, do -u all

A harder one: code coverage o http://pypi.python.org/pypi/coverage o Code coverage measurement for Python by Ned Batchelder o When using coverage.py, need to be in instance folder for the.coverage creation o Produce HTML report o Link to the report in the runbot page o Choose which repository needs coverage

Launch a process in a dir

Run coverage

Produce report

Link in the webpage

Result

Conclusion

Your own runbot o Deployable on your own infrastructure o Linked to your GitHub account o Access to your repos o Part of the dev process o Easy to use for everyone o A communication tool o A dev tool o A quick test tool o Customizable to fit your needs o Source code : https://bitbucket.org/nseinlet/xperience2015

Thank You Let's integrate