def main(cli_args): builder_args = python_parser.parse_args(cli_args) logger.setup_logging(builder_args) with ftl_util.Timing("full build"): with ftl_util.Timing("builder initialization"): python_ftl = python_builder.Python( context.Workspace(builder_args.directory), builder_args, _PYTHON_CACHE_VERSION, ) with ftl_util.Timing("build process for FTL image"): python_ftl.Build()
def setUp(self, mock_from): mock_from.return_value.__enter__.return_value = None self.ctx = context.Memory() self.ctx.AddFile("app.py", _APP) args = mock.Mock() args.name = 'gcr.io/test/test:latest' args.base = 'gcr.io/google-appengine/python:latest' args.python_version = 'python2.7' args.tar_base_image_path = None self.builder = builder.Python(self.ctx, args, "") self.interpreter_builder = layer_builder.InterpreterLayerBuilder( self.builder._venv_dir, self.builder._args.python_version) self.builder._pip_install = mock.Mock()
def main(cli_args): try: builder_args = python_parser.parse_args(cli_args) logger.setup_logging(builder_args) logger.preamble("python", builder_args) with ftl_util.Timing("full build"): with ftl_util.Timing("builder initialization"): python_ftl = python_builder.Python( context.Workspace(builder_args.directory), builder_args) with ftl_util.Timing("build process for FTL image"): python_ftl.Build() except ftl_error.UserError as e: ftl_error.UserErrorHandler(e, builder_args.builder_output_path) except ftl_error.InternalError as e: ftl_error.InternalErrorHandler(e, builder_args.builder_output_path)
def setUp(self, mock_from): mock_from.return_value.__enter__.return_value = None self.ctx = context.Memory() self.ctx.AddFile("app.py", _APP) args = mock.Mock() args.name = 'gcr.io/test/test:latest' args.base = 'gcr.io/google-appengine/python:latest' args.python_cmd = 'python2.7' args.pip_cmd = 'pip' args.venv_cmd = 'virtualenv' args.tar_base_image_path = None self.builder = builder.Python(self.ctx, args) # constants.VENV_DIR.replace('/', '') is used as the default path # will give permissions errors in some build environments (eg: kokoro) self.interpreter_builder = layer_builder.InterpreterLayerBuilder( ftl_util.gen_tmp_dir(constants.VENV_DIR.replace('/', '')), self.builder._python_cmd, self.builder._venv_cmd) self.interpreter_builder._setup_venv = mock.Mock() self.builder._pip_download_wheels = mock.Mock()