forked from JOJ/Joint-Teapot
		
	feat: JOJ3 issue enhancement (#43)
This commit is contained in:
		
							parent
							
								
									9647b5d728
								
							
						
					
					
						commit
						0e54dd50ec
					
				|  | @ -235,6 +235,10 @@ def joj3_scoreboard( | ||||||
|     scoreboard_file_name: str = Argument( |     scoreboard_file_name: str = Argument( | ||||||
|         "scoreboard.csv", help="name of scoreboard file in the gitea repo" |         "scoreboard.csv", help="name of scoreboard file in the gitea repo" | ||||||
|     ), |     ), | ||||||
|  |     exercise_name: str = Argument( | ||||||
|  |         "unknown", | ||||||
|  |         help="name of the exercise that appears on the issue title", | ||||||
|  |     ), | ||||||
| ) -> None: | ) -> None: | ||||||
|     set_settings(Settings(_env_file=env_path)) |     set_settings(Settings(_env_file=env_path)) | ||||||
|     set_logger(settings.stderr_log_level, diagnose=False, backtrace=False) |     set_logger(settings.stderr_log_level, diagnose=False, backtrace=False) | ||||||
|  | @ -256,6 +260,7 @@ def joj3_scoreboard( | ||||||
|         score_file_path, |         score_file_path, | ||||||
|         submitter, |         submitter, | ||||||
|         os.path.join(repo_path, scoreboard_file_name), |         os.path.join(repo_path, scoreboard_file_name), | ||||||
|  |         exercise_name, | ||||||
|     ) |     ) | ||||||
|     actions_link = ( |     actions_link = ( | ||||||
|         f"https://{settings.gitea_domain_name}{settings.gitea_suffix}/" |         f"https://{settings.gitea_domain_name}{settings.gitea_suffix}/" | ||||||
|  | @ -294,6 +299,10 @@ def joj3_failed_table( | ||||||
|     failed_table_file_name: str = Argument( |     failed_table_file_name: str = Argument( | ||||||
|         "failed-table.md", help="name of failed table file in the gitea repo" |         "failed-table.md", help="name of failed table file in the gitea repo" | ||||||
|     ), |     ), | ||||||
|  |     exercise_name: str = Argument( | ||||||
|  |         "unknown", | ||||||
|  |         help="name of the exercise that appears on the issue title", | ||||||
|  |     ), | ||||||
| ) -> None: | ) -> None: | ||||||
|     set_settings(Settings(_env_file=env_path)) |     set_settings(Settings(_env_file=env_path)) | ||||||
|     set_logger(settings.stderr_log_level, diagnose=False, backtrace=False) |     set_logger(settings.stderr_log_level, diagnose=False, backtrace=False) | ||||||
|  | @ -355,6 +364,10 @@ def joj3_create_result_issue( | ||||||
|         "", |         "", | ||||||
|         help="gitea actions run number", |         help="gitea actions run number", | ||||||
|     ), |     ), | ||||||
|  |     exercise_name: str = Argument( | ||||||
|  |         "unknown", | ||||||
|  |         help="name of the exercise that appears on the issue title", | ||||||
|  |     ), | ||||||
| ) -> None: | ) -> None: | ||||||
|     set_settings(Settings(_env_file=env_path)) |     set_settings(Settings(_env_file=env_path)) | ||||||
|     set_logger(settings.stderr_log_level, diagnose=False, backtrace=False) |     set_logger(settings.stderr_log_level, diagnose=False, backtrace=False) | ||||||
|  | @ -367,7 +380,7 @@ def joj3_create_result_issue( | ||||||
|         + f"actions/runs/{run_number}" |         + f"actions/runs/{run_number}" | ||||||
|     ) |     ) | ||||||
|     title, comment = joj3.generate_title_and_comment( |     title, comment = joj3.generate_title_and_comment( | ||||||
|         score_file_path, actions_link, run_number |         score_file_path, actions_link, run_number, exercise_name | ||||||
|     ) |     ) | ||||||
|     tea.pot.gitea.create_issue(submitter_repo_name, title, comment, False) |     tea.pot.gitea.create_issue(submitter_repo_name, title, comment, False) | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -9,7 +9,7 @@ from joint_teapot.utils.logger import logger | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| def generate_scoreboard( | def generate_scoreboard( | ||||||
|     score_file_path: str, submitter: str, scoreboard_file_path: str |     score_file_path: str, submitter: str, scoreboard_file_path: str, exercise_name: str | ||||||
| ) -> None: | ) -> None: | ||||||
|     if not scoreboard_file_path.endswith(".csv"): |     if not scoreboard_file_path.endswith(".csv"): | ||||||
|         logger.error( |         logger.error( | ||||||
|  | @ -50,12 +50,12 @@ def generate_scoreboard( | ||||||
|     with open(score_file_path) as json_file: |     with open(score_file_path) as json_file: | ||||||
|         stages: List[Dict[str, Any]] = json.load(json_file) |         stages: List[Dict[str, Any]] = json.load(json_file) | ||||||
| 
 | 
 | ||||||
|     exercise_name = "unknown" |     if exercise_name == "unknown": | ||||||
|     for stage in stages: |         for stage in stages: | ||||||
|         if stage["name"] != "metadata": |             if stage["name"] != "metadata": | ||||||
|             continue |                 continue | ||||||
|         comment = stage["results"][0]["comment"] |             comment = stage["results"][0]["comment"] | ||||||
|         exercise_name = comment.split("-")[0] |             exercise_name = comment.split("-")[0] | ||||||
|     # Find if exercise in table: |     # Find if exercise in table: | ||||||
|     if exercise_name not in columns: |     if exercise_name not in columns: | ||||||
|         column_tail = columns[3:] |         column_tail = columns[3:] | ||||||
|  | @ -179,7 +179,7 @@ def generate_failed_table( | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| def generate_title_and_comment( | def generate_title_and_comment( | ||||||
|     score_file_path: str, action_link: str, run_number: str |     score_file_path: str, action_link: str, run_number: str, exercise_name: str | ||||||
| ) -> Tuple[str, str]: | ) -> Tuple[str, str]: | ||||||
|     with open(score_file_path) as json_file: |     with open(score_file_path) as json_file: | ||||||
|         stages: List[Dict[str, Any]] = json.load(json_file) |         stages: List[Dict[str, Any]] = json.load(json_file) | ||||||
|  | @ -195,19 +195,17 @@ def generate_title_and_comment( | ||||||
|         force_quit = stage["force_quit"] |         force_quit = stage["force_quit"] | ||||||
|         if force_quit: |         if force_quit: | ||||||
|             comment += " - Failed" |             comment += " - Failed" | ||||||
|         single_case = len(stage["results"]) == 1 |  | ||||||
|         if single_case: |  | ||||||
|             comment += f" - Score: {stage['results'][0]['score']}" |  | ||||||
|         comment += "\n" |         comment += "\n" | ||||||
|         for i, result in enumerate(stage["results"]): |         for i, result in enumerate(stage["results"]): | ||||||
|             if not single_case: |             comment += ( | ||||||
|                 comment += f"### Case {i} - Score: {result['score']}\n" |                 f"<details><summary>Case {i} - Score: {result['score']}</summary>\n" | ||||||
|  |             ) | ||||||
|             if result["comment"].strip() != "": |             if result["comment"].strip() != "": | ||||||
|                 comment += f"{result['comment']}\n" |                 comment += f"{result['comment']}\n" | ||||||
|             total_score += result["score"] |             total_score += result["score"] | ||||||
|  |             comment += "</details>\n\n" | ||||||
|         comment += "\n" |         comment += "\n" | ||||||
|     now = datetime.now().strftime("%Y-%m-%d %H:%M:%S") |     title = f"JOJ3 Result for {exercise_name} - Score: {total_score}" | ||||||
|     title = f"JOJ3 Result {now} - Score: {total_score}" |  | ||||||
|     return title, comment |     return title, comment | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue
	
	Block a user
	 mQzLjP
						mQzLjP