This is a pre-production deployment of Warehouse. Changes made here affect the production instance of PyPI (pypi.python.org).
Help us improve Python packaging - Donate today!

Polysquare Travis-CI Container Root

Project Description

Creates a self-contained package-management installation, without root access.

This allows you to install a pre-defined set of packages to a directory and then execute commands using the packages installed in that directory.

Supports Windows, OS X and Linux.

On Windows and OS X, local versions of chocolatey and brew are installed respectively, with packages installing to the specified folder. Commands are executed with environment variables set such that the locally installed packages will be used by any software built or installed using the psq-travis-container-exec wrapper. Only the host architecture is supported.

On Linux, `proot <http://proot.me>`_ is used to “containerize” a downloaded linux distribution, where the package manage operates only on the directory in which the downloaded linux distribution exists. This allows you to install packages using apt-get or yum without touching other system files. proot allow allows for different architectures to be specified as well, which are emulated transparently using the qemu-user-mode tool.

For Linux, an alternative ‘local’ option is also provided which does not incur the overhead of proot but is not as flexible. Sadly, on Travis-CI, proot no longer functions correctly and so the latter mode of operation is required.

Status

| Travis CI (Ubuntu) | AppVeyor (Windows) | Coverage | PyPI | Licence | |——————–|——————–|———-|——|———| |`|Travis| <http://travis-ci.org/polysquare/polysquare-travis-container>`_|`|AppVeyor| <https://ci.appveyor.com/project/smspillaz/polysquare-travis-container-vd3yj>`_|`|Coveralls| <http://coveralls.io/polysquare/polysquare-travis-container>`_|`|PyPIVersion| <https://pypi.python.org/pypi/polysquare-travis-container>`_`|PyPIPythons| <https://pypi.python.org/pypi/polysquare-travis-container>`_|`|License| <http://github.com/polysquare/polysquare-travis-container>`_|

Caveats

64 bit executables cannot be emulated on a 32 bit architecture.

Installation

polysquare-travis-container can be installed using using pip from PyPI

Creating a container

Containers can be created with psq-travis-container-create:

usage: psq-travis-container-create [-h] [--distro {Fedora,
                                                   Debian,
                                                   Ubuntu,
                                                   Windows,
                                                   OSX}]
                                   [--release RELEASE]
                                   [--arch {ppc,x86_64,x86,arm}]
                                   [--repositories REPOSITORIES]
                                   [--packages PACKAGES]
                                   CONTAINER_DIRECTORY

Create a Travis CI container If an arg is specified in more than one place,
then command-line values override environment variables which override
defaults.

positional arguments:
  CONTAINER_DIRECTORY   Directory to place container in

optional arguments:
  -h, --help            show this help message and exit
  --distro {Fedora,Debian,Ubuntu,Windows,OSX}
                        Distribution name to create container of
                        [env var: CONTAINER_DISTRO]
  --release RELEASE     Distribution release to create container of
                        [env var: CONTAINER_RELEASE]
  --arch {ppc,x86_64,x86,arm}
                        Architecture (all architectures other than the
                        system architecture will be emulated with qemu)
                        [env var: CONTAINER_ARCH]
  --repositories REPOSITORIES
                        A file containing a list of repositories to add
                        before installing packages.  Special keywords will
                        control the operation of this file: {release}: The
                        distribution release (eg, precise) {ubuntu}: Ubuntu
                        archive URL {launchpad}: Launchpad PPA URL header
                        (eg, http://ppa.launchpad.net)
  --packages PACKAGES   A file containing a list of packages to install

The distribution filesystem itself is placed in a subdirectory of CONTAINER_DIRECTORY, so multiple distribution configurations can be placed in a single CONTAINER_DIRECTORY. A mini-distribution of proot will also be placed in CONTAINER_DIRECTORY. This directory should be cached, for instance:

cache:
  directories:
  - CONTAINER_DIRECTORY

Packages will only be installed if the container is being created and not restored from the cache. To install additional packages, the travis caches should be deleted.

Special directories like /tmp and /home are linked automatically, so you can run binaries or scripts directly from the project root.

Using a container

To run a command inside a container, use psq-travis-container-exec:

usage: psq-travis-container-exec [-h] [--distro {Fedora,
                                                 Debian,
                                                 Ubuntu,
                                                 Windows,
                                                 OSX}]
                                 [--release RELEASE]
                                 [--arch {ppc,x86_64,x86,arm}] --cmd
                                 [CMD [CMD ...]]
                                 CONTAINER_DIRECTORY

Use a Travis CI container If an arg is specified in more than one place,
then command-line values override environment variables which override
defaults.

positional arguments:
  CONTAINER_DIRECTORY   Directory to place container in

optional arguments:
  -h, --help            show this help message and exit
  --distro {Fedora,Debian,Ubuntu,Windows,OSX}
                        Distribution name to create container of
                        [env var: CONTAINER_DISTRO]
  --release RELEASE     Distribution release to create container of
                        [env var: CONTAINER_RELEASE]
  --arch {ppc,x86_64,x86,arm}
                        Architecture (all architectures other than the
                        system architecture will be emulated with qemu)
                        [env var: CONTAINER_ARCH]
  -- [CMD [CMD ...]]    Command to run inside of container

Executables in CMD are resolved relative to the distribution container, so running bash would run CONTAINER_DIR/bin/bash and not /bin/bash inside travis.

The --container, --release and --arch options are used to select a pre-existing distribution container set up with psq-travis-container-create.

Release History

Release History

This version
History Node

0.0.45

History Node

0.0.44

History Node

0.0.43

History Node

0.0.42

History Node

0.0.41

History Node

0.0.40

History Node

0.0.39

History Node

0.0.38

History Node

0.0.37

History Node

0.0.36

History Node

0.0.35

History Node

0.0.34

History Node

0.0.33

History Node

0.0.32

History Node

0.0.31

History Node

0.0.30

History Node

0.0.29

History Node

0.0.28

History Node

0.0.27

History Node

0.0.26

History Node

0.0.25

History Node

0.0.24

History Node

0.0.23

History Node

0.0.22

History Node

0.0.21

History Node

0.0.20

History Node

0.0.19

History Node

0.0.18

History Node

0.0.17

History Node

0.0.15

History Node

0.0.14

History Node

0.0.13

History Node

0.0.12

History Node

0.0.11

History Node

0.0.10

History Node

0.0.9

History Node

0.0.8

History Node

0.0.7

Download Files

Download Files

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

File Name & Checksum SHA256 Checksum Help Version File Type Upload Date
polysquare-travis-container-0.0.45.tar.gz (35.7 kB) Copy SHA256 Checksum SHA256 Source Jan 8, 2017

Supported By

WebFaction WebFaction Technical Writing Elastic Elastic Search Pingdom Pingdom Monitoring Dyn Dyn DNS Sentry Sentry Error Logging CloudAMQP CloudAMQP RabbitMQ Heroku Heroku PaaS Kabu Creative Kabu Creative UX & Design Fastly Fastly CDN DigiCert DigiCert EV Certificate Rackspace Rackspace Cloud Servers DreamHost DreamHost Log Hosting