Python wrapper for Veracity's command-line interface.
Project description
Introduction
This library provides a Python wrapper for Veracity’s command-line interface. It includes objects for repositories, working copies, and other commonly-used items. The library also installs several command-line tools to work with Veracity’s distributed build tracking features.
Getting Started
Requirements
Python 3.3
Veracity 2.5
Dependencies
sh: https://pypi-hypernode.com/pypi/sh (subprocess wrapper for Mac/Linux)
pbs: https://pypi-hypernode.com/pypi/pbs (subprocess wrapper for Windows)
virtualenv: https://pypi-hypernode.com/pypi/virtualenv (isolated builds)
Installation
The package can be installed using pip:
pip install python-veracity
or directly from source:
python setup.py install
After installation, it is available under the name veracity:
>>> import veracity >>> veracity.__version__ >>> from veracity import vv >>> vv.version() >>> vv.repos()
Scripting Interface
A sample script might look similar to the following:
#!/usr/bin/env python from veracity import Repository, WorkingCopy, Item # Clone a repo repo = Repository('veracity', remote='http://public.veracity-scm.com/repos/veracity') # Display Repository attributes print repo.name print repo.users print repo.branches print repo.tags # Check out a working copy (from a Repository) work = repo.checkout("~/v/veracity") work.delete() # Check out a working copy (by repo name) work = WorkingCopy("~/v/veracity", repo='veracity') work.update(branch='master') # Change some files item = Item('docs/GettingStarted.txt', work=work) item.lock()
Build Tracking
This package also installs a set of command-line tools to work with Veracity’s Build Tracking feature: http://veracity-scm.com/qa/questions/123
Configuration
In your master branch, create a setup.cfg similar to the following:
[vv-tracking] repositories = python-veracity series = N, C environments = W, M, L virtualenv = True [vv-poller] N_branches = * N_command = [ $( date "+%H" ) = 00 ] N_command-nt = if %TIME:~0,2%==00 (exit /b 0) else (exit /b 1) N_sleep = 60 * 30 N_start = Q C_branches = master, develop, feature-*, release-*, hotfix-* C_sleep = 60 C_start = Q [vv-builder] U_enter = Q U_path = . U_command = make depends U_fail = UF B_enter = U B_path = . B_command = make install B_fail = BF T_enter = B T_path = . T_command = make test T_fail = TF C_enter = T C_path = . C_command = make check C_fail = CF C_exit = D
The series, environments, and statuses must match what is defined in your repository’s build configuration page: http://SERVER.com/repos/REPO/build-setup
Poller
To run one iteration of a poller for your repository:
vv-poller <repository names>
Or, to run forever as a daemon:
vv-poller <repository names> --daemon
From within a working copy, the poller configuration can be tested using:
vv-poller --test
Builder
To run one iteration of a builder for your repository:
vv-builder <repository names> --env <environment alias>
Or, to run forever as a daemon:
vv-builder <repository names> --env <environment alias> --daemon
From within a working copy, the builder configuration can be tested using:
vv-builder --test
Changelog
0.0.11 (2014/01/26)
Updated the package from a template.
0.0.10 (2013/11/19)
Switched to Python 3.
0.0.9 (2013/09/19)
Prepared files for porting to Python 3
0.0.8 (2013/08/24)
Expanded vv-tracking interface to initialize repos and delete builds.
Now always pushing when builds are created.
0.0.7 (2013/08/01)
Added ‘–no-config’ argument to vv-poller/builder to ignore local config.
Implemented WorkingCopy.copy() method.
Now always pushing new build requests and updated build statuses.
0.0.6 (2013/07/23)
Repository.get_builds() now returns builds descending by start time.
0.0.5 (2013/07/23)
Preserving case in setup.cfg options.
[vv-tracking] ‘virtualenv’ is a now a boolean (env name: vv-builder-env)
Now limiting Repository.get_builds() to 50 parsed build requests.
0.0.4 (2013/07/20)
Removed pull/push logging on daemons.
0.0.3 (2013/07/20)
Daemons now only show logging output on activity.
Added better repo synchronization in the poller and builder.
0.0.2 (2013/07/19)
Added a [vv-tracking] setting to build in a virtualenv: virtualenv=<name>
Added a [vv-poller] setting to allow rebuilds: <A>_rebuild = True
Removed the non-ETA states (UP, BP, TP, CP) from the sample build configuration.
Limiting the rate of automatic push/pull to every 30 seconds.
0.0.1 (2013/07/16)
Initial release of python-veracity.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.