diff options
author | Lars Wirzenius <liw@liw.fi> | 2012-09-03 19:19:08 +0100 |
---|---|---|
committer | Lars Wirzenius <liw@liw.fi> | 2012-09-03 19:19:08 +0100 |
commit | b1ca3b12dee13c53992dfe52bef378f35f7d0da1 (patch) | |
tree | a38ca545412d72b7caee5aad11f095770af0cf9b /README | |
parent | e69d30e5d7e73e8144798b32f5b75aa4b067269c (diff) | |
download | jenkinstool-b1ca3b12dee13c53992dfe52bef378f35f7d0da1.tar.gz |
Update README
Diffstat (limited to 'README')
-rw-r--r-- | README | 48 |
1 files changed, 12 insertions, 36 deletions
@@ -5,11 +5,13 @@ jenkinstool manages jobs in a Jenkins instance. It creates, updates, and removes jobs for my projects in a systematic manner. I have a bunch of personal projects, and I like to have continuous -integration for them, especially since many of my projects depend on -each other. For example, the `cliapp` command line application framework -for Python is used by every other project of mine that has a command -line interface of any kind. When I make any changes to `cliapp`, I want -to catch any problems they may cause as early as possible. +integration for them, especially since many of my projects depend +on each other. For example, the `cliapp` command line application +framework for Python is used by almost every other project of mine +that has a command line interface of any kind. When I make any changes +to `cliapp`, I want to catch any problems they may cause as early +as possible. Thus, after I push changes to `cliapp`, the test suites +for all the other projects should be run. I create Debian packages of most of my projects, and I want that to be done as automatically as possible. The Debian packaging toolset is @@ -26,41 +28,15 @@ As a result, I have a large number of very similar jobs in Jenkins, and I refuse to even try to manage them manually. Instead, I wrote a tool to do that for me. -Note that jenkinstool is in its early days of development. +Note that jenkinstool is in its early days of development. It is now +ready for me to start using it, but it may or may not be useful to you. Pipelines --------- -I have many projects. For each project, I may want to do some or all of -the following: - -* build the project in one or more environments: different Debian releases, - other Linux distributions, maybe other operating systems; also, different - CPU architectures; in the future, maybe other variations - - I set up each environment separately, as a virtual machine - - the environments are not set up as "workers" in Jenkins, since that - requires having Jenkins run in the worker; instead, jenkinstool - generates the necessary shell commands to run stuff in each - environment - - as the first step of the build, update the environment to use - latest versions of all my projects -* if the build succeeds, generate a release tarball - - a suitable version number is invented if the commit is not an - actual release -* if the project is packaged for Debian, build Debian source package, - then build binary packages for each Debian release being supported - - for example, squeeze (for upload to code.liw.fi) and sid (for - upload to Debian), both on amd64 and i386 - - if the builds work, run lintian on the resulting .changes files - - finally, upload source and binary packages to an apt - repository on the Jenkins master; this repository is used by - the Debian package build jobs so that the newly built packages - can be used for future builds without having to upload to a real - repository -* finally, trigger the pipeline for any reverse dependency project - - e.g., since cliapp depends on coverage-test-runner, if - coverage-test-runner uploads new Debian packages, trigger the - pipeline for cliapp +There used to be documentation here for the pipelines, but it got out of +date. The code is living too much, for now, to be easily documentable. +Thus I refer you to the `jenkinstool` file. For now. Author ------ |