Skip to main content

Sivart

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.

Release files for sivart 0.2.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for sivart 0.2.1
File Size Uploaded
sivart-0.2.1.tar.gz 4.7 kB Details

Release files / sivart-0.2.1.tar.gz

Download URL sivart-0.2.1.tar.gz
Size 4.7 kB
Tags Source
SHA-256 checksum
How to use checksums
3a9d9ae61b2c1298d84dbfa8caf89c9dc640651985c66f2ae920c9607d4e0d44
BLAKE2b-256 checksum
How to use checksums
ea27f0d9a936416f047dff7e7a20cdd2d8cf304aff32673d79ad1a4e0e354447
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release history Release notifications | RSS feed

This release

0.2.1 This release

1 release file

0.2.0

1 release file

0.1.7

1 release file

0.1.6

1 release file

0.1.5

1 release file

0.1.4

1 release file

0.1.3

1 release file

0.1.2

1 release file

0.1.1

1 release file

0.1.0

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page