aboutsummaryrefslogtreecommitdiff
path: root/.ci
AgeCommit message (Collapse)AuthorFilesLines
2024-06-14[lldb] Stop testing LLDB on Clang changes in pre-commit CI (#95537)Vlad Serebrennikov1-1/+2
This is a temporary measure to alleviate Linux pre-commit CI waiting times that started snowballing [recently](https://discourse.llvm.org/t/long-wait-for-linux-presubmit-testing/79547/5). My [initial estimate](https://github.com/llvm/llvm-project/pull/94208#issuecomment-2155972973) of 4 additional minutes spent per built seems to be in the right ballpark, but looks like that was the last straw to break camel's back. It seems that CI load got past the tipping point, and now it's not able to burn through the queue over the night on workdays. I don't intend to overthrow the consensus we reached in #94208, but it shouldn't come at the expense of the whole LLVM community. I'll enable this back as soon as we have news that we got more capacity for Linux pre-commit CI.
2024-06-08Enable LLDB tests in Linux pre-merge CI (#94208)Vlad Serebrennikov2-3/+3
This patch removes LLDB from a list of projects that are excluded from building and testing on pre-merge CI on Linux. Windows environment needs to be prepared in order to test LLDB (https://github.com/llvm/llvm-project/pull/94208#issuecomment-2146256857), but we don't have enough maintenance resources to do that at the moment. Because LLDB has been in the list of projects that need to be tested on Clang changes, this PR make this happen on Linux. This seems to be the consensus in the discussion of this PR.
2024-05-29Remove debug print from CI generation script (NFC)Mehdi Amini1-1/+0
2024-05-29[CI] Disable Flang from pre-commit tests when Flang files are not touched on ↵Mehdi Amini1-4/+14
Windows Only (#93729) Flang triggers some OOM on Windows CI right now. This is disruptive to MLIR and LLVM changes that don't touch Flang, as such we disable building Flang on Windows only for these PR that don't touch flang. The testing on Linux is unchanged, and the post-merge Windows testing is still fully covering here.
2024-05-28[ci] limit parallel windows compile jobs to 24 (#93329)Lucile Rose Nihlen1-1/+5
This is an experiment to see if we can prevent some of the compiler OOMs happening without unduly impacting the Windows build latency.
2024-05-28[clang][ci] Move libc++ testing into the main PR pipeline (#93318)Vlad Serebrennikov2-13/+103
Following the discussion in https://github.com/llvm/llvm-project/pull/93233#issuecomment-2127920882, this patch merges `clang-ci` pipeline into main `GitHub Pull Requests` pipeline. `clang-ci` enables additional test coverage for Clang by compiling it, and then using it to compile and test libc++, libc++abi, and libunwind in C++03, C++26, and Clang Modules modes. Additional work we skip and total time savings we should see: 1. Checking out the repo to generate the clang-ci pipeline (2 minutes) 2. Building Clang (3.5 minutes) 3. Uploading the artifacts once, then downloading them 3 times and unpacking 3 times (0.5 minutes) Note that because previously-split jobs for each mode are now under a single Linux job, it now takes around 8 minutes more see the Linux CI results despite total time savings. The primary goal of this patch is to reduce the load of CI by removing duplicated work. I consider this goal achieved. I could keep the job parallelism we had (3 libc++ jobs depending on a main Linux job), but I don't consider it worth the effort and opportunity cost, because parallelism is not helping once the pool of builders is fully subscribed.
2024-05-22Disable compiling and testing Flang on Clang changes (#92740)Vlad Serebrennikov1-1/+1
This patch aims to rectify the Windows CI situation by decoupling Clang changes from Flang test suite, which is causing Windows CI to "pause" for 20 minutes (details can be found [here](https://discourse.llvm.org/t/flang-tests-are-extremely-slow-on-windows/78591/11)). This even seems desirable in the long run, because it was highlighted that the only part of Clang that Flang depends on is Driver ([Discourse post](https://discourse.llvm.org/t/flang-tests-are-extremely-slow-on-windows/78591/14)). Importantly, this patch leaves the question of _entirely_ disabling Flang tests on Windows CI out of scope.
2024-04-26[ci] Add clang project dependency for bolt testing (#90262)Amir Ayupov1-1/+1
2024-04-25[CI] Use trunk Clang in BOLT testingAmir Ayupov1-1/+0
2024-04-18[CI] Fix libclc dependenciesFraser Cormack1-1/+1
We need clang and llvm to build in-tree.
2024-03-28[CI] Hotfix: CI runs failing due to target escaping (#86897)Marc Auberer2-2/+2
My patch #86877 contains a mistake. Should have read the comment. Recent buildkite runs fail because of this, so it is a bit urgent.
2024-03-27[CI][NFC] Fix shellcheck warnings in CI scripts (#86877)Marc Auberer2-8/+8
This fixes all shellcheck warnings we have in `monolithic-linux.sh` and `monolithic-windows.sh`. All of them have to do with [SC2086](https://www.shellcheck.net/wiki/SC2086) - Double quote to prevent globbing and word splitting.
2024-03-14Add missing clang to the monolithic pre-merge build (#85354)Mehdi Amini1-2/+2
Clang has a custom separate pipeline integrated with libc++ that only runs in release mode. It means that changes which touches only clang won't run the clang tests in the configuration used by LLVM premerge and will break it unknowingly.
2024-03-11[CI] Run pre-merge build with -k 0 placed after "${BUILD_DIR}" (#84846)Connor Sughrue2-2/+2
#84828 added `-k 0` to pre-merge CI so that if one job fails the others would continue building. This pull request fixes the location of `-k 0` in the ninja command line. Resolves #84842 and #83371
2024-03-11Run pre-merge build with -k 0 to ensure all tests runs (#84828)Mehdi Amini2-2/+2
The -k option allows to continue the build after failures as much as possible. This is useful here because when we run > ninja check-llvm check-clang we would like the clang tests to run even if there is a failure in a llvm tests. The downside is that a build failure in one file that would prevent from running any test does not prevent from building more targets, wasting build resources potentially. Fixes #83371
2024-02-20repair and re-enable Windows buildkite presubmit (#82393)Lucile Rose Nihlen2-5/+11
2024-02-13ci: Temporarily disable the buildkite job on Windows (#81538)Tom Stellard1-1/+4
The failure rate is too high. See https://discourse.llvm.org/t/rfc-future-of-windows-pre-commit-ci/76840
2024-01-25[ci] Diff against origin/BASE-BRANCHLouis Dionne1-1/+1
Otherwise, when the base branch is not something that the CI runner has checked out, that reference to e.g. release/18.x is ambiguous.
2024-01-25[ci] Fix the base branch we use to determine changes (#79503)Louis Dionne1-6/+7
We should diff against the base branch, not always against `main`. This allows the BuildKite pre-commit CI to work properly when we target other branches, such as `release/18.x`.
2024-01-24[ci] Remove unused generate-buildkite-pipeline-scheduled script (#79320)Louis Dionne1-81/+0
The "scheduled build" pipeline on BuildKite had been disabled for months and doesn't exist anymore, so this script is effectively dead code. When we set up a cron-activated build again, we should do it using Github actions (which could trigger a BK pipeline if needed). Keeping this script around just creates additional confusion about what's used and what's not used for doing CI.
2024-01-24[ci] Remove bits that are unused since we stopped using PhabricatorLouis Dionne1-28/+1
2024-01-17[CI] Add lld as compiler-rt dependecy (#78536)Vitaly Buka1-1/+1
Fixing https://buildkite.com/llvm-project/github-pull-requests/builds/30321#018d1a4a-bf72-449e-a70a-444ded875255 Co-authored-by: XinWang10 <108658776+XinWang10@users.noreply.github.com>
2024-01-10[ci] Set timeout for individual tests and report slowest tests (#76300)Vitaly Buka2-2/+2
There are builds like https://buildkite.com/llvm-project/github-pull-requests/builds/24894 It looks like a deadlock in a test, but we can't see which one. `--timeout=` will make lit kill and report such tests. `--time-tests` produces nice report about slowest test, so we can tune them over time. The same build as above with new flags https://buildkite.com/llvm-project/github-pull-requests/builds/24961
2023-11-25[CI] Add check-mlir-python to MLIR pre-merge checks (#72847)Benjamin Maxwell2-2/+4
PR for: https://discourse.llvm.org/t/add-check-mlir-python-to-the-mlir-pre-commit-tests/74041 It’s easy to forget about the Python bindings and not build/test them locally. It’s also easy to change something that’ll break the python binding tests and not find out till after you’ve committed your change. These tests seem to run quickly and don’t require much extra setup, so let's add them to the general MLIR pre-merge tests.
2023-10-17[ci] diff with main merge-base (#69308)Mikhail Goncharov1-10/+3
Basically a reland of ec9d80ec43f5761a34c4a785c67d9e7d21ec8bda but now with fetching of main before that to get a correct merge base.
2023-10-16[ci] pull main branch before diffing (#68983)Mikhail Goncharov1-0/+10
we tried to generate a full diff against main in ec9d80e but it resulted in wrong diffs. It seems that the issue was that 'main' was not updated after agent restart and diff main...HEAD kept growing. Not enabling diff main...HEAD just yet and will check logs for new PRs first.
2023-10-02Revert "[ci] Diff against main when determining what files have changed for ↵Louis Dionne1-1/+1
pre-commit CI (#67743)" This reverts commit ec9d80ec43f5, since we are currently seeing tons of CI jobs being triggered spuriously.
2023-09-29[ci] Diff against main when determining what files have changed for ↵Louis Dionne1-1/+1
pre-commit CI (#67743) Since we moved to Github PRs, the workflow has changed a bit and folks often merge `main` back into their PR branch. This is fine, except the previous way of determining modified files for pre-commit CI would use the content modified just in the latest commit, whatever it is. This means that in case someone merged main back into their PR branch, we'd think that the files in the merge commit were modified by the PR, and we'd spuriously trigger a CI run. This should fix this issue. The downside is that the merge target is hardcoded to `main`, which might not always be what we want. I still think this is an improvement over the status quo.
2023-09-13[ci] builkite don't escape windows targets (#66192)Mikhail Goncharov2-2/+4
ninja takes every target as a separate argument
2023-09-12[ci] escape artifacts pathsMikhail Goncharov2-9/+9
That fixes issues like https://buildkite.com/llvm-project/github-pull-requests/builds/1350#018a8848-f70e-47f4-8aec-0bb48c49a7ca
2023-09-11updated buildkite pipeline generation (#65574)Mikhail Goncharov4-28/+51
- fixed build for linux (clang was missing) - removed /monolithic-.. from build directory - it does not add anything and makes path longer for windows which is not great; - added env-based configuration to control cache and agent targeting; - print (s)ccache stats to file not to pullute normal log.
2023-08-31enable new pipelineMikhail Goncharov1-3/+0
2023-08-31update pipeline generation scriptMikhail Goncharov1-48/+101
- 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-29Implement the monolithic CI pipeline in the monorepoLouis Dionne4-6/+348
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-07-12[ci] Make libc++ and Clang CI scripts independentLouis Dionne2-0/+83
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