chiark / gitweb /
Merge branch 'log_git' into 'master'
authorrelan <relan@airpost.net>
Sun, 3 Dec 2017 06:03:03 +0000 (06:03 +0000)
committerrelan <relan@airpost.net>
Sun, 3 Dec 2017 06:03:03 +0000 (06:03 +0000)
build: log vcs tools version on every build attempt

See merge request fdroid/fdroidserver!391

1  2 
fdroidserver/build.py

diff --combined fdroidserver/build.py
index 8e59553e62404f8f9b90b4fe022245cacbd9f791,0d0f687a01f9c84a7b0492c18ad855385d463063..2bacd5550fd5adfd220d61906bf5d644a94f5ac9
@@@ -23,7 -23,6 +23,7 @@@ import shuti
  import glob
  import subprocess
  import re
 +import resource
  import tarfile
  import traceback
  import time
@@@ -1111,7 -1110,7 +1111,7 @@@ def main()
  
      # Read all app and srclib metadata
      pkgs = common.read_pkg_args(options.appid, True)
 -    allapps = metadata.read_metadata(not options.onserver, pkgs)
 +    allapps = metadata.read_metadata(not options.onserver, pkgs, sort_by_time=True)
      apps = common.read_app_args(options.appid, allapps, True)
  
      for appid, app in list(apps.items()):
      if not apps:
          raise FDroidException("No apps to process.")
  
 +    # make sure enough open files are allowed to process everything
 +    soft, hard = resource.getrlimit(resource.RLIMIT_NOFILE)
 +    if len(apps) > soft:
 +        try:
 +            soft = len(apps) * 2
 +            if soft > hard:
 +                soft = hard
 +            resource.setrlimit(resource.RLIMIT_NOFILE, (soft, hard))
 +            logging.debug(_('Set open file limit to {integer}')
 +                          .format(integer=soft))
 +        except (OSError, ValueError) as e:
 +            logging.warning(_('Setting open file limit failed: ') + str(e))
 +
      if options.latest:
          for app in apps.values():
              for build in reversed(app.builds):
                  # there are any.
                  if first:
                      vcs, build_dir = common.setup_vcs(app)
-                     logging.info("Using %s" % vcs.clientversion())
                      first = False
  
+                 logging.info("Using %s" % vcs.clientversion())
                  logging.debug("Checking " + build.versionName)
                  if trybuild(app, build, build_dir, output_dir, log_dir,
                              also_check_dir, srclib_dir, extlib_dir,
          logging.info(ngettext("{} build failed",
                                "{} builds failed", len(failed_apps)).format(len(failed_apps)))
  
 -    sys.exit(0)
 +    # hack to ensure this exits, even is some threads are still running
 +    sys.stdout.flush()
 +    sys.stderr.flush()
 +    os._exit(0)
  
  
  if __name__ == "__main__":