diff --git a/rel-eng/releasers.conf b/rel-eng/releasers.conf index 1402278..3957466 100644 --- a/rel-eng/releasers.conf +++ b/rel-eng/releasers.conf @@ -4,8 +4,14 @@ releaser = tito.release.YumRepoMockReleaser mock = 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 releaser = tito.release.YumRepoMockReleaser -mock = fedora-15-i686 -rsync = fedorapeople.org:/srv/repos/candlepin/subscription-manager/fedora-15/x86_64/ +mock = fedora-16-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/ diff --git a/src/tito/builder.py b/src/tito/builder.py index 9f25f3b..92ef055 100644 --- a/src/tito/builder.py +++ b/src/tito/builder.py @@ -787,10 +787,8 @@ class MockBuilder(Builder): global_config=global_config, user_config=user_config, options=options) - self.mock_tag = "fedora-15-x86_64" - #self.mock_tag = "epel-6-x86_64" - #self.mock_tag = "fedora-14-x86_64" - #self.mock_tag = "epel-5-x86_64" + # TODO: yum releaser will set this for us, but need a solution here... + self.mock_tag = None # TODO: error out if mock package is not installed diff --git a/src/tito/cli.py b/src/tito/cli.py index 5a6edd3..1470bd3 100644 --- a/src/tito/cli.py +++ b/src/tito/cli.py @@ -510,6 +510,7 @@ class ReleaseModule(BaseCliModule): pkg_config=self.pkg_config, global_config=self.global_config, user_config=self.user_config, + target=target, releaser_config=releaser_config) return releaser.release(dry_run=self.options.dry_run) diff --git a/src/tito/release.py b/src/tito/release.py index 5bd4cd5..23c8f93 100644 --- a/src/tito/release.py +++ b/src/tito/release.py @@ -39,7 +39,7 @@ class Releaser(object): def __init__(self, name=None, version=None, tag=None, build_dir=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 # unless the releaser needs to: @@ -60,8 +60,13 @@ class Releaser(object): # When syncing files with CVS, only copy files with these extensions: self.cvs_copy_extensions = (".spec", ".patch") + + # Config for all releasers: self.releaser_config = releaser_config + # The actual release target we're building: + self.target = target + 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, 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, - global_config, user_config, releaser_config) + global_config, user_config, target, releaser_config) self.build_dir = build_dir @@ -193,6 +198,11 @@ class YumRepoMockReleaser(Releaser): global_config=global_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): # Should this run? self.builder.tgz() @@ -203,7 +213,7 @@ class YumRepoMockReleaser(Releaser): print "RPMS:" 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: print("%s set, using rsync username: %s" % (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? os.chdir(yum_temp_dir) + print("Refreshing yum repodata...") output = run_command("createrepo ./") - print output + debug(output) print("Syncing yum repository back to: %s" % rsync_location) - output = run_command("rsync -avtz --delete %s/ %s" % (yum_temp_dir, rsync_location)) - print output - + # TODO: configurable rsync options? + output = run_command("rsync -avtz --delete %s/ %s" % + (yum_temp_dir, rsync_location)) + debug(output) # TODO: Cleanup #rmtree(yum_temp_dir) - class FedoraGitReleaser(Releaser): def __init__(self, name=None, version=None, tag=None, build_dir=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, - global_config, user_config, releaser_config) + global_config, user_config, target, releaser_config) self.git_branches = [] 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, 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, - global_config, user_config, releaser_config) + global_config, user_config, target, releaser_config) # Configure CVS variables if possible. Will check later that # 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, 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, - global_config, user_config, releaser_config) + global_config, user_config, target, releaser_config) self.only_tags = self.builder.only_tags self.scratch = self.builder.scratch