diff options
Diffstat (limited to 'scripts/ci/parse_clang_tidy.py')
| -rw-r--r-- | scripts/ci/parse_clang_tidy.py | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/scripts/ci/parse_clang_tidy.py b/scripts/ci/parse_clang_tidy.py index 48596de..6167c99 100644 --- a/scripts/ci/parse_clang_tidy.py +++ b/scripts/ci/parse_clang_tidy.py @@ -1,5 +1,6 @@ import hashlib import json +import os import re import sys @@ -9,6 +10,7 @@ def parse_clang_tidy(log_file_path: str) -> list[dict]: pattern = re.compile( r"^(.*?):(\d+):(\d+):\s+(warning|error|note):\s+(.*?)\s+\[(.*?)\]$" ) + repo_root = os.environ.get("CI_PROJECT_DIR", os.getcwd()) with open(log_file_path, "r") as f: for line in f: @@ -19,7 +21,12 @@ def parse_clang_tidy(log_file_path: str) -> list[dict]: path, line, column, severity, message, name = match.groups() severity = "minor" if severity == "warning" else "major" - fingerprint_data = f"{path}:{line}:{name}" + try: + path = os.path.relpath(path, repo_root) + except ValueError: + pass + + fingerprint_data = f"{path}:{line}:{name}:{message}" fingerprint = hashlib.sha256(fingerprint_data.encode()).hexdigest() issues.append( |
