mirror of
https://github.com/rpm-software-management/tito.git
synced 2025-02-23 20:22:46 +00:00
Add a BrewPreBuiltBuilder.
Allows you to use pre-submitted brew builds as if they were generated locally. Build *must* have been submitted to brew beforehand, otherwise this will fail.
This commit is contained in:
parent
2703e77cac
commit
13fa8d03e5
1 changed files with 56 additions and 1 deletions
|
@ -876,7 +876,7 @@ class MockBuilder(Builder):
|
|||
|
||||
# Copy everything mock wrote out to /tmp/tito:
|
||||
files = os.listdir(mock_output_dir)
|
||||
run_command("cp %s/*.rpm %s" %
|
||||
run_command("cp -v %s/*.rpm %s" %
|
||||
(mock_output_dir, self.rpmbuild_basedir))
|
||||
print
|
||||
print("Wrote:")
|
||||
|
@ -885,3 +885,58 @@ class MockBuilder(Builder):
|
|||
print(" %s" % rpm_path)
|
||||
self.artifacts.append(rpm_path)
|
||||
print
|
||||
|
||||
|
||||
class BrewPreBuiltBuilder(Builder):
|
||||
"""
|
||||
A special case builder which uses pre-existing Brew builds and
|
||||
pulls down the resulting rpms locally. Useful in some cases when
|
||||
generating yum repositories during a release.
|
||||
"""
|
||||
REQUIRED_ARGS = ['disttag']
|
||||
|
||||
def __init__(self, name=None, version=None, tag=None, build_dir=None,
|
||||
pkg_config=None, global_config=None, user_config=None,
|
||||
options=None, args=None):
|
||||
|
||||
Builder.__init__(self, name=name, version=version, tag=tag,
|
||||
build_dir=build_dir, pkg_config=pkg_config,
|
||||
global_config=global_config, user_config=user_config,
|
||||
options=options, args=args)
|
||||
|
||||
self.brew_tag = 'meow' #args['brewtag']
|
||||
self.dist_tag = args['disttag']
|
||||
|
||||
def _rpm(self):
|
||||
"""
|
||||
Uses the SRPM
|
||||
Override the base builder rpm method.
|
||||
"""
|
||||
|
||||
print("Fetching rpms for %s.%s from brew:" % (
|
||||
self.build_tag, self.dist_tag))
|
||||
self._fetch_from_brew()
|
||||
|
||||
def _fetch_from_brew(self):
|
||||
brew_nvr = "%s.%s" % (self.build_tag, self.dist_tag)
|
||||
debug("Brew NVR: %s" % brew_nvr)
|
||||
os.chdir(self.rpmbuild_dir)
|
||||
run_command("brew download-build %s" % brew_nvr)
|
||||
|
||||
# Wipe out the src rpm for now:
|
||||
run_command("rm *.src.rpm")
|
||||
|
||||
# Copy everything brew downloaded out to /tmp/tito:
|
||||
files = os.listdir(self.rpmbuild_dir)
|
||||
run_command("cp -v %s/*.rpm %s" %
|
||||
(self.rpmbuild_dir, self.rpmbuild_basedir))
|
||||
print
|
||||
print("Wrote:")
|
||||
for rpm in files:
|
||||
# Just incase anything slips into the build dir:
|
||||
if not rpm.endswith(".rpm"):
|
||||
continue
|
||||
rpm_path = os.path.join(self.rpmbuild_basedir, rpm)
|
||||
print(" %s" % rpm_path)
|
||||
self.artifacts.append(rpm_path)
|
||||
print
|
||||
|
|
Loading…
Add table
Reference in a new issue