1
0
mirror of https://gitlab.com/fdroid/fdroidserver.git synced 2024-10-05 18:50:09 +02:00

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.
This commit is contained in:
Daniel Martí 2015-12-24 16:41:39 +01:00
parent 138618937f
commit 5b8d593275
2 changed files with 15 additions and 45 deletions

View File

@ -30,7 +30,6 @@ import time
import json import json
from ConfigParser import ConfigParser from ConfigParser import ConfigParser
from argparse import ArgumentParser from argparse import ArgumentParser
from distutils.version import LooseVersion
import logging import logging
import common 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', 'title'),
bconfig.get('app', 'version'))) bconfig.get('app', 'version')))
elif method == 'gradle': 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 build.gradlepluginver >= LooseVersion('0.11'): if len(apks) > 1:
apks_dir = os.path.join(root_dir, 'build', 'outputs', 'apk') raise BuildException('More than one resulting apks found in %s' % apks_dir,
else: '\n'.join(apks))
apks_dir = os.path.join(root_dir, 'build', 'apk') if len(apks) == 1:
src = apks[0]
break
if src is None:
raise BuildException('Failed to find any output apks')
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': elif method == 'ant':
stdout_apk = '\n'.join([ stdout_apk = '\n'.join([
line for line in p.output.splitlines() if '.apk' in line]) line for line in p.output.splitlines() if '.apk' in line])

View File

@ -35,7 +35,6 @@ import hashlib
import socket import socket
import xml.etree.ElementTree as XMLElementTree import xml.etree.ElementTree as XMLElementTree
from distutils.version import LooseVersion
from zipfile import ZipFile from zipfile import ZipFile
import metadata import metadata
@ -1334,38 +1333,6 @@ def prepare_source(vcs, app, build, build_dir, srclib_dir, extlib_dir, onserver=
if build.method() == 'gradle': if build.method() == 'gradle':
flavours = build.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: if build.target:
n = build.target.split('-')[1] n = build.target.split('-')[1]
regsub_file(r'compileSdkVersion[ =]+[0-9]+', regsub_file(r'compileSdkVersion[ =]+[0-9]+',