Actually use releaser config instead of hardcoded values.

This commit is contained in:
Devan Goodwin 2011-10-15 12:52:03 -03:00
parent e1eff8f63e
commit a7574706b9
4 changed files with 38 additions and 22 deletions

View file

@ -4,8 +4,14 @@ releaser = tito.release.YumRepoMockReleaser
mock = fedora-15-x86_64 mock = fedora-15-x86_64
rsync = fedorapeople.org:/srv/repos/candlepin/subscription-manager/fedora-15/x86_64/ rsync = fedorapeople.org:/srv/repos/candlepin/subscription-manager/fedora-15/x86_64/
[yum-f15-i686] [yum-f16-x86_64]
builder = tito.builder.MockBuilder builder = tito.builder.MockBuilder
releaser = tito.release.YumRepoMockReleaser releaser = tito.release.YumRepoMockReleaser
mock = fedora-15-i686 mock = fedora-16-x86_64
rsync = fedorapeople.org:/srv/repos/candlepin/subscription-manager/fedora-15/x86_64/ rsync = fedorapeople.org:/srv/repos/candlepin/subscription-manager/fedora-16/x86_64/
[yum-el6-x86_64]
builder = tito.builder.MockBuilder
releaser = tito.release.YumRepoMockReleaser
mock = epel-6-x86_64
rsync = fedorapeople.org:/srv/repos/candlepin/subscription-manager/epel-6/x86_64/

View file

@ -787,10 +787,8 @@ class MockBuilder(Builder):
global_config=global_config, user_config=user_config, global_config=global_config, user_config=user_config,
options=options) options=options)
self.mock_tag = "fedora-15-x86_64" # TODO: yum releaser will set this for us, but need a solution here...
#self.mock_tag = "epel-6-x86_64" self.mock_tag = None
#self.mock_tag = "fedora-14-x86_64"
#self.mock_tag = "epel-5-x86_64"
# TODO: error out if mock package is not installed # TODO: error out if mock package is not installed

View file

@ -510,6 +510,7 @@ class ReleaseModule(BaseCliModule):
pkg_config=self.pkg_config, pkg_config=self.pkg_config,
global_config=self.global_config, global_config=self.global_config,
user_config=self.user_config, user_config=self.user_config,
target=target,
releaser_config=releaser_config) releaser_config=releaser_config)
return releaser.release(dry_run=self.options.dry_run) return releaser.release(dry_run=self.options.dry_run)

View file

@ -39,7 +39,7 @@ class Releaser(object):
def __init__(self, name=None, version=None, tag=None, build_dir=None, def __init__(self, name=None, version=None, tag=None, build_dir=None,
pkg_config=None, global_config=None, user_config=None, pkg_config=None, global_config=None, user_config=None,
releaser_config=None): target=None, releaser_config=None):
# While we create a builder here, we don't actually call run on it # While we create a builder here, we don't actually call run on it
# unless the releaser needs to: # unless the releaser needs to:
@ -60,8 +60,13 @@ class Releaser(object):
# When syncing files with CVS, only copy files with these extensions: # When syncing files with CVS, only copy files with these extensions:
self.cvs_copy_extensions = (".spec", ".patch") self.cvs_copy_extensions = (".spec", ".patch")
# Config for all releasers:
self.releaser_config = releaser_config self.releaser_config = releaser_config
# The actual release target we're building:
self.target = target
self.dry_run = False self.dry_run = False
def release(self, dry_run=False): def release(self, dry_run=False):
@ -178,9 +183,9 @@ class YumRepoMockReleaser(Releaser):
def __init__(self, name=None, version=None, tag=None, build_dir=None, def __init__(self, name=None, version=None, tag=None, build_dir=None,
pkg_config=None, global_config=None, user_config=None, pkg_config=None, global_config=None, user_config=None,
releaser_config=None): target=None, releaser_config=None):
Releaser.__init__(self, name, version, tag, build_dir, pkg_config, Releaser.__init__(self, name, version, tag, build_dir, pkg_config,
global_config, user_config, releaser_config) global_config, user_config, target, releaser_config)
self.build_dir = build_dir self.build_dir = build_dir
@ -193,6 +198,11 @@ class YumRepoMockReleaser(Releaser):
global_config=global_config, global_config=global_config,
user_config=user_config) user_config=user_config)
# TODO: hack, how can we pass arbitrary data like the mock config
# into a builder? Need to do similar from CLI if you wanna over ride
# it and run...
self.builder.mock_tag = self.releaser_config.get(self.target, 'mock')
def release(self, dry_run=False): def release(self, dry_run=False):
# Should this run? # Should this run?
self.builder.tgz() self.builder.tgz()
@ -203,7 +213,7 @@ class YumRepoMockReleaser(Releaser):
print "RPMS:" print "RPMS:"
print self.builder.artifacts print self.builder.artifacts
rsync_location = "fedorapeople.org:/srv/repos/candlepin/subscription-manager/fedora-15/x86_64/" rsync_location = self.releaser_config.get(self.target, 'rsync')
if RSYNC_USERNAME in os.environ: if RSYNC_USERNAME in os.environ:
print("%s set, using rsync username: %s" % (RSYNC_USERNAME, print("%s set, using rsync username: %s" % (RSYNC_USERNAME,
os.environ[RSYNC_USERNAME])) os.environ[RSYNC_USERNAME]))
@ -222,26 +232,27 @@ class YumRepoMockReleaser(Releaser):
# TODO: should we clean up old versions of these packages in the repo? # TODO: should we clean up old versions of these packages in the repo?
os.chdir(yum_temp_dir) os.chdir(yum_temp_dir)
print("Refreshing yum repodata...")
output = run_command("createrepo ./") output = run_command("createrepo ./")
print output debug(output)
print("Syncing yum repository back to: %s" % rsync_location) print("Syncing yum repository back to: %s" % rsync_location)
output = run_command("rsync -avtz --delete %s/ %s" % (yum_temp_dir, rsync_location)) # TODO: configurable rsync options?
print output output = run_command("rsync -avtz --delete %s/ %s" %
(yum_temp_dir, rsync_location))
debug(output)
# TODO: Cleanup # TODO: Cleanup
#rmtree(yum_temp_dir) #rmtree(yum_temp_dir)
class FedoraGitReleaser(Releaser): class FedoraGitReleaser(Releaser):
def __init__(self, name=None, version=None, tag=None, build_dir=None, def __init__(self, name=None, version=None, tag=None, build_dir=None,
pkg_config=None, global_config=None, user_config=None, pkg_config=None, global_config=None, user_config=None,
releaser_config=None): target=None, releaser_config=None):
Releaser.__init__(self, name, version, tag, build_dir, pkg_config, Releaser.__init__(self, name, version, tag, build_dir, pkg_config,
global_config, user_config, releaser_config) global_config, user_config, target, releaser_config)
self.git_branches = [] self.git_branches = []
if self.builder.config.has_section("gitrelease"): if self.builder.config.has_section("gitrelease"):
@ -429,9 +440,9 @@ class CvsReleaser(Releaser):
def __init__(self, name=None, version=None, tag=None, build_dir=None, def __init__(self, name=None, version=None, tag=None, build_dir=None,
pkg_config=None, global_config=None, user_config=None, pkg_config=None, global_config=None, user_config=None,
releaser_config=None): target=None, releaser_config=None):
Releaser.__init__(self, name, version, tag, build_dir, pkg_config, Releaser.__init__(self, name, version, tag, build_dir, pkg_config,
global_config, user_config, releaser_config) global_config, user_config, target, releaser_config)
# Configure CVS variables if possible. Will check later that # Configure CVS variables if possible. Will check later that
# they're actually defined if the user requested CVS work be done. # they're actually defined if the user requested CVS work be done.
@ -690,9 +701,9 @@ class KojiReleaser(Releaser):
def __init__(self, name=None, version=None, tag=None, build_dir=None, def __init__(self, name=None, version=None, tag=None, build_dir=None,
pkg_config=None, global_config=None, user_config=None, pkg_config=None, global_config=None, user_config=None,
releaser_config=None): target=None, releaser_config=None):
Releaser.__init__(self, name, version, tag, build_dir, pkg_config, Releaser.__init__(self, name, version, tag, build_dir, pkg_config,
global_config, user_config, releaser_config) global_config, user_config, target, releaser_config)
self.only_tags = self.builder.only_tags self.only_tags = self.builder.only_tags
self.scratch = self.builder.scratch self.scratch = self.builder.scratch