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

Resolve some anomalies with build --force

This commit is contained in:
Ciaran Gultnieks 2012-03-09 15:17:16 +00:00
parent c1bf88a8a8
commit 5101080424

View File

@ -118,7 +118,7 @@ def build_server(app, thisbuild, build_dir, output_dir):
raise BuildException("Failed to destroy") raise BuildException("Failed to destroy")
def build_local(app, thisbuild, vcs, build_dir, output_dir, extlib_dir, tmp_dir, install): def build_local(app, thisbuild, vcs, build_dir, output_dir, extlib_dir, tmp_dir, install, force):
"""Do a build locally.""" """Do a build locally."""
# Prepare the source code... # Prepare the source code...
@ -132,7 +132,8 @@ def build_local(app, thisbuild, vcs, build_dir, output_dir, extlib_dir, tmp_dir,
print 'Scanner found ' + str(len(buildprobs)) + ' problems:' print 'Scanner found ' + str(len(buildprobs)) + ' problems:'
for problem in buildprobs: for problem in buildprobs:
print '...' + problem print '...' + problem
raise BuildException("Can't build due to " + if not force:
raise BuildException("Can't build due to " +
str(len(buildprobs)) + " scanned problems") str(len(buildprobs)) + " scanned problems")
# Build the source tarball right before we build the release... # Build the source tarball right before we build the release...
@ -251,7 +252,7 @@ def build_local(app, thisbuild, vcs, build_dir, output_dir, extlib_dir, tmp_dir,
def trybuild(app, thisbuild, build_dir, output_dir, extlib_dir, tmp_dir, def trybuild(app, thisbuild, build_dir, output_dir, extlib_dir, tmp_dir,
repo_dir, vcs, test, server, install): repo_dir, vcs, test, server, install, force):
""" """
Build a particular version of an application, if it needs building. Build a particular version of an application, if it needs building.
@ -274,7 +275,7 @@ def trybuild(app, thisbuild, build_dir, output_dir, extlib_dir, tmp_dir,
if server: if server:
build_server(app, thisbuild, build_dir, output_dir) build_server(app, thisbuild, build_dir, output_dir)
else: else:
build_local(app, thisbuild, vcs, build_dir, output_dir, extlib_dir, tmp_dir, install) build_local(app, thisbuild, vcs, build_dir, output_dir, extlib_dir, tmp_dir, install, force)
return True return True
@ -297,7 +298,7 @@ def parse_commandline():
parser.add_option("--on-server", action="store_true", default=False, parser.add_option("--on-server", action="store_true", default=False,
help="Specify that we're running on the build server") help="Specify that we're running on the build server")
parser.add_option("-f", "--force", action="store_true", default=False, parser.add_option("-f", "--force", action="store_true", default=False,
help="Force build of disabled app. 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_option("--install", action="store_true", default=False, parser.add_option("--install", action="store_true", default=False,
help="Use 'ant debug install' to build and install a " + help="Use 'ant debug install' to build and install a " +
"debug version on your device or emulator. " + "debug version on your device or emulator. " +
@ -307,10 +308,6 @@ def parse_commandline():
" to confirm you really want to build and install everything.") " to confirm you really want to build and install everything.")
options, args = parser.parse_args() options, args = parser.parse_args()
if options.force and not options.test:
print "Force is only allowed in test mode"
sys.exit(1)
# The --install option implies --test and --force... # The --install option implies --test and --force...
if options.install: if options.install:
if options.server: if options.server:
@ -324,6 +321,10 @@ def parse_commandline():
options.force = True options.force = True
options.test = True options.test = True
if options.force and not options.test:
print "Force is only allowed in test mode"
sys.exit(1)
return options, args return options, args
@ -368,8 +369,8 @@ def main():
if len(apps) == 0: if len(apps) == 0:
print "No such package" print "No such package"
sys.exit(1) sys.exit(1)
apps = [app for app in apps if not app['Disabled'] and app['builds'] and apps = [app for app in apps if (options.force or not app['Disabled']) and
len(app['Repo Type']) > 0 and len(app['builds']) > 0] app['builds'] and len(app['Repo Type']) > 0 and len(app['builds']) > 0]
if len(apps) == 0: if len(apps) == 0:
print "Nothing to do - all apps are disabled or have no builds defined." print "Nothing to do - all apps are disabled or have no builds defined."
sys.exit(1) sys.exit(1)
@ -392,7 +393,7 @@ def main():
try: try:
if trybuild(app, thisbuild, build_dir, output_dir, extlib_dir, if trybuild(app, thisbuild, build_dir, output_dir, extlib_dir,
tmp_dir, repo_dir, vcs, options.test, options.server, tmp_dir, repo_dir, vcs, options.test, options.server,
options.install): options.install, options.force):
build_succeeded.append(app) build_succeeded.append(app)
except BuildException as be: except BuildException as be:
if options.stop: if options.stop: