diff options
author | Lars Wirzenius <liw@liw.fi> | 2012-08-19 09:25:11 +0100 |
---|---|---|
committer | Lars Wirzenius <liw@liw.fi> | 2012-08-19 09:25:11 +0100 |
commit | 0cd63af99fe4dce0c5b91d0b6f34e8dae65bde3d (patch) | |
tree | 82fd22140ea32098619f443066a9a78b86ef4f4e /jenkinstool | |
parent | 1aefad969769f1f6e23fa1359571a45603d7bd34 (diff) | |
download | jenkinstool-0cd63af99fe4dce0c5b91d0b6f34e8dae65bde3d.tar.gz |
Add --pbuilder-max-age setting
This avoids us rebuilding the base.tgz tarballs very often unless we
want to.
Diffstat (limited to 'jenkinstool')
-rwxr-xr-x | jenkinstool | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/jenkinstool b/jenkinstool index 3715827..12f0a0f 100755 --- a/jenkinstool +++ b/jenkinstool @@ -85,8 +85,9 @@ class JobGenerator(object): '''Generate Jenkins jobs from a JSON specification file.''' - def __init__(self, pretend): + def __init__(self, pretend, pbuilder_max_age): self.pretend = pretend + self.pbuilder_max_age = pbuilder_max_age def generate(self, config): '''Generate all the jobs for a given config. @@ -207,7 +208,8 @@ basetgz=/var/cache/pbuilder/base.tgz if [ -e "$basetgz" ] then if find $(dirname "$basetgz") -maxdepth 1 \ - -name $(basename "$basetgz") -mtime +1 + -name $(basename "$basetgz") -mtime +%(global.pbuilder-max-age)s | + grep . then opts="--update --override-config" else @@ -395,6 +397,7 @@ rm -rf "$temp" 'repreprobase': '/var/www/jenkins/debian', 'debian-mirror': 'http://cdn.debian.net/debian', 'pretend': 'true' if self.pretend else 'false', + 'pbuilder-max-age': str(self.pbuilder_max_age), }) if 'bzr' in project: jc.set_bzr(project['bzr']) @@ -422,6 +425,10 @@ class JenkinsTool(cliapp.Application): self.settings.boolean( ['pretend-jobs'], 'make generate-jobs create jobs that merely pretend to do things') + self.settings.integer( + ['pbuilder-max-age'], + 'update pbuilder base.tgz if older than DAYS', + metavar='DAYS') def cmd_list_jobs(self, args): '''List all jobs on the server.''' @@ -464,7 +471,8 @@ class JenkinsTool(cliapp.Application): def cmd_generate_jobs(self, args): '''Generate jobs based on JSON format job specification file.''' jenkins = simplejenkinsapi.Jenkins(self.settings['url']) - job_generator = JobGenerator(self.settings['pretend-jobs']) + job_generator = JobGenerator(self.settings['pretend-jobs'], + self.settings['pbuilder-max-age']) created_job_ids = set() for filename in args: with open(filename) as f: |