summaryrefslogtreecommitdiff
path: root/jenkinstool
diff options
context:
space:
mode:
authorLars Wirzenius <liw@liw.fi>2012-08-19 09:25:11 +0100
committerLars Wirzenius <liw@liw.fi>2012-08-19 09:25:11 +0100
commit0cd63af99fe4dce0c5b91d0b6f34e8dae65bde3d (patch)
tree82fd22140ea32098619f443066a9a78b86ef4f4e /jenkinstool
parent1aefad969769f1f6e23fa1359571a45603d7bd34 (diff)
downloadjenkinstool-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-xjenkinstool14
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: