You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@qpid.apache.org by Justin Ross <jr...@apache.org> on 2014/03/05 14:05:25 UTC
Qpid dist tool
I've been working on a new tool to generate and test Qpid releases. My
intentions are to
- Improve automated testing of releases
- Make it easier to establish continuous delivery of Qpid components
- Treat Qpid's various source modules as independent parts of a bigger
Qpid distribution
What I have is an installable command-line tool for going from source URLs
at one end to tested release artefacts at the other.
Generate all release artefacts
% qpid-dist release
Generate the qpid-cpp and qpid-java-* artefacts
% qpid-dist release -m cpp -m java
Test builds, installs, and release artefacts (implies producing each of
those)
% qpid-dist test
The source locations are controlled via a config file. They can be
overriden for use from local checkouts. The output is a directory
("output") that contains the source exports, build roots, install root, and
release artefacts.
[jross@localhost baker]$ l output/
total 16K
drwxrwxr-x. 11 jross jross 4.0K Mar 4 18:44 source/
drwxrwxr-x. 7 jross jross 4.0K Mar 4 18:44 build/
drwxrwxr-x. 12 jross jross 4.0K Mar 4 18:21 install/
drwxrwxr-x. 3 jross jross 4.0K Mar 4 18:44 release/
The default configuration is setup for periodic trunk builds. Releases are
available as alternate configurations.
https://github.com/ssorj/baker/blob/master/etc/qpid-dist.conf
https://github.com/ssorj/baker/blob/master/etc/qpid-dist-0.26.conf
In general, the philosophy of the tool is to leave as much of the work as
possible to the existing build and test infrastructure of a given module.
Right now, for instance, that means that the qpid-java build uses ant. I
expect in the near future I will be switching it to use maven.
The source is available at the URL below. I'd eventually like to find it a
home in the Qpid tree.
https://github.com/ssorj/baker
Thanks,
Justin
---
qpid-dist --help output:
[jross@localhost baker]$ qpid-dist --help
usage: qpid-dist [-h] [-m MODULE] [--output DIR] [--config FILE]
[--release-tag TAG]
TASK
A tool to build, test, and release the Qpid distribution
positional arguments:
TASK Run TASK; see 'task arguments' below
optional arguments:
-h, --help show this help message and exit
-m MODULE, --module MODULE
Run task on MODULE; this argument may be repeated;
by default
all modules are used
--output DIR Send output to DIR; the default is 'output' in the
current
working directory
--config FILE Read configuration from FILE; the default is
'/home/jross/baker
/qpid-dist.conf'
--release-tag TAG Label each release artifact with TAG; the default
is 'trunk-
YYYY-MM-DD'
task arguments:
status Get information about the project
export Export module source code
build Build the code
install Install the code
release Generate release artifacts
test_build Test the build
test_install Test the installation
test_release Test the release artifacts
test Run all tests