Giter Site home page Giter Site logo

pennyworth's Introduction

pennyworth 0.2.2

Bruce Wayne: Rebuild it. Just the way it was, brick for brick.

Alfred Pennyworth: Just the way it was, sir?

Bruce Wayne: Yeah. Why?

Alfred Pennyworth: I thought this might be a good opportunity for improving the foundations.

Based upon the principles of continuous integration, pennyworth will help you build assets for any software you use and provides a reasonable means to distribute it throughout your nodes. By using a well tested package management system under the hood for deployment, you can easily roll back versions and manage node level conflicts.

Jenkins can be configured to search for feature branches, for advanced workflows. We’ve included some examples for basic branch tracking.

Many example data bags are included that show how to test, build and package a variety of projects, including Ruby and Clojure projects.

Librarian support

  • To test, run:
bundle install
bundle exec librarian-chef install --verbose

vagrant support

  • you can use ‘vagrant up’ to launch a virtualbox instance based on Ubuntu Natty 11.04 amd64 to run pennyworth
bundle exec vagrant up

chef cookbooks

jenkins

pennyworth

recipe: ssh_keys

  • drops keypairs off for Jenkins, so it can talk to your Git infrastructure later.

recipe: remount_ephemeral

  • on ec2, remount the ephemeral device (with an appropriate filesystem and such) at a convenient location for jenkins

recipe: riak

  • in one of our deployments a pennyworth project required riak, so we shipped it

recipe: default

  • consumes the pennyworth databag items individually, adding them to jenkins and so on.

recipe: update_version

  • ships the update_version script which updates the “package” data bag versions for each job
  • reprepro (formerly known as mirrorer) is a nasty old debian tool that you can use to manage an APT repository
  • could easily slot something like Richard Crowley’s freight project in here

apt

  • upstream opscode cookbook, provides apt repository LWRP which is used to install the repository hosted on the jenkins node

java

  • upstream opscode cookbook, installs java

leiningen

  • installs the leiningen build tool for clojure

data bags

package

  • this allows for an API client to query the chef server for available versions
  • can be updated at end-of-build by Jenkins (examples included)

pennyworth

  • multiple types of jenkins jobs

testing

  • Git based, runs test commands

packaging

  • Git based, runs test, build and package commands.
  • Examples included for building packages with fpm
  • Packages built with fpm can be included into a Reprepro package repository on the system

other tools

  • fpm allows us to build debian packages out of basically anything, including cool stuff like ruby gems and python eggs
  • we use it inside of pennyworth jenkins projects to build architecture-specific assets of varying types of projects

knife deploy plugin

  • to be documented

pennyworth's People

Contributors

dje avatar webframp avatar

Stargazers

 avatar

Watchers

James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.