1
0
Fork 0
Commit graph

20 commits

Author SHA1 Message Date
Mikhail Goncharov
df318ccf4f fix project resolutions
and some of the typing issues found by mypy
2021-10-04 16:07:06 +02:00
Mehdi Amini
6e624c30f9 Change the premerge checks to only check the affected projects
The current setup is configuring the "affected projects" as well
as their dependencies, and run `ninja all` followed by
`ninja check-all`.

This is quite a pessimization for leaf project which don't need to
build and run the tests for their dependencies.
For example a patch affecting only MLIR shouldn't need to build
and run LLVM and clang tests.
This patch changes this by running checks only for the affected
project. For example a patch touching `mlir` is affecting `mlir`
and `flang`. However `flang` depends on `clang`. So the list of
projects to configure is `mlir;flang;clang;llvm;`, but we want
to test only mlir and flang ; we'll run only `ninja check-mlir
check-flang`.

In practice in this example running `ninja all` builds 5658 targets
and `ninja check-all` after that adds 716 more targets. On the other
hands `ninja check-flang check-mlir` results in 3997 targets total.

Concretely the contract with premerge_checks.py is changed so that
the expected argument for the --projects flag is only the list of
affected project, dependencies are automatically added.
2021-09-21 14:28:38 +02:00
Mikhail Goncharov
1d3a3049bb More accurate commands to reproduce build
Added command to create a link to a compilation database and switch
directory to run tidy and format.
2021-01-11 15:42:11 +01:00
Mikhail Goncharov
86226f3146 fix: builds were not marked as failed 2020-11-26 12:28:11 +01:00
Mikhail Goncharov
681fbbe2cf Process results and unit-test output of libcxx
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
2020-11-25 15:29:50 +01:00
Mikhail Goncharov
5cd16dde45 Don't fail if phabricator target is not specified
That is useful when testing pipelines
2020-10-05 13:33:19 +02:00
Mikhail Goncharov
c082f1aa9b Organize scripts
Move all .py that are supposed to be run as __main__ under ./scripts
so there is no need to manipulate sys.path to import modules.

Runby cleanup
2020-10-02 14:18:22 +02:00
Mikhail Goncharov
dc1080fc4c
Update premerge_checks.py
use specific commit for reproducing the build
2020-08-14 15:54:11 +02:00
Mikhail Goncharov
a410c28d03
Update premerge_checks.py
add cd after clone
2020-08-14 15:17:21 +02:00
Mikhail Goncharov
605f18bad1 Add link to ninja log instead of XML #216
XML tooks too long to load and not that helpful

+ link tell how many tests have failed

+ link is added only if something is off
2020-07-22 15:45:53 +02:00
Mikhail Goncharov
89d294ef42 return exit status of ninja command
- Fix for #207. Previously grep was exiting with 1 and fail build if all
  lines from ninja are filtered. Also piping might hide exit code of the
  initial command. Now "tee" and "grep" is implemented on python level
  and we get exit code of the original command.

- Fixed default value of "scripts_branch", print scripts commit;

- Added option to filter ninja output (on by default as before).

- Copied cache usege reporting and error handling from "master" branch
  build to diff checks (useful for debugging).
2020-07-10 19:35:29 +02:00
Mikhail Goncharov
6bf3c85cc6 Print commands to reproduce build locally
- additional arguments to set enabled projects, log level and reset
cache.
2020-07-09 15:31:34 +02:00
Mikhail Goncharov
7667fc8004 Allow "building" in ninja all log
That is a temporary workaround for #207 that caused by grep exiting with
1 as whole `ninja all` output is filtered out.
2020-07-09 15:09:58 +02:00
Mikhail Goncharov
fb830daebe Update clang version
apt.llvm.org signature has changed, we also should use debian:stable
(=buster) as a base image to correctly install packages.

Removed jdk from the base image as it was used only by Jenkins.

Log packages version for every build.

Related issues: #112
2020-06-18 10:55:15 +02:00
Mikhail Goncharov
24da609a10 Flush stdout to fix log update
for #201
2020-06-17 15:07:19 +02:00
Mikhail Goncharov
82daa321a2 Don't use all projects for master / release builds 2020-06-04 14:10:08 +02:00
Mikhail Goncharov
770f6726bc Add new pipeline to build a master branch 2020-06-04 08:40:04 +02:00
Mikhail Goncharov
ac3e35d965 fix string format 2020-06-03 17:21:49 +02:00
Mikhail Goncharov
017ca44a75 Add windows build
- 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
2020-06-03 13:40:22 +02:00
Mikhail Goncharov
8eee5355ea building with buildkite 2020-05-25 16:42:40 +02:00