Merge pull request #1008 from molangning/patch-validator

Patch validator for edge cases
This commit is contained in:
g0tmi1k
2024-06-11 16:38:32 +01:00
committed by GitHub
2 changed files with 77 additions and 64 deletions
+25 -14
View File
@@ -12,7 +12,6 @@
import os,subprocess,sys import os,subprocess,sys
args=sys.argv[1]
files=[] files=[]
STEP_SUMMARY_LOCATION="summary.md" STEP_SUMMARY_LOCATION="summary.md"
IS_RUNNING_AS_ACTIONS=False IS_RUNNING_AS_ACTIONS=False
@@ -73,6 +72,19 @@ ERROR_MSG="Errors in file %s on lines %s"
WARNING_STRING="::warning file=%s,line=%s,col=%s,endColumn=%s::%s" WARNING_STRING="::warning file=%s,line=%s,col=%s,endColumn=%s::%s"
ERROR_STRING="::error file=%s,line=%s,col=%s,endColumn=%s::%s" ERROR_STRING="::error file=%s,line=%s,col=%s,endColumn=%s::%s"
if "CHANGED_FILES" not in os.environ:
print("[!] CHANGED_FILES environment variable not found!")
print("[-] This error may occur if you are running this script in your own machine\n")
if len(sys.argv) < 2:
print("[!] No arguments set, exiting.")
exit(2)
args=sys.argv[1]
else:
args=os.environ["CHANGED_FILES"]
print(f"[+] Checking these files {args}")
if "GITHUB_STEP_SUMMARY" not in os.environ: if "GITHUB_STEP_SUMMARY" not in os.environ:
print("[!] GITHUB_STEP_SUMMARY not found in system environments!") print("[!] GITHUB_STEP_SUMMARY not found in system environments!")
print("[-] This error may occur if you are running this script in your own machine\n") print("[-] This error may occur if you are running this script in your own machine\n")
@@ -217,17 +229,17 @@ for name,events,description in failed_checks:
if file not in cleaned_failed_checks.keys(): if file not in cleaned_failed_checks.keys():
cleaned_failed_checks[file]={} cleaned_failed_checks[file]={}
cleaned_failed_checks[file]["warn"]=[]
cleaned_failed_checks[file]["error"]=[]
cleaned_failed_checks[file]["check"]=name
cleaned_failed_checks[file]["description"]=description
cleaned_failed_checks[file][err_type].append(int(line_number)) if name not in cleaned_failed_checks[file].keys():
cleaned_failed_checks[file][name]={}
cleaned_failed_checks[file][name]["warn"]=[]
cleaned_failed_checks[file][name]["error"]=[]
cleaned_failed_checks[file][name]["description"]=description
for file, warn_and_errors in cleaned_failed_checks.items(): cleaned_failed_checks[file][name][err_type].append(int(line_number))
warn=warn_and_errors["warn"] for file, checker in cleaned_failed_checks.items():
error=warn_and_errors["error"] for name, warn_and_errors in checker.items():
for k,v in warn_and_errors.items(): for k,v in warn_and_errors.items():
@@ -259,17 +271,16 @@ else:
error_text=[] error_text=[]
check_results={} check_results={}
for file,warn_and_errors in cleaned_failed_checks.items(): for file, checker in cleaned_failed_checks.items():
for checker_name, warn_and_errors in checker.items():
error_msg="" error_msg=""
warn_msg="" warn_msg=""
current_errors=[] current_errors=[]
current_warnings=[] current_warnings=[]
checker_name=warn_and_errors["check"]
description=warn_and_errors["description"]
if checker_name not in check_results.keys(): if checker_name not in check_results.keys():
check_results.update({checker_name:{"warn":[],"error":[]}}) check_results.update({checker_name:{"warn":[],"error":[],"description":warn_and_errors["description"]}})
for line_numbers in warn_and_errors["warn"]: for line_numbers in warn_and_errors["warn"]:
@@ -312,7 +323,7 @@ else:
warn_msg='\n'.join(results["warn"]) warn_msg='\n'.join(results["warn"])
else: else:
warn_msg="There are no warnings for this check!" warn_msg="There are no warnings for this check!"
error_text.append(FORMATTED_OUTPUT_FORMAT%(checker,description,warn_msg,error_msg)) error_text.append(FORMATTED_OUTPUT_FORMAT%(checker,results["description"],warn_msg,error_msg))
error_text='\n- - -\n'.join(error_text) error_text='\n- - -\n'.join(error_text)
+3 -1
View File
@@ -28,4 +28,6 @@ jobs:
uses: tj-actions/changed-files@v34 uses: tj-actions/changed-files@v34
- name: Analyze all added or modified files - name: Analyze all added or modified files
run: | run: |
./.bin/validators.py "${{ steps.changed-files.outputs.all_changed_files }}" ./.bin/validators.py
env:
CHANGED_FILES: ${{ steps.changed-files.outputs.all_changed_files }}