mirror of
https://github.com/rpm-software-management/tito.git
synced 2025-02-23 12:12:47 +00:00
Fix releasers and respect offline flag.
This commit is contained in:
parent
9474b0ab95
commit
8342529dd9
3 changed files with 82 additions and 5 deletions
|
@ -610,14 +610,15 @@ class ReleaseModule(BaseCliModule):
|
|||
releaser_class = get_class_by_name(releaser_config.get(target, "releaser"))
|
||||
debug("Using releaser class: %s" % releaser_class)
|
||||
builder_args = {}
|
||||
if len(self.options.builder_args) > 0:
|
||||
if self.options.builder_args and len(self.options.builder_args) > 0:
|
||||
for arg in self.options.builder_args:
|
||||
key, val = arg.split('=')
|
||||
debug("Passing builder arg: %s = %s" % (key, val))
|
||||
# TODO: support list values
|
||||
builder_args[key] = val
|
||||
kwargs = {
|
||||
'builder_args': builder_args
|
||||
'builder_args': builder_args,
|
||||
'offline': self.options.offline
|
||||
}
|
||||
|
||||
releaser = releaser_class(
|
||||
|
|
|
@ -73,12 +73,14 @@ class Releaser(ConfigObject):
|
|||
self.builder_args = dict(config_builder_args.items() +
|
||||
kwargs['builder_args'].items())
|
||||
|
||||
|
||||
# While we create a builder here, we don't actually call run on it
|
||||
# unless the releaser needs to:
|
||||
self.offline = False
|
||||
if 'offline' in kwargs:
|
||||
self.offline=kwargs['offline']
|
||||
self.builder = create_builder(name, tag,
|
||||
config,
|
||||
build_dir, user_config, self.builder_args)
|
||||
build_dir, user_config, self.builder_args, offline=self.offline)
|
||||
self.project_name = self.builder.project_name
|
||||
|
||||
# TODO: if it looks like we need custom CVSROOT's for different users,
|
||||
|
@ -304,10 +306,12 @@ class RsyncReleaser(Releaser):
|
|||
|
||||
# Use the builder from the release target, rather than the default
|
||||
# one defined for this git repo or sub-package:
|
||||
# TODO: this is a little sketchy, creating two builders?
|
||||
self.builder = create_builder(name, tag,
|
||||
config,
|
||||
build_dir, user_config, self.builder_args,
|
||||
builder_class=self.releaser_config.get(self.target, 'builder'))
|
||||
builder_class=self.releaser_config.get(self.target, 'builder'),
|
||||
offline=self.offline)
|
||||
if self.releaser_config.has_option(self.target, "scl"):
|
||||
self.builder.scl = self.releaser_config.get(self.target, "scl")
|
||||
|
||||
|
|
72
test/functional/release_yum_tests.py
Normal file
72
test/functional/release_yum_tests.py
Normal file
|
@ -0,0 +1,72 @@
|
|||
#
|
||||
# Copyright (c) 2008-2014 Red Hat, Inc.
|
||||
#
|
||||
# This software is licensed to you under the GNU General Public License,
|
||||
# version 2 (GPLv2). There is NO WARRANTY for this software, express or
|
||||
# implied, including the implied warranties of MERCHANTABILITY or FITNESS
|
||||
# FOR A PARTICULAR PURPOSE. You should have received a copy of GPLv2
|
||||
# along with this software; if not, see
|
||||
# http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt.
|
||||
#
|
||||
# Red Hat trademarks are not licensed under GPLv2. No permission is
|
||||
# granted to use or replicate Red Hat trademarks that are incorporated
|
||||
# in this software or its documentation.
|
||||
"""
|
||||
Functional Tests for the FetchBuilder.
|
||||
"""
|
||||
|
||||
import ConfigParser
|
||||
import glob
|
||||
import os
|
||||
import shutil
|
||||
import tempfile
|
||||
|
||||
from os.path import join
|
||||
|
||||
from fixture import TitoGitTestFixture, tito
|
||||
|
||||
PKG_NAME = "releaseme"
|
||||
|
||||
RELEASER_CONF = """
|
||||
[yum-test]
|
||||
releaser = tito.release.YumRepoReleaser
|
||||
builder = tito.builder.Builder
|
||||
rsync = %s
|
||||
"""
|
||||
|
||||
class YumReleaserTests(TitoGitTestFixture):
|
||||
|
||||
def setUp(self):
|
||||
TitoGitTestFixture.setUp(self)
|
||||
self.create_project(PKG_NAME)
|
||||
|
||||
# Setup test config:
|
||||
self.config = ConfigParser.RawConfigParser()
|
||||
self.config.add_section("buildconfig")
|
||||
self.config.set("buildconfig", "builder",
|
||||
"tito.builder.Builder")
|
||||
self.config.set("buildconfig", "offline",
|
||||
"true")
|
||||
|
||||
self.output_dir = tempfile.mkdtemp("-titotestoutput")
|
||||
|
||||
def tearDown(self):
|
||||
TitoGitTestFixture.tearDown(self)
|
||||
shutil.rmtree(self.output_dir)
|
||||
pass
|
||||
|
||||
def _setup_fetchbuilder_releaser(self, yum_repo_dir):
|
||||
self.write_file(join(self.repo_dir, 'rel-eng/releasers.conf'),
|
||||
RELEASER_CONF % yum_repo_dir)
|
||||
|
||||
def test_with_releaser(self):
|
||||
yum_repo_dir = os.path.join(self.output_dir, 'yum')
|
||||
self._setup_fetchbuilder_releaser(yum_repo_dir)
|
||||
tito('release --debug yum-test')
|
||||
|
||||
self.assertEquals(1, len(glob.glob(join(yum_repo_dir,
|
||||
"releaseme-0.0.1-1.*.noarch.rpm"))))
|
||||
self.assertEquals(1, len(glob.glob(join(yum_repo_dir,
|
||||
"repodata/repomd.xml"))))
|
||||
|
||||
|
Loading…
Add table
Reference in a new issue