From 56efd10db933e81b60d3de7b9f62399ffc186a35 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20Kadl=C4=8D=C3=ADk?= Date: Tue, 30 May 2017 13:13:46 +0200 Subject: [PATCH] Allow CoprModuleBuilder to obtain packages from copr-dist-git --- module_build_service/builder/utils.py | 23 ++++++++++++++++------- 1 file changed, 16 insertions(+), 7 deletions(-) diff --git a/module_build_service/builder/utils.py b/module_build_service/builder/utils.py index bd0b8bbc..b5677f36 100644 --- a/module_build_service/builder/utils.py +++ b/module_build_service/builder/utils.py @@ -1,4 +1,5 @@ import os +import re import sys import koji import tempfile @@ -40,17 +41,18 @@ def build_from_scm(artifact_name, source, config, build_srpm, url, commit = source.split("?#") # Create temp dir and clone the repo there. td = tempfile.mkdtemp() - scm = module_build_service.scm.SCM(url) + scm = module_build_service.scm.SCM(source) cod = scm.checkout(td) - branch = git_branch_contains(cod, commit) - git_checkout(cod, branch) + cmd = config.mock_build_srpm_cmd.split(" ") + if is_from_copr(source): + branch = git_branch_contains(cod, commit) + git_checkout(cod, branch) + cmd = ["fedpkg-copr", "--release", branch, "srpm"] # Use configured command to create SRPM out of the SCM repo. log.debug("Creating SRPM in %s" % cod) - distgit_cmds = get_distgit_commands(source, config) - execute_cmd(distgit_cmds[1].split(" "), - stdout=stdout, stderr=stderr, cwd=cod) + execute_cmd(cmd, stdout=stdout, stderr=stderr, cwd=cod) # Find out the built SRPM and build it normally. for f in os.listdir(cod): @@ -78,7 +80,14 @@ def build_from_scm(artifact_name, source, config, build_srpm, def git_branch_contains(cod, commit): cmd = ["git", "branch", "-r", "--contains", commit] out, err = execute_cmd(cmd, cwd=cod, stdout=subprocess.PIPE, stderr=subprocess.PIPE) - return out.strip().split("/")[1] + branch = out.strip().split("/")[1] + if " -> " in branch: + branch = branch.split(" -> ")[0] + return branch + + +def is_from_copr(source): + return bool(re.match("https?://copr-dist-git(-dev)?\.fedorainfracloud\.org", source)) def git_checkout(cod, branch):