Skip to content
/ bob Public

Bob the Builder - package your software into a deb/rpm/tar, publishes to a repository, and notifies you all by using a simple yaml file

Notifications You must be signed in to change notification settings

balanced/bob

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

70 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

#BOB the buildah

Build Status Alt text

Builds debian packages via fpm and pip.

Usage

To build an ubuntu debian from [email protected]://balanced/balanced.git for tag 1.8.1 run

bob build ubuntu balanced balanced 1.8.1

TODO:

  • wrap in an http api and accept hooks from github and travis

Configure a project

Bob uses a YAML file (build.yml) inside the project it's building. Here's how it should look:

---
# which version of the settings to use.
version: 1
description: my sexy project
targets:
  # ubuntu is currently the only target
  ubuntu:
    # do not package anything that matches these globs
    exclude:
      - "*.pyc"
      - ".git*"
    # required to build this project
    build_dependencies:
      - libpq-dev
      - python-dev
      - libxml2-dev
      - libxslt1-dev
    # required to install this package
    dependencies:
      - libxml2
      - libxslt1.1
      - libpq5
      - ipython
    # any executable scripts relative to the root of this project that will be
    # executed upon package action
    before_install:
    after_install:
      - scripts/after-install.sh
    before_remove:
      - scripts/before-remove.sh
    after_remove:
    # what to do with the finished product (s3 and depot are the only actions
    # right now)
    destinations:
#      s3:
#        destination: s3://apt.vandelay.io
      depot:
        destination: s3://apt.vandelay.io
        gpg_key: 277E7787
        component: unstable
        codename: lucid
    # when and where to tell the world about builds
    notifications:
      hipchat:
        room_id: dev
        color: purple
        on:
        - success
        - failure

You'll also need to configure travis to call out to bob when it finishes. In .travis.yml:

notifications:
  webhooks:
    urls:
      - https://builder.vandelay.io/hooks/travis
    on_success: always
    on_failure: never
    on_start: false

Hacking on it

Run via uwsgi

bobd -u uwsgi.ini -- --env=BOB_CONF=xxx.ini

Manually kicking off a build

curl https://builder.vandelay.io/hooks/travis --data-binary  '{"branch": "1.4.14", "commit": "1.4.14", "repository": {"name": "digi", "owner_name": "balanced"}, "result_message": "Passed"}

About

Bob the Builder - package your software into a deb/rpm/tar, publishes to a repository, and notifies you all by using a simple yaml file

Resources

Stars

Watchers

Forks

Packages

No packages published