def run_job()

in cli/src/klio_cli/cli.py [0:0]


def run_job(klio_config, config_meta, **kwargs):
    direct_runner = cli_utils.is_direct_runner(
        klio_config, kwargs.pop("direct_runner")
    )
    cli_utils.error_stackdriver_logger_metrics(klio_config, direct_runner)

    git_sha = cli_utils.get_git_sha(
        config_meta.job_dir, kwargs.get("image_tag")
    )
    image_tag = kwargs.get("image_tag") or git_sha

    runtime_config = DockerRuntimeConfig(
        image_tag=image_tag,
        force_build=kwargs.get("force_build"),
        config_file_override=config_meta.config_file,
    )

    run_job_config = RunJobConfig(
        direct_runner=direct_runner,
        update=kwargs.pop("update"),
        git_sha=git_sha,
    )

    if (
        not direct_runner
        and klio_config.pipeline_options.runner
        == var.KlioRunner.DIRECT_GKE_RUNNER
    ):
        gke_commands = cli_utils.import_gke_commands()

        klio_pipeline = gke_commands.RunPipelineGKE(
            config_meta.job_dir, klio_config, runtime_config, run_job_config
        )
    else:
        klio_pipeline = job_commands.run.RunPipeline(
            config_meta.job_dir, klio_config, runtime_config, run_job_config
        )
    rc = klio_pipeline.run()
    sys.exit(rc)