зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1819101 - Add JSON summary to taskgraph diff output with warnings support, r=ahal
Differential Revision: https://phabricator.services.mozilla.com/D171111
This commit is contained in:
Родитель
ac029a126f
Коммит
5c6b8f891b
|
@ -29,7 +29,8 @@ diff:
|
|||
cwd: '{checkout}'
|
||||
command: >-
|
||||
mkdir -p /builds/worker/artifacts/diffs &&
|
||||
./mach taskgraph target --fast -p "taskcluster/test/params" -o "/builds/worker/artifacts/diffs/diff.txt" --diff {base_rev}
|
||||
./mach taskgraph target --fast -p "taskcluster/test/params" -o "/builds/worker/artifacts/diffs/diff.txt" --diff {base_rev} &&
|
||||
python taskcluster/scripts/misc/summarize-tgdiff.py /builds/worker/artifacts/diffs/ 20
|
||||
when:
|
||||
files-changed:
|
||||
- 'taskcluster/ci/**'
|
||||
|
|
|
@ -0,0 +1,45 @@
|
|||
# This Source Code Form is subject to the terms of the Mozilla Public
|
||||
# License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||
|
||||
import argparse
|
||||
import json
|
||||
import pathlib
|
||||
|
||||
|
||||
def run():
|
||||
|
||||
parser = argparse.ArgumentParser(
|
||||
description="Classify output of taskgraph for CI analsyis"
|
||||
)
|
||||
parser.add_argument(
|
||||
"path",
|
||||
type=pathlib.Path,
|
||||
help="Folder containing all the TXT files from taskgraph target.",
|
||||
)
|
||||
parser.add_argument(
|
||||
"threshold",
|
||||
type=int,
|
||||
help="Minimum number of lines to trigger a warning on taskgraph output.",
|
||||
)
|
||||
args = parser.parse_args()
|
||||
|
||||
out = {"files": {}, "status": "OK", "threshold": args.threshold}
|
||||
for path in args.path.glob("*.txt"):
|
||||
|
||||
with path.open() as f:
|
||||
nb = len(list(filter(None, f.readlines())))
|
||||
|
||||
out["files"][path.stem] = {
|
||||
"nb": nb,
|
||||
"status": "WARNING" if nb >= args.threshold else "OK",
|
||||
}
|
||||
|
||||
if nb >= args.threshold:
|
||||
out["status"] = "WARNING"
|
||||
|
||||
(args.path / "summary.json").write_text(json.dumps(out, sort_keys=True, indent=4))
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
run()
|
Загрузка…
Ссылка в новой задаче