a continuous packaging pipeline

20
A Continuous Packaging Pipeline Maciej Pasternacki <[email protected]> 3ofcoins @mpasternacki

Upload: maciej-pasternacki

Post on 19-May-2015

925 views

Category:

Technology


1 download

DESCRIPTION

Description of a continuous integration pipeline for building Debian/Ubuntu packages. Ignite talk given on Devopsdays Europe 2012 in Rome.

TRANSCRIPT

Page 2: A Continuous Packaging Pipeline

– Nginx is too old

– I need Node.js

– I need foo.jar on all application servers

– A Java VM would help using it…

}Compiling on serveris WRONG

Web infrastructure problems

Page 3: A Continuous Packaging Pipeline
Page 4: A Continuous Packaging Pipeline

Debian Policy Manual

http://www.flickr.com/photos/seasonalplume/2519540603/

Page 5: A Continuous Packaging Pipeline

Metarake

Apt-get

Evoker

Freight

Vendori!cator

FPMPhase 3:

Pro!t

Page 7: A Continuous Packaging Pipeline

overd

ueVendorificator

https://github.com/3ofcoins/vendorificator/

Vendor everything

Page 8: A Continuous Packaging Pipeline

Vendorificator

archive 'hello', :version => '2.8', :strip_root => true, :url => "http://ftp.gnu.org/gnu/hello/hello-2.8.tar.gz"git 'git://github.com/octocat/Hello-World.git'

Integrate upstream modules in a Git repository

Page 9: A Continuous Packaging Pipeline

Vendorificator

archive 'hello', :version => '2.8', :strip_root => true, :url => "http://ftp.gnu.org/gnu/hello/hello-2.8.tar.gz"git 'git://github.com/octocat/Hello-World.git'

Page 10: A Continuous Packaging Pipeline

Continuous Integration

Page 12: A Continuous Packaging Pipeline

Metarake

A Rake extension that:

1.Discovers modules and their build targets

2.Builds modules with unpublished targets

3.Publishes the built targets

https://github.com/3ofcoins/metarake/

Page 13: A Continuous Packaging Pipeline

Metarake

It’s used to:

1.Find */Rakefile and their *.deb targets

2.Build packages not in the apt repo

3.Push built packages into the apt repo

https://github.com/3ofcoins/metarake/

Page 14: A Continuous Packaging Pipeline

Evoker

https://github.com/3ofcoins/evoker/

An add-on to Rake to download and manage external dependencies of a project, patch or

modify them as needed, cache them, etc.

Page 15: A Continuous Packaging Pipeline

Evoker

https://github.com/3ofcoins/evoker/

tarball('swftools', :url => 'http://www.swftools.org/swftools-0.9.1.tar.gz')patch 'swftools', 'swftools-Makefile_hack.patch', '-p1' if linux?task 'swftools' => [ :python, 'swftools_pyconfig.py' ] do sh <<-EOF set -e -x cd swftools eval `../python/bin/python ../swftools_pyconfig.py` ./configure make EOFend

Page 16: A Continuous Packaging Pipeline

FPM

https://github.com/jordanissel/fpm/

http://www.flickr.com/photos/dominicspics/1406305389/

Page 19: A Continuous Packaging Pipeline

Metarake

Apt-get

Evoker

Freight

Vendori!cator

FPMPhase 3:

Pro!t