From: Hans-Christoph Steiner Date: Mon, 20 Jun 2016 18:00:59 +0000 (+0200) Subject: add force_build_tools config option X-Git-Tag: 0.7.0~44^2 X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=fdroidserver.git;a=commitdiff_plain;h=c35260576805a89c12f94f5fcec82b81a082280d add force_build_tools config option This replaces the current default behavior of always forcing the build_tools version and allows the user to set build-tools forcing in config.py. closes #147 --- diff --git a/examples/config.py b/examples/config.py index 56ed7b86..1a3367e8 100644 --- a/examples/config.py +++ b/examples/config.py @@ -25,6 +25,10 @@ # Build tools version to be used # build_tools = "23.0.3" +# Force all build to use the above version of build -tools, good for testing +# builds without having all of the possible build-tools installed. +# force_build_tools = True + # Command or path to binary for running Ant # ant = "ant" @@ -232,10 +236,10 @@ The repository of older versions of applications from the main demo repository. # --server option on dedicated secure build server hosts. # build_server_always = True -# By default, fdroid will use YAML and the custom .txt metadata formats. It +# By default, fdroid will use YAML .yml and the custom .txt metadata formats. It # is also possible to have metadata in JSON and XML by adding 'json' and # 'xml'. -# accepted_formats = ['txt', 'yaml'] +# accepted_formats = ['txt', 'yml'] # Limit in number of characters that fields can take up # Only the fields listed here are supported, defaults shown diff --git a/fdroidserver/build.py b/fdroidserver/build.py index 7709a6bf..bad025a6 100644 --- a/fdroidserver/build.py +++ b/fdroidserver/build.py @@ -431,8 +431,7 @@ def build_server(app, build, vcs, build_dir, output_dir, force): release_vm() -def adapt_gradle(build_dir): - filename = 'build.gradle' +def force_gradle_build_tools(build_dir, build_tools): for root, dirs, files in os.walk(build_dir): for filename in files: if not filename.endswith('.gradle'): @@ -440,9 +439,9 @@ def adapt_gradle(build_dir): path = os.path.join(root, filename) if not os.path.isfile(path): continue - logging.debug("Adapting %s at %s" % (filename, path)) + logging.debug("Forcing build-tools %s in %s" % (build_tools, path)) common.regsub_file(r"""(\s*)buildToolsVersion([\s=]+).*""", - r"""\1buildToolsVersion\2'%s'""" % config['build_tools'], + r"""\1buildToolsVersion\2'%s'""" % build_tools, path) @@ -512,9 +511,10 @@ def build_local(app, build, vcs, build_dir, output_dir, srclib_dir, extlib_dir, gradletasks += ['assemble' + flavours_cmd + 'Release'] - adapt_gradle(build_dir) - for name, number, libpath in srclibpaths: - adapt_gradle(libpath) + if config['force_build_tools']: + force_gradle_build_tools(build_dir, config['build_tools']) + for name, number, libpath in srclibpaths: + force_gradle_build_tools(libpath, config['build_tools']) cmd = [config['gradle']] if build.gradleprops: diff --git a/fdroidserver/common.py b/fdroidserver/common.py index 17df02ae..f27177fe 100644 --- a/fdroidserver/common.py +++ b/fdroidserver/common.py @@ -59,6 +59,7 @@ default_config = { 'r10e': "$ANDROID_NDK", }, 'build_tools': "23.0.3", + 'force_build_tools': False, 'java_paths': None, 'ant': "ant", 'mvn3': "mvn", diff --git a/tests/build.TestCase b/tests/build.TestCase index 369c3836..9391a042 100755 --- a/tests/build.TestCase +++ b/tests/build.TestCase @@ -46,7 +46,7 @@ class BuildTest(unittest.TestCase): self.assertTrue(os.path.exists(path)) self.assertTrue(os.path.isfile(path)) - def test_adapt_gradle(self): + def test_force_gradle_build_tools(self): testsbase = os.path.join(os.path.dirname(__file__), '..', '.testfiles') if not os.path.exists(testsbase): os.makedirs(testsbase) @@ -54,9 +54,7 @@ class BuildTest(unittest.TestCase): shutil.copytree(os.path.join(os.path.dirname(__file__), 'source-files'), os.path.join(testsdir, 'source-files')) teststring = 'FAKE_VERSION_FOR_TESTING' - fdroidserver.build.config = {} - fdroidserver.build.config['build_tools'] = teststring - fdroidserver.build.adapt_gradle(testsdir) + fdroidserver.build.force_gradle_build_tools(testsdir, teststring) pattern = re.compile(bytes("buildToolsVersion[\s=]+'%s'\s+" % teststring, 'utf8')) for p in ('source-files/fdroid/fdroidclient/build.gradle', 'source-files/Zillode/syncthing-silk/build.gradle', @@ -67,6 +65,7 @@ class BuildTest(unittest.TestCase): filedata = f.read() self.assertIsNotNone(pattern.search(filedata)) + if __name__ == "__main__": parser = optparse.OptionParser() parser.add_option("-v", "--verbose", action="store_true", default=False,