Skip to main content

A poor man's build farm

Project description

A poor man’s build farm.

What?

A tool to test installation and test steps of your program on various systems.

How?

The architectures, install steps and test scripts are described in a configuration file, which is processed by sivart to run various vagrant boxes with the described configuration, then the tests.

Install

Have a look to .sivart.yml for the detailed steps, but basically you need a working virtualbox and:

pip install sivart

The run:

python -m sivart --help

Format

Sivart’s input is a YAML file that lists configurations, like this:

my_config:
    box: box_url_or_id
    install:
        - step0
        - step1
    script:
        - step0
        - step1

The box field is a valid vagrant box idetnifier, the install field contains commands run as root, and the script field contains commands run as vagrant user.

As your number of config grow, you can use facets to store common config elements:

.shared:
    install:
        - step0
        - step1
    script:
        - step0
        - step1

.config0:
    using:
        - .shared
    box: box0

.config1:
    using:
        - .shared
    box: box1

which makes it easy to perform the same steps on a 32 and 64 bits machine, for instance.

Finally, there is a env configuration to test various parameters, e.g. various compilers:

.env0:
    env:
        - CC=gcc CXX=g++
        - CC=clang CXX=clang++

.env1:
    env:
        - CFLAGS=-O1
        - CFLAGS=-O2
        - CFLAGS=-O3

run:
    using:
        - env0
        - env1
    script:
        - $CC $CFLAGS hello.c

this runs $CC $CFLAGS hello.c for the Cartesian product of the combination of .env0 and .env1.

Additionnaly, you can use external variables prefixed by a %, as in:

.cflags:
    env:
        - CC=gcc CXX=g++ CXXFLAGS=%CXXFLAGS CFLAGS=%CFLAGS
        - CC=clang CXX=clang++ CXXFLAGS=%CXXFLAGS CFLAGS=%CFLAGS

And set this variable from the command line!

Have a look to examples/* for more… examples!

Why?

Because I needed an automated way to test the Pythran compiler on various architecture (32/64 bits), various OS and various distribution.

Project details


Release history Release notifications

This version
History Node

0.2.1

History Node

0.2.0

History Node

0.1.7

History Node

0.1.6

History Node

0.1.5

History Node

0.1.4

History Node

0.1.3

History Node

0.1.2

History Node

0.1.1

History Node

0.1.0

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Filename, size & hash SHA256 hash help File type Python version Upload date
sivart-0.2.1.tar.gz (4.7 kB) Copy SHA256 hash SHA256 Source None Feb 24, 2015

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging CloudAMQP CloudAMQP RabbitMQ AWS AWS Cloud computing Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page