MCPcopy Index your code
hub / github.com/Tencent/CodeAnalysis / scan_project

Method scan_project

client/node/localtask/runlocaltask.py:64–169  ·  view source on GitHub ↗

根据参数对项目进行扫描 :param execute_request_list: list, 当前可以在本地直接执行的任务参数列表 :param proj_conf: dict, 项目配置 :return:

(self, execute_request_list, proj_conf)

Source from the content-addressed store, hash-verified

62 self._skip_processes = skip_processes
63
64 def scan_project(self, execute_request_list, proj_conf):
65 """
66 根据参数对项目进行扫描
67 :param execute_request_list: list, 当前可以在本地直接执行的任务参数列表
68 :param proj_conf: dict, 项目配置
69 :return:
70 """
71 codecount_handler = None
72 proj_scan_result = []
73
74 # 如果任务列表不为空,且没有任务需要发送到常驻节点执行,才需要统计代码行
75 if execute_request_list and not self._remote_task_names:
76 if self._source_dir:
77 task_request = copy.deepcopy(execute_request_list[0]) # 深度copy,以免影响原字典数据
78 task_request["task_name"] = "linecount"
79 RequestModify.modify_local_task_request(task_request, self._task_name_id_maps, self._job_id,
80 self._scm_auth_info.ssh_file,
81 self._token, self._server_url, self._source_dir, self._scm_info,
82 self._scm_auth_info, self._create_from)
83 codecount_handler = LocalCountLine(task_request)
84 codecount_handler.start_thread()
85 else:
86 self._code_line_count = CodeCountTask.run_count_line_task(execute_request_list, self._task_name_id_maps,
87 self._job_id,
88 self._scm_auth_info,
89 self._token, self._server_url,
90 self._source_dir, self._scm_info,
91 self._origin_os_env, self._create_from)
92
93 for task_request in execute_request_list:
94 # 完善task request字段
95 RequestModify.modify_local_task_request(task_request, self._task_name_id_maps, self._job_id,
96 self._scm_auth_info.ssh_file, self._token,
97 self._server_url, self._source_dir, self._scm_info,
98 self._scm_auth_info, self._create_from)
99
100 # 通过环境变量获取并发执行开关
101 concurrent_task_env = os.getenv("TCA_CONCURRENT_SCAN")
102 if concurrent_task_env == "False":
103 proj_scan_succ, proj_scan_result, self._local_task_dirs, error_code, error_msg = InOrderTasksRunner(
104 execute_request_list,
105 self._origin_os_env,
106 self._job_web_url,
107 self._proj_id).run()
108 else:
109 # 默认启用工具并行执行
110 proj_scan_succ, finished_task_results, error_code, error_msg = ConcurrentTasksRuner(execute_request_list,
111 self._origin_os_env,
112 self._job_web_url,
113 self._proj_id).run()
114 proj_scan_result.extend(finished_task_results)
115 for task_result in finished_task_results:
116 task_dir = os.path.dirname(task_result.request_file)
117 self._local_task_dirs.append(task_dir)
118
119 if proj_scan_succ:
120 # 判断扫描前后scm revision是否匹配,如果扫描过程中代码版本有更新,则任务失败
121 scm_revision_mgr = ScmRevisionCheck(self._dog_server, self._source_dir, self._total_scan, self._scm_info,

Callers 1

runMethod · 0.95

Calls 15

start_threadMethod · 0.95
is_revision_unchangedMethod · 0.95
get_resultMethod · 0.95
send_result_to_serverMethod · 0.95
LocalCountLineClass · 0.90
InOrderTasksRunnerClass · 0.90
ScmRevisionCheckClass · 0.90
NodeErrorClass · 0.90
ResultSenderClass · 0.90

Tested by

no test coverage detected