diff options
author | Florian Bruhin <me@the-compiler.org> | 2020-07-02 19:37:07 +0200 |
---|---|---|
committer | Florian Bruhin <me@the-compiler.org> | 2020-07-02 22:21:07 +0200 |
commit | d3123561233dc252b44e4ac89c1a8a6ac3ec215f (patch) | |
tree | 3432dcc361b3db9c36abdd6dd4b9708bdff9107a | |
parent | 593934bd62b7e03442de4269f6d0828086cd69a5 (diff) | |
download | qutebrowser-d3123561233dc252b44e4ac89c1a8a6ac3ec215f.tar.gz qutebrowser-d3123561233dc252b44e4ac89c1a8a6ac3ec215f.zip |
ci: Allow different warning/error patterns in problemmatchers.py
-rw-r--r-- | scripts/dev/ci/problemmatchers.py | 35 |
1 files changed, 26 insertions, 9 deletions
diff --git a/scripts/dev/ci/problemmatchers.py b/scripts/dev/ci/problemmatchers.py index 4681b2c70..59fc501fd 100644 --- a/scripts/dev/ci/problemmatchers.py +++ b/scripts/dev/ci/problemmatchers.py @@ -66,8 +66,7 @@ MATCHERS = { # "undefined name" is FXXX (i.e. not an error), but e.g. multiple # spaces before an operator is EXXX (i.e. an error) - that makes little # sense, so let's just treat everything as a warning instead. - "severity": "warning", - "pattern": [ + "pattern-warning": [ { "regexp": r"^([^:]+):(\d+):(\d+): ([A-Z]\d{3}) (.*)$", "file": 1, @@ -81,6 +80,23 @@ MATCHERS = { } +def add_matcher(output_dir, owner, pattern, severity=None): + output = { + 'owner': owner, + 'pattern': pattern, + } + if severity is not None: + output['severity'] = severity + + data = {'problemMatcher': [output]} + + output_file = output_dir / '{}.json'.format(owner) + with output_file.open('w', encoding='utf-8') as f: + json.dump(data, f) + + print("::add-matcher::{}".format(output_file)) + + def main(): testenv = sys.argv[1] if testenv not in MATCHERS: @@ -92,14 +108,15 @@ def main(): output_dir = pathlib.Path(tempfile.mkdtemp(suffix='-ghmatchers')) matcher_data = MATCHERS[testenv] - matcher_data['owner'] = testenv - data = {'problemMatcher': [matcher_data]} - output_file = output_dir / '{}.json'.format(testenv) - with output_file.open('w', encoding='utf-8') as f: - json.dump(data, f) - - print("::add-matcher::{}".format(output_file)) + for key, severity in [('pattern', None), + ('pattern-warning', 'warning'), + ('pattern-error', 'error')]: + if key in matcher_data: + add_matcher(output_dir=output_dir, + owner=testenv, + pattern=matcher_data[key], + severity=severity) if __name__ == '__main__': |