Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/blue-yonder/devpi-builder
Automatically build and upload python packages to devpi
https://github.com/blue-yonder/devpi-builder
devpi packaging python wheels
Last synced: about 14 hours ago
JSON representation
Automatically build and upload python packages to devpi
- Host: GitHub
- URL: https://github.com/blue-yonder/devpi-builder
- Owner: blue-yonder
- License: other
- Created: 2014-07-30T19:08:40.000Z (over 10 years ago)
- Default Branch: master
- Last Pushed: 2024-04-15T08:07:00.000Z (7 months ago)
- Last Synced: 2024-04-16T04:18:31.437Z (7 months ago)
- Topics: devpi, packaging, python, wheels
- Language: Python
- Homepage:
- Size: 274 KB
- Stars: 76
- Watchers: 17
- Forks: 30
- Open Issues: 3
-
Metadata Files:
- Readme: README.rst
- Changelog: CHANGELOG.rst
- License: COPYING
Awesome Lists containing this project
- starred-awesome - devpi-builder - Automatically build and upload python packages to devpi (Python)
README
=========================
Brandon the Devpi Builder
=========================.. image:: https://coveralls.io/repos/blue-yonder/devpi-builder/badge.svg?branch=master
:alt: Coverage Status
:target: https://coveralls.io/r/blue-yonder/devpi-builder?branch=master
.. image:: https://badge.fury.io/py/devpi-builder.svg
:alt: Latest Version
:target: https://pypi.python.org/pypi/devpi-builderBrandon, the devpi builder, takes a ``requirements.txt`` and incrementally fills a devpi_ index with wheels of the listed python packages.
Brandon by Example
==================Given a ``requirements.txt``, we can upload all listed packages to the index ``opensource/Debian_7`` on a local devpi using the following command::
$ devpi-builder requirements.txt http://localhost:3141/opensource/Debian_7
Example of such a ``requirements.txt``::
progressbar==0.2.2
progressbar==0.2.1
PyYAML==3.11Commandline Usage
=================
::usage: devpi-builder [-h] [--batch] [--user USER] [--password PASSWORD]
[--blacklist BLACKLIST] [--pure-index PURE_INDEX]
[--junit-xml JUNIT_XML] [--run-id RUN_ID] [--dry-run]
[--client-cert CLIENT_CERT]
requirements indexCreate wheels for all given project versions and upload them to the given
index.positional arguments:
requirements requirements.txt style file specifying which project
versions to package.
index The index to upload the packaged software to.optional arguments:
-h, --help show this help message and exit
--batch Batch mode. Do not prompt for credentials
--user USER The user to log in as.
--password PASSWORD Password of the user.
--blacklist BLACKLIST
Packages matched by this requirements.txt style file
will never be build.
--pure-index PURE_INDEX
The index to use for pure packages. Any non-pure
package will be uploaded to the index given as
positional argument. Packages already found in the
pure index will not be built, either.
--junit-xml JUNIT_XML
Write information about the build success / failure to
a JUnit-compatible XML file.
--run-id RUN_ID Add the given string to all entries in the XML output,
allowing to distinguish output from multiple runs in a
merged XML.
--dry-run Build missing wheels, but do not modify the state of
the devpi server.
--client-cert CLIENT_CERT
Client key to use to authenticate with the devpi
server.The following environment variables can be used instead of command line arguments:
``DEVPI_USER``
The value of this environment variable will be used if ``--user`` is not given.``DEVPI_PASSWORD``
The value of this environment variable will be used if ``--password`` is not given.Features
========* Read a ``requirements.txt`` style input file.
* Read user/pass from the environment (using ``DEVPI_USER`` and ``DEVPI_PASSWORD``).
* Support multiple versions of a package in the same file.
* Only build packages not yet in the target index.
* Support a black-list for packages to never be built and uploaded (certain packages like numpy are fragile regarding their interdependency with other packages).
* Can use separate indices for plain python packages and those with binary contents.
* Can log build results to a JUnit compatible XML file, thus that it can be parsed by Jenkins.License
=======`New BSD`_
.. _devpi: http://doc.devpi.net/latest/
.. _New BSD: https://github.com/blue-yonder/devpi-builder/blob/master/COPYING