/rebuild

Zero-dependency, reproducible build environments

Primary LanguageRubyApache License 2.0Apache-2.0

Gem Version Build Status Build Status

Usage

Install dependencies

  • ruby
  • ruby-dev
  • gem
  • gem-dev
  • gem rake
  • docker engine

Install rebuild CLI

gem install rbld

Search for pre-created environments on Docker Hub

rbld search

Deploy environment for Raspberry Pi

rbld deploy rpi-raspbian:v001

Build code for Raspberry Pi

cd code-location
rbld run rpi-raspbian:v001 -- make -j8

Deploy environment for BeagleBoard-X15

rbld deploy bb-x15:16-05

Build code for BeagleBoard-X15

cd code-location
rbld run bb-x15:16-05 -- make -j8

Create environment for Raspberry Pi

git clone git://github.com/raspberrypi/tools.git rpi-tools

rbld create --base ubuntu:16.04 rpi-raspbian

rbld modify rpi-raspbian:initial

>> sudo apt-get update
>> sudo apt-get install -y make
>> TOOLCHAIN=gcc-linaro-arm-linux-gnueabihf-raspbian-x64
>> sudo cp -r rpi-tools/arm-bcm2708/$TOOLCHAIN /
>> echo export CC=/$TOOLCHAIN/bin/arm-linux-gnueabihf- | sudo tee -a /rebuild/rebuild.rc
>> exit

rbld commit rpi-raspbian --tag v001

Project documentation

Rebuild CLI gem

Running tests

rebuild test suite is based on cucumber/aruba:

  1. Run bundle to install cucumber, aruba and other dependencies
  2. Run cucumber [OPTIONS] in the source tree root:
  • cucumber to run all tests using binaries from the working copy
  • cucmber -p installed to run tests using installed binaries
  • cucumber -t ~@slow to exclude slow tests

Use environment variable registry_type to control registry type used during tests:

  • registry_type=rebuild cucumber ... to use native rebuild registry (default)
  • registry_type=docker cucumber ... to use docker registry
  • registry_type=dockerhub cucumber ... to use Docker Hub (Docker Hub credentials needed)

Rebuild is licensed under the Apache License, Version 2.0.
See LICENSE for the full license text.