From ca5f23026704ef259fd5423154b17d5a85127867 Mon Sep 17 00:00:00 2001 From: Lars Wirzenius Date: Thu, 30 Aug 2012 21:09:38 +0100 Subject: Setup dput config --- jenkinstool | 35 ++++++++++++++++++++++++++--------- 1 file changed, 26 insertions(+), 9 deletions(-) (limited to 'jenkinstool') diff --git a/jenkinstool b/jenkinstool index fe2f2b1..095c817 100755 --- a/jenkinstool +++ b/jenkinstool @@ -130,10 +130,11 @@ class JobGenerator(object): '''Generate Jenkins jobs from a JSON specification file.''' - def __init__(self, pretend, pbuilder_max_age, artifacts_url): + def __init__(self, pretend, pbuilder_max_age, artifacts_url, jenkins_host): self.pretend = pretend self.pbuilder_max_age = pbuilder_max_age self.artifacts_url = artifacts_url + self.jenkins_host = jenkins_host def generate(self, config): '''Generate all the jobs for a given config. @@ -324,7 +325,7 @@ fi jobs.append(self.vcs_watch_job(localhost, project)) for host in config['hosts']: - jobs.append(self.apt_upgrade_job(host, project)) + jobs.append(self.prepare_worker_job(host, project)) jobs.append(self.build_job(host, project)) jobs.append(self.tarball_job(main_host, project)) @@ -361,8 +362,12 @@ fi raise cliapp.AppException('Unknown VCS') return jc - def apt_upgrade_job(self, host, project): - '''Create job to upgrade the build environment with apt.''' + def prepare_worker_job(self, host, project): + '''Create job to prepare worker for build. + + Upgrades build environment, and configures dput. + + ''' jc = self.create_job_config(host, project, 'apt-upgrade') jc.set_description('Upgrade build environment on %(host.ssh-target)s ' @@ -371,6 +376,15 @@ fi jc.add_ssh_command(''' sudo apt-get update sudo apt-get --no-remove --allow-unauthenticated -y upgrade +cat << EOF > /var/lib/jenkins/.dput.cf +[jenkins] +fqdn = %(global.dput-host)s +method = scp +incoming = /var/www/jenkins/debian/incoming +allow_unsigned_uploads = 1 +check_version = 0 +run_dinstall = 0 +EOF ''') return jc @@ -469,7 +483,7 @@ else dch -v "$debianversion" --distribution "%(host.debian-dist)s" "CI build" dch -r '' debuild -S -us -uc -i - dput -f "%(global.dput-host)s" "../$changes" + dput -f jenkins "../$changes" fi ''') self.add_rsync_workspace_from_target(jc) @@ -536,8 +550,7 @@ dget -u "$dsc_url" mkdir result sudo pbuilder --build --buildresult result --allow-untrusted \ --debbuildopts $binopt *.dsc -dput "%(global.dput-host)s" \ - "result/${sourcepkg}_${version}-1_%(host.arch)s.changes" +dput jenkins "result/${sourcepkg}_${version}-1_%(host.arch)s.changes" cd "$curdir" rm -rf "$temp" ''') @@ -557,7 +570,7 @@ rm -rf "$temp" jc.add_param_dict('global', { 'artifacts': '/var/www/jenkins', 'artifacts-url': self.artifacts_url, - 'dput-host': 'liw-jenkins', + 'dput-host': self.jenkins_host, 'repreprobase': '/var/www/jenkins/debian', 'debian-mirror': 'http://cdn.debian.net/debian', 'pretend': 'true' if self.pretend else 'false', @@ -601,6 +614,9 @@ class JenkinsTool(cliapp.Application): self.settings.string( ['artifacts-url'], 'URL to artifact repository') + self.settings.string( + ['jenkins-host'], + 'address of host running jenkins') def cmd_list_jobs(self, args): '''List all jobs on the server.''' @@ -648,7 +664,8 @@ class JenkinsTool(cliapp.Application): jenkins = simplejenkinsapi.Jenkins(self.settings['url']) job_generator = JobGenerator(self.settings['pretend-jobs'], self.settings['pbuilder-max-age'], - self.settings['artifacts-url']) + self.settings['artifacts-url'], + self.settings['jenkins-host']) created_job_ids = set() for filename in args: with open(filename) as f: -- cgit v1.2.1