From: Daniel Martí Date: Thu, 24 Dec 2015 15:41:39 +0000 (+0100) Subject: gradle: Completely get rid of gradlepluginver X-Git-Tag: 0.6.0~47 X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=fdroidserver.git;a=commitdiff_plain;h=5b8d593275ca094692d9f1de34f07a2c23df0646 gradle: Completely get rid of gradlepluginver We can support multiple output dirs without having to detect/infer the plugin version. Much simpler and more robust too. --- diff --git a/fdroidserver/build.py b/fdroidserver/build.py index d792132d..19df7215 100644 --- a/fdroidserver/build.py +++ b/fdroidserver/build.py @@ -30,7 +30,6 @@ import time import json from ConfigParser import ConfigParser from argparse import ArgumentParser -from distutils.version import LooseVersion import logging import common @@ -785,19 +784,23 @@ def build_local(app, build, vcs, build_dir, output_dir, srclib_dir, extlib_dir, bconfig.get('app', 'title'), bconfig.get('app', 'version'))) elif method == 'gradle': + src = None + for apks_dir in [ + os.path.join(root_dir, 'build', 'outputs', 'apk'), + os.path.join(root_dir, 'build', 'apk'), + ]: + apks = glob.glob(os.path.join(apks_dir, '*-release-unsigned.apk')) + + if len(apks) > 1: + raise BuildException('More than one resulting apks found in %s' % apks_dir, + '\n'.join(apks)) + if len(apks) == 1: + src = apks[0] + break + + if src is None: + raise BuildException('Failed to find any output apks') - if build.gradlepluginver >= LooseVersion('0.11'): - apks_dir = os.path.join(root_dir, 'build', 'outputs', 'apk') - else: - apks_dir = os.path.join(root_dir, 'build', 'apk') - - apks = glob.glob(os.path.join(apks_dir, '*-release-unsigned.apk')) - if len(apks) > 1: - raise BuildException('More than one resulting apks found in %s' % apks_dir, - '\n'.join(apks)) - if len(apks) < 1: - raise BuildException('Failed to find gradle output in %s' % apks_dir) - src = apks[0] elif method == 'ant': stdout_apk = '\n'.join([ line for line in p.output.splitlines() if '.apk' in line]) diff --git a/fdroidserver/common.py b/fdroidserver/common.py index 92e50177..a05148af 100644 --- a/fdroidserver/common.py +++ b/fdroidserver/common.py @@ -35,7 +35,6 @@ import hashlib import socket import xml.etree.ElementTree as XMLElementTree -from distutils.version import LooseVersion from zipfile import ZipFile import metadata @@ -1334,38 +1333,6 @@ def prepare_source(vcs, app, build, build_dir, srclib_dir, extlib_dir, onserver= if build.method() == 'gradle': flavours = build.gradle - gradlepluginver = None - - gradle_dirs = [root_dir] - - # Parent dir build.gradle - parent_dir = os.path.normpath(os.path.join(root_dir, '..')) - if parent_dir.startswith(build_dir): - gradle_dirs.append(parent_dir) - - for dir_path in gradle_dirs: - if gradlepluginver: - break - if not os.path.isdir(dir_path): - continue - for filename in os.listdir(dir_path): - if not filename.endswith('.gradle'): - continue - path = os.path.join(dir_path, filename) - if not os.path.isfile(path): - continue - for line in file(path): - match = gradle_version_regex.match(line) - if match: - gradlepluginver = match.group(1) - break - - if gradlepluginver: - build.gradlepluginver = LooseVersion(gradlepluginver) - else: - logging.warn("Could not fetch the gradle plugin version, defaulting to 0.11") - build.gradlepluginver = LooseVersion('0.11') - if build.target: n = build.target.split('-')[1] regsub_file(r'compileSdkVersion[ =]+[0-9]+',