summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFlorian Bruhin <me@the-compiler.org>2020-07-02 19:37:07 +0200
committerFlorian Bruhin <me@the-compiler.org>2020-07-02 22:21:07 +0200
commitd3123561233dc252b44e4ac89c1a8a6ac3ec215f (patch)
tree3432dcc361b3db9c36abdd6dd4b9708bdff9107a
parent593934bd62b7e03442de4269f6d0828086cd69a5 (diff)
downloadqutebrowser-d3123561233dc252b44e4ac89c1a8a6ac3ec215f.tar.gz
qutebrowser-d3123561233dc252b44e4ac89c1a8a6ac3ec215f.zip
ci: Allow different warning/error patterns in problemmatchers.py
-rw-r--r--scripts/dev/ci/problemmatchers.py35
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__':