1
0
Fork 0
Commit graph

17 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
30be93ac21 Fix fallback more in choose_projects
When a path can't be mapped, we fallback to a "all" project.
This was broken by the recent changes to be more selective on the
testing.
2021-09-29 15:58:56 +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
Geoffrey Martin-Noble
c47e555d0f Correctly skip project classification for utils/
`project` is a list here, not a string.
2021-07-29 10:42:12 +02:00
Mikhail Goncharov
6c2410440e Run bazel builds in premerge
if user is a member of "bazel_build" https://reviews.llvm.org/project/view/107/
or modified /utils/bazel/*

For #328
2021-07-28 16:01:44 +02:00
Mikhail Goncharov
c1b5c95071 Ignore changes in 'utils'
Blaze build check should be done via separate pipeline

For #325
2021-07-23 09:35:22 +02:00
Mikhail Goncharov
1bbd71f712 Fix project exclusion rules
Previously list of projects was resolved when job run at target OS.
Now project resolution is moved to the premerge pipeline and logic
should be there.
2020-10-08 12:08:57 +02:00
Mikhail Goncharov
c350101a23 Allow projects to define custom steps
Now it's possible to allow sub-projects to define own checks and skip
"generic" ones.

To properly accomodate affected projects that might not have special
treatment we:

1. extend the set of affected projecs with dependent (e.g. add 'libc' if
'clang' was modified)

2. add custom steps for projects that define own workflow. At the moment
it's only libcxx and it has a custom trigger pipeline so it's noop.

3. add dependent projects and run generic check on them.

To illustrate: imagine that we have a dependency graph:

llvm -> clang -> openmp

and only clang was modified in a diff; also clang defines own checks.
Thus list of affected projects will be [clang, openmp].
After adding custom checks and removing their projecst: [openmp].
After adding dependencies: [llvm, clang, openmp]. Generic linux /
windows checks will be run on thouse 3 projects.
So as you can see in some scenarios projects with custom checks will
still go through generic checks.

Note that clang-format and clang-tidy checks are run only for "generic"
checks at the moment.
2020-10-02 16:19:57 +02:00
Mikhail Goncharov
304f2e88d5 Additional logging for project selection
+ option to skip win / linux build from diff checks
2020-07-14 18:26:53 +02:00
Christian Kühnel
71144d1922 By default: building all enabled projects.
This is the fallback solution in case the project detection fails for
whatever reason. This is also used for building the master branches.
2020-04-23 11:22:31 +02:00
Christian Kühnel
7023688d1b fixxed choose_project for legagacy usage 2020-03-24 08:27:43 +00:00
ChristianKuehnel
a638dd5342
migrate scripts to python (#148)
* run_cmake.py working locally on Linux

* added os detection of choose_projects

* cmake works on windows

* run_ninja works on windows

* fixed newline characters
2020-03-23 09:03:24 +01:00
Christian Kühnel
50c20dc029 removed libcxx 2020-02-04 08:29:43 +01:00
Christian Kühnel
1bd9c4c4a9 removed print statement 2020-02-03 14:19:23 +01:00
Christian Kühnel
ed886a7da2 adding dependencies to project selector 2020-02-03 13:42:19 +01:00
Christian Kühnel
c7d2686251 fixed problems with configuring projects on Windows 2020-01-31 17:29:47 +00:00
ChristianKuehnel
0272b27c28
detect projects affected by a change (#113)
first proposal for affected projects detection
2020-01-28 16:39:53 +01:00