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.

Metadata

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 Provenance Actions
sivart-0.2.1.tar.gz 4.7 kB Without provenance Details for sivart-0.2.1.tar.gz

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

Security for sivart 0.2.1

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

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