1
0
Fork 0
No description
Find a file
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
.github/ISSUE_TEMPLATE Update bug_report.md 2019-12-11 16:06:13 +01:00
containers Enable windows builds back 2020-10-07 16:59:37 +02:00
docs Process results and unit-test output of libcxx 2020-11-25 15:29:50 +01:00
kubernetes remove bucket as we don't use it anymore 2020-10-15 13:19:36 +02:00
phabricator-proxy Allow other refspecs to be used. 2020-09-29 17:57:33 +02:00
scripts Process results and unit-test output of libcxx 2020-11-25 15:29:50 +01:00
.editorconfig review fixes, formatted text 2020-08-27 15:30:03 +02:00
.gitignore Organize scripts 2020-10-02 14:18:22 +02:00
k8s_config remove bucket as we don't use it anymore 2020-10-15 13:19:36 +02:00
LICENSE added license 2019-10-04 14:31:57 +02:00
local_setup.sh Update nginx configuration to capture all traffic to the static IP 2020-09-29 11:44:12 +02:00
README.md Update README.md 2020-10-08 10:11:04 +00:00

Status

No known issues 🙈

Overview

The pre-merge checks for the LLVM project are a continuous integration (CI) workflow. The workflow checks the patches the developers upload to the LLVM Phabricator instance.

Phabricator (https://reviews.llvm.org) is the code review tool in the LLVM project.

The workflow checks the patches before a user merges them to the master branch - thus the term pre-merge testing*. When a user uploads a patch to the LLVM Phabricator, Phabricator triggers the checks and then displays the results.

The CI system checks the patches before a user merges them to the master branch. This way bugs in a patch are contained during the code review stage and do not pollute the master branch. The more bugs the CI system can catch during the code review phase, the more stable and bug-free the master branch will become. citation needed

This repository contains the configurations and script to run pre-merge checks for the LLVM project.

Feedback

If you notice issues or have an idea on how to improve pre-merge checks, please create a new issue or give a ❤️ to an existing one.

Sign up for beta-test

To get the latest features and help us developing the project, sign up for the pre-merge beta testing by adding yourself to the "pre-merge beta testing" project on Phabricator.

Opt-out

In case you want to opt-out entirely of pre-merge testing, add yourself to the OPT OUT project.

If you decide to opt-out, please let us know why, so we might be able to improve in the future.

Requirements

The builds are only triggered if the Revision in Phabricator is created/updated via arc diff. If you update a Revision via the Web UI it will not trigger a build.

To get a patch on Phabricator tested the build server must be able to apply the patch to the checked out git repository. If you want to get your patch tested, please make sure that either:

  • You set a git hash as sourceControlBaseRevision in Phabricator which is
  • available on the Github repository, or you define the dependencies of your
  • patch in Phabricator, or your patch can be applied to the master branch.

Only then can the build server apply the patch locally and run the builds and tests.

Accessing results on Phabricator

Phabricator will automatically trigger a build for every new patch you upload or modify. Phabricator shows the build results at the top of the entry: build
status

The CI will compile and run tests, run clang-format and clang-tidy on lines changed.

If a unit test failed, this is shown below the build status. You can also expand the unit test to see the details: unit test
results.

Contributing

We're happy to get help on improving the infrastructure and workflows!

Please check contibuting first.

Development gives an overview how different parts interact together.

Playbooks shows concrete examples how to, for example, build and run agents locally.

If you have any questions please contact by mail or find user "goncharov" on LLVM Discord.

Additional Information

License

This project is licensed under the "Apache 2.0 with LLVM Exception" license. See LICENSE for details.