feat: joj3-env for post stages
This commit is contained in:
		
							parent
							
								
									4f194aa7bd
								
							
						
					
					
						commit
						a239f1e388
					
				|  | @ -639,6 +639,80 @@ def joj3_all( | ||||||
|                 sleep(retry_interval) |                 sleep(retry_interval) | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
|  | @app.command( | ||||||
|  |     "joj3-env", | ||||||
|  |     help="run all joj3 tasks from env var and cli args", | ||||||
|  | ) | ||||||
|  | def joj3_env( | ||||||
|  |     env_path: str = Argument("", help="path to .env file"), | ||||||
|  |     score_file_path: str = Argument( | ||||||
|  |         "", help="path to score json file generated by JOJ3" | ||||||
|  |     ), | ||||||
|  |     repo_name: str = Argument( | ||||||
|  |         "", | ||||||
|  |         help="name of grading repo to push failed table file", | ||||||
|  |     ), | ||||||
|  |     submitter_repo_name: str = Argument( | ||||||
|  |         "", | ||||||
|  |         help="repository's name of the submitter", | ||||||
|  |     ), | ||||||
|  |     scoreboard_file_name: str = Argument( | ||||||
|  |         "scoreboard.csv", help="name of scoreboard file in the gitea repo" | ||||||
|  |     ), | ||||||
|  |     failed_table_file_name: str = Argument( | ||||||
|  |         "failed-table.md", help="name of failed table file in the gitea repo" | ||||||
|  |     ), | ||||||
|  |     max_total_score: int = Option( | ||||||
|  |         -1, | ||||||
|  |         help="max total score", | ||||||
|  |     ), | ||||||
|  |     skip_result_issue: bool = Option( | ||||||
|  |         False, | ||||||
|  |         help="skip creating result issue on gitea", | ||||||
|  |     ), | ||||||
|  |     skip_scoreboard: bool = Option( | ||||||
|  |         False, | ||||||
|  |         help="skip creating scoreboard on gitea", | ||||||
|  |     ), | ||||||
|  |     skip_failed_table: bool = Option( | ||||||
|  |         False, | ||||||
|  |         help="skip creating failed table on gitea", | ||||||
|  |     ), | ||||||
|  |     submitter_in_issue_title: bool = Option( | ||||||
|  |         True, | ||||||
|  |         help="whether to include submitter in issue title", | ||||||
|  |     ), | ||||||
|  | ) -> None: | ||||||
|  |     submitter = os.getenv("GITHUB_ACTOR") | ||||||
|  |     run_number = os.getenv("GITHUB_RUN_NUMBER") | ||||||
|  |     exercise_name = os.getenv("CONF_NAME") | ||||||
|  |     commit_hash = os.getenv("GITHUB_SHA") | ||||||
|  |     run_id = os.getenv("RUN_ID") | ||||||
|  |     groups = os.getenv("GROUPS") | ||||||
|  |     if None in (submitter, run_number, exercise_name, commit_hash, run_id, groups): | ||||||
|  |         logger.error("missing required env var") | ||||||
|  |         raise Exit(code=1) | ||||||
|  |     joj3_all( | ||||||
|  |         env_path, | ||||||
|  |         score_file_path, | ||||||
|  |         submitter, | ||||||
|  |         repo_name, | ||||||
|  |         submitter_repo_name, | ||||||
|  |         run_number, | ||||||
|  |         scoreboard_file_name, | ||||||
|  |         failed_table_file_name, | ||||||
|  |         exercise_name, | ||||||
|  |         commit_hash, | ||||||
|  |         run_id, | ||||||
|  |         groups, | ||||||
|  |         max_total_score, | ||||||
|  |         skip_result_issue, | ||||||
|  |         skip_scoreboard, | ||||||
|  |         skip_failed_table, | ||||||
|  |         submitter_in_issue_title, | ||||||
|  |     ) | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
| @app.command( | @app.command( | ||||||
|     "joj3-check", |     "joj3-check", | ||||||
|     help="check joj3 restrictions", |     help="check joj3 restrictions", | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue
	
	Block a user