Commit Graph

4 Commits

Author SHA1 Message Date
Mikhail Goncharov
8149989532 enable new pipeline 2023-08-31 18:17:53 +02:00
Mikhail Goncharov
c81ab62273 update pipeline generation script
- Add control over "modified files" set and agent targeting rules. Mostly for testing purposes.

- Moved sections that outputs "steps" after functions

- Added step that report back to Phabricator

That will allow to replace step generation from invocation of script https://github.com/google/llvm-premerge-checks/blob/main/scripts/pipeline_premerge.py to plain call to ".ci/generate-buildkite-pipeline-premerge".

Differential Revision: https://reviews.llvm.org/D159280
2023-08-31 16:18:42 +02:00
Louis Dionne
cf1a3d9358 Implement the monolithic CI pipeline in the monorepo
This basically inlines the logic that was previously located in
https://github.com/google/llvm-premerge-checks so it is part of
the monorepo. This has the benefit of making it extremely easy
for individual projects to understand and modify this logic for
their own needs, unlike the current model where this logic lives
in a separate non-LLVM repository.

It also allows testing changes to the CI configuration using a simple
Phabricator review, since the code that defines the CI pipeline is taken
from the patch under review.

This (or something equivalent) is necessary if we want to retain the
current monolithic pre-commit CI throughout the GitHub PR transition.
Since triggering the monolithic CI is currently attached to the system
we use for triggering CI pipelines from Phabricator, we will lose that
part of the CI when we move to GitHub PRs if we don't do anything.

I've decided to rewrite the code as a shell script because the logic
was fairly simple and it seemed a lot easier than figuring out how to
pull only the relevant parts of llvm-premerge-checks into the monorepo.
Furthermore, I think we should strive to move away from the monolithic
CI altogether since sub-projects should understand, own and maintain the
tests that are relevant for them to run in the CI (with LLVM providing
the infrastructure). Hence, this is somewhat of a temporary solution
until monolithic CI is removed entirely.

Differential Revision: https://reviews.llvm.org/D158863
2023-08-29 13:31:19 -04:00
Louis Dionne
298f207e06 [ci] Make libc++ and Clang CI scripts independent
This simply moves existing CI-related scripts for Clang outside of libc++
to make the two projects independent with respect to CI.

The reason for making this change is that libc++'s CI pipeline history
was full of Clang runs, making it a lot harder to figure out information
about libc++'s own jobs. I created a pipeline for Clang and this patch
will run pre-commit CI for Clang inside that pipeline instead.

Differential Revision: https://reviews.llvm.org/D155078
2023-07-12 14:01:38 -04:00