mirror of
https://gitlab.com/fdroid/fdroidserver.git
synced 2024-10-02 09:10:11 +02:00
add keep_when_not_allowed config/option
This commit is contained in:
parent
386fb55b99
commit
1e4e2489aa
@ -826,6 +826,15 @@ def force_halt_build(timeout):
|
|||||||
vm.destroy()
|
vm.destroy()
|
||||||
|
|
||||||
|
|
||||||
|
def keep_when_not_allowed():
|
||||||
|
"""Control if APKs signed by keys not in AllowedAPKSigningKeys are removed."""
|
||||||
|
return (
|
||||||
|
(options is not None and options.keep_when_not_allowed)
|
||||||
|
or (config is not None and config.get('keep_when_not_allowed'))
|
||||||
|
or common.default_config['keep_when_not_allowed']
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
def parse_commandline():
|
def parse_commandline():
|
||||||
"""Parse the command line.
|
"""Parse the command line.
|
||||||
|
|
||||||
@ -863,6 +872,8 @@ def parse_commandline():
|
|||||||
help=_("Force build of disabled apps, and carries on regardless of scan problems. Only allowed in test mode."))
|
help=_("Force build of disabled apps, and carries on regardless of scan problems. Only allowed in test mode."))
|
||||||
parser.add_argument("-a", "--all", action="store_true", default=False,
|
parser.add_argument("-a", "--all", action="store_true", default=False,
|
||||||
help=_("Build all applications available"))
|
help=_("Build all applications available"))
|
||||||
|
parser.add_argument("--keep-when-not-allowed", default=False, action="store_true",
|
||||||
|
help=argparse.SUPPRESS)
|
||||||
parser.add_argument("-w", "--wiki", default=False, action="store_true",
|
parser.add_argument("-w", "--wiki", default=False, action="store_true",
|
||||||
help=argparse.SUPPRESS)
|
help=argparse.SUPPRESS)
|
||||||
metadata.add_metadata_arguments(parser)
|
metadata.add_metadata_arguments(parser)
|
||||||
@ -1121,7 +1132,7 @@ def main():
|
|||||||
logging.warn(_('AllowedAPKSigningKeys missing '
|
logging.warn(_('AllowedAPKSigningKeys missing '
|
||||||
'but reference binary supplied'))
|
'but reference binary supplied'))
|
||||||
elif used_key not in expected_keys:
|
elif used_key not in expected_keys:
|
||||||
if options.test:
|
if options.test or keep_when_not_allowed():
|
||||||
logging.warning(_('Keeping failed build "{apkfilename}"')
|
logging.warning(_('Keeping failed build "{apkfilename}"')
|
||||||
.format(apkfilename=unsigned_apk))
|
.format(apkfilename=unsigned_apk))
|
||||||
else:
|
else:
|
||||||
|
@ -128,6 +128,7 @@ default_config = {
|
|||||||
'gradle': os.path.join(FDROID_PATH, 'gradlew-fdroid'),
|
'gradle': os.path.join(FDROID_PATH, 'gradlew-fdroid'),
|
||||||
'sync_from_local_copy_dir': False,
|
'sync_from_local_copy_dir': False,
|
||||||
'allow_disabled_algorithms': False,
|
'allow_disabled_algorithms': False,
|
||||||
|
'keep_when_not_allowed': False,
|
||||||
'per_app_repos': False,
|
'per_app_repos': False,
|
||||||
'make_current_version_link': False,
|
'make_current_version_link': False,
|
||||||
'current_version_name_source': 'Name',
|
'current_version_name_source': 'Name',
|
||||||
|
@ -40,6 +40,10 @@ class FakeProcess:
|
|||||||
print('FakeFDroidPopen', args, kwargs)
|
print('FakeFDroidPopen', args, kwargs)
|
||||||
|
|
||||||
|
|
||||||
|
class Options:
|
||||||
|
keep_when_not_allowed = False
|
||||||
|
|
||||||
|
|
||||||
class BuildTest(unittest.TestCase):
|
class BuildTest(unittest.TestCase):
|
||||||
'''fdroidserver/build.py'''
|
'''fdroidserver/build.py'''
|
||||||
|
|
||||||
@ -51,6 +55,7 @@ class BuildTest(unittest.TestCase):
|
|||||||
os.chdir(self.basedir)
|
os.chdir(self.basedir)
|
||||||
fdroidserver.common.config = None
|
fdroidserver.common.config = None
|
||||||
fdroidserver.build.config = None
|
fdroidserver.build.config = None
|
||||||
|
fdroidserver.build.options = None
|
||||||
self._td = mkdtemp()
|
self._td = mkdtemp()
|
||||||
self.testdir = self._td.name
|
self.testdir = self._td.name
|
||||||
|
|
||||||
@ -604,7 +609,7 @@ class BuildTest(unittest.TestCase):
|
|||||||
sdk_path = os.path.join(self.testdir, 'android-sdk')
|
sdk_path = os.path.join(self.testdir, 'android-sdk')
|
||||||
self.create_fake_android_home(sdk_path)
|
self.create_fake_android_home(sdk_path)
|
||||||
with open('config.yml', 'w') as fp:
|
with open('config.yml', 'w') as fp:
|
||||||
yaml.dump({'sdk_path': sdk_path}, fp)
|
yaml.dump({'sdk_path': sdk_path, 'keep_when_not_allowed': True}, fp)
|
||||||
os.chmod('config.yml', 0o600)
|
os.chmod('config.yml', 0o600)
|
||||||
fdroidserver.common.build = fdroidserver.common.read_config()
|
fdroidserver.common.build = fdroidserver.common.read_config()
|
||||||
|
|
||||||
@ -920,6 +925,51 @@ class BuildTest(unittest.TestCase):
|
|||||||
test_flag = ('--skip-scan', True)
|
test_flag = ('--skip-scan', True)
|
||||||
fdroidserver.build.build_server(app, build, vcs, '', '', '', False)
|
fdroidserver.build.build_server(app, build, vcs, '', '', '', False)
|
||||||
|
|
||||||
|
def test_keep_when_not_allowed_default(self):
|
||||||
|
self.assertFalse(fdroidserver.build.keep_when_not_allowed())
|
||||||
|
|
||||||
|
def test_keep_when_not_allowed_config_true(self):
|
||||||
|
fdroidserver.build.config = {'keep_when_not_allowed': True}
|
||||||
|
self.assertTrue(fdroidserver.build.keep_when_not_allowed())
|
||||||
|
|
||||||
|
def test_keep_when_not_allowed_config_false(self):
|
||||||
|
fdroidserver.build.config = {'keep_when_not_allowed': False}
|
||||||
|
self.assertFalse(fdroidserver.build.keep_when_not_allowed())
|
||||||
|
|
||||||
|
def test_keep_when_not_allowed_options_true(self):
|
||||||
|
fdroidserver.build.options = Options
|
||||||
|
fdroidserver.build.options.keep_when_not_allowed = True
|
||||||
|
self.assertTrue(fdroidserver.build.keep_when_not_allowed())
|
||||||
|
|
||||||
|
def test_keep_when_not_allowed_options_false(self):
|
||||||
|
fdroidserver.build.options = Options
|
||||||
|
fdroidserver.build.options.keep_when_not_allowed = False
|
||||||
|
self.assertFalse(fdroidserver.build.keep_when_not_allowed())
|
||||||
|
|
||||||
|
def test_keep_when_not_allowed_options_true_override_config(self):
|
||||||
|
fdroidserver.build.options = Options
|
||||||
|
fdroidserver.build.options.keep_when_not_allowed = True
|
||||||
|
fdroidserver.build.config = {'keep_when_not_allowed': False}
|
||||||
|
self.assertTrue(fdroidserver.build.keep_when_not_allowed())
|
||||||
|
|
||||||
|
def test_keep_when_not_allowed_options_default_does_not_override(self):
|
||||||
|
fdroidserver.build.options = Options
|
||||||
|
fdroidserver.build.options.keep_when_not_allowed = False
|
||||||
|
fdroidserver.build.config = {'keep_when_not_allowed': True}
|
||||||
|
self.assertTrue(fdroidserver.build.keep_when_not_allowed())
|
||||||
|
|
||||||
|
def test_keep_when_not_allowed_all_true(self):
|
||||||
|
fdroidserver.build.options = Options
|
||||||
|
fdroidserver.build.options.keep_when_not_allowed = True
|
||||||
|
fdroidserver.build.config = {'keep_when_not_allowed': True}
|
||||||
|
self.assertTrue(fdroidserver.build.keep_when_not_allowed())
|
||||||
|
|
||||||
|
def test_keep_when_not_allowed_all_false(self):
|
||||||
|
fdroidserver.build.options = Options
|
||||||
|
fdroidserver.build.options.keep_when_not_allowed = False
|
||||||
|
fdroidserver.build.config = {'keep_when_not_allowed': False}
|
||||||
|
self.assertFalse(fdroidserver.build.keep_when_not_allowed())
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
os.chdir(os.path.dirname(__file__))
|
os.chdir(os.path.dirname(__file__))
|
||||||
|
Loading…
Reference in New Issue
Block a user