Now "report" step combines result in a uniform way and processes unit test
results XML output. It works for sub-builds only started from the 'premerge'
pipeline, i.e. non-recursive. One downside is that now one has to wait until
all jobs have finished.
- Add instructions to setup python environment
- added option to do full report cycle but not call Phabricator
- use "annotations" to show build status. That lifts the need to filter ninja
and other output (thus `ph_no_filter_output` param removed) and output
everything. That is nice as script failures no longer lead to loss of logs.
- improved annotate() usability
- misc fixes
fixes#192
additionally:
- install python libs after scripts checkout, so we don't need to
rebuild images and restart agents only to add a new python dependency
- updated lib versions
- similar scripts checkout in steps
- moved linux agents to a new node pool (basically renamed old one)
- removed some out of date scripts or moved them to playlists
- removed shell scrips invoked from jenkins
- minor docs updates
Some python classes methods are not used anymore and will be cleaned up
separately.
- configured sccache on buildkite windows machines
- final result is sent to phabricator from "summary.py" that waits for both builds to complete
- extracted "add_url_artifact" to a runnable script
- reorganized code and fixed some of TODOs
- add links to join beta and report issue
- add link "not useful" to clang-tidy warning
- clang-tidy comment in report now tells how many inline comments were
added
Now clang-format report will skip files matching `clang-format.ignore`.
For now it's empty.
clang-tidy will not receive diffs for `clang-tidy.ignore` (it still can
produce warnings for these files).
In addition build bot will not will not post comments for files
that are matched by `clang-tidy-comments.ignore`. Now project/file should
be whitelisted to receive inline comments from clang-tidy.
Added all /test directories to `clang-tidy.ignore`.
Other alternatives considered:
- using 'compile_commands.json': does not contain header files.
- specifying -regex option to 'clang-tidy-diff': probably not the best
experience of providing multiple rules and maintaining a single regex.
+ don't assume that clang-format has passed if there is no file.
If linters didn't run at all file will be missing.
+ add "gray" icon for the result if it's unknown.
+ assume whole build is failed if clang-format or clang-tidy found something.
+ combine multiple lint messages per line.
Now report is constructed by adding more data from several stages and
represents internal structure rather what API expects.
+ Made all function that don't interact with phabricator free standing
+ Now links list all files in results directory
+ Status icons
Example comment: https://reviews.llvm.org/D71197#1779176 (links don't work).
E.g.: https://reviews.llvm.org/D71197?id=233029
Will add a link to file and code to apply the patch in the next PR.
+ don't create TARGET_DIR in scripts;
+ updated section about local build;
+ partially specified inputs / outputs of scripts so it's more transparent what are the results;
+ added symlink to compile_command.json (clang-tidy will need it);
+ add IDEA files to .gitignore.