#!/usr/bin/env python3 # Copyright 2015 The Chromium Authors # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. """Launches //tools/checkbins/checkbins.py for trybots. To run locally on `out/release`, create /tmp/config.json { "checkout": "." } python3 testing/scripts/checkbins.py \ --paths /tmp/config.json \ --build-config-fs release run \ --output - """ import json import os import sys # Add src/testing/ into sys.path for importing common without pylint errors. sys.path.append( os.path.abspath(os.path.join(os.path.dirname(__file__), os.path.pardir))) from scripts import common WIN_PY3_TARGETS = ['python3.exe', 'python3.bat'] def with_python3(): if sys.version_info.major >= 3: return sys.executable # `env` should have worked on other platforms. if sys.platform == 'win32': # non-exhaustive, we expect depot_tools somewhere. for d in os.environ['PATH'].split(';'): for maybe_py3 in WIN_PY3_TARGETS: if os.path.exists(os.path.join(d, maybe_py3)): return os.path.join(d, maybe_py3) raise Exception("Cannot find python3 to launch checkbins.py") def main_run(args): print(sys.executable) with common.temporary_file() as tempfile_path: rc = common.run_command([ with_python3(), os.path.join(common.SRC_DIR, 'tools', 'checkbins', 'checkbins.py'), '--verbose', '--json', tempfile_path, os.path.join(args.paths['checkout'], 'out', args.build_config_fs), ]) with open(tempfile_path) as f: checkbins_results = json.load(f) common.record_local_script_results( 'checkbins', args.output, checkbins_results, True) return rc def main_compile_targets(args): json.dump([], args.output) if __name__ == '__main__': funcs = { 'run': main_run, 'compile_targets': main_compile_targets, } sys.exit(common.run_script(sys.argv[1:], funcs))