1
0
Fork 0

updated documentation for public rollout (#139)

This commit is contained in:
ChristianKuehnel 2020-02-26 15:46:15 +01:00 committed by GitHub
parent 289d1c1205
commit 4afcd84e56
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 53 additions and 15 deletions

View file

@ -142,3 +142,44 @@ Build and run agent docker image `sudo ./containers/build_run.sh agent-debian-te
Within a container set environment variables similar to [pipeline](https://github.com/google/llvm-premerge-checks/blob/master/Jenkins/Phabricator-pipeline/Jenkinsfile).
Additionally set `WORKSPACE`, `PHID` and `DIFF_ID` parameters. Set `CONDUIT_TOKEN` with your personal one from `https://reviews.llvm.org/settings/user/<USERNAME>/page/apitokens/`.
# Phabricator integration
The general flow for builds on Phabricator is:
1. A user uploads a *Diff* (=patch) to a *Revision* (set of Diffs with comments and buildstatus, ... ).
2. A *Herald* checks if one of the *rules* matches this event.
3. You can use the rules to trigger a *Build* in *Harbormaster*.
4. Harbor sends an HTTP request to the Jenkins server.
5. Jenkins executes the build. In the last step of the build, a script is uploading the results to Phabricator.
6. Phabricator sets the build status and displays the results.
## Herald
We currently have these Herald rules to configure the builds:
* Triggering builds for everyone:
* [H576](https://reviews.llvm.org/H576) This will only trigger for non-beta testers.
* Triggering the beta-test builds:
* [H511](https://reviews.llvm.org/H511) or the beta testers, this is for testing new features.
* [H552](https://reviews.llvm.org/H552) for all changes to MLIR (archived)
* [H527](https://reviews.llvm.org/H527) for all changes to clang-extra-tools (archived)
You can *archive* a rule to disable it.
## Harbormaster
We have these build plans in Harbormaster:
* [Plan 4](https://reviews.llvm.org/harbormaster/plan/4/) Builds for everyone
* [Plan 3](https://reviews.llvm.org/harbormaster/plan/3/) Builds for beta testers
You can *disable* a build plan to stop it from building.
## Per user Opt in/out
You can also on a per-user bases opt in/out to premerge testing.
* To opt-in to pre-merge beta testing, add yourself to this project:
https://reviews.llvm.org/project/view/78/
* To opt-out of pre-merge testing entirely, add yourself to this project:
https://reviews.llvm.org/project/view/83/
These projects are checked in the Herald rules above.

View file

@ -11,29 +11,30 @@ The *checks* comprise of these steps:
1. Run the test suite -- `ninja check-all`
1. Run clang-format and clang-tidy on the diff.
The checks are executed on one platform (Debian Testing on amd64 with the clang-8 tool chain) at the moment. We're in the process of adding builds and Test for Windows (amd64, Visual Studio 2017). The plan is to add more platforms, in the future.
The checks are executed on one Linux platform (Debian Testing on amd64 with the clang-8 tool chain) at the moment. Builds and Test for Windows (amd64, Visual Studio 2017) are currently in beta testing. The plan is to add more platforms, in the future.
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.
# Beta testing
The pre-merge checks are in the public beta testing phase right now. During the beta testing phase we want so see if the checks work as intended and to get more feedback from the users.
## Feedback
If you find any problems please raise an [issue on github](https://github.com/google/llvm-premerge-checks/issues).
## Opt out
In case you want to opt out entirely of pre-merge testing, add yourself to the [OPT OUT project](https://reviews.llvm.org/project/view/83/).
If you decide to opt out, please let us know why, so we might be able to improve in the future.
## Sign up for beta test
To sign up for the pre-merge beta testing, please add yourself to the ["pre-merge beta testing" project](https://reviews.llvm.org/project/members/78/) on Phabricator ([H511](https://reviews.llvm.org/H511)).
The checks are enabled for all changes to `clang-tools-extra/clangd` ([H527](https://reviews.llvm.org/H527)) and `mlir`([H552](https://reviews.llvm.org/H552)).
To get the latest features, sign up for the pre-merge beta testing by adding yourself to the ["pre-merge beta testing" project](https://reviews.llvm.org/project/members/78/) on Phabricator.
# 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](https://secure.phabricator.com/Q447) a build.
To get a patch on Phabricator tested - once you are signed up - 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 that either:
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 that either:
* You set a git hash as `sourceControlBaseRevision` in Phabricator which is available on the github repository,
* 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.
@ -49,10 +50,6 @@ Bot will compile and run tests, run clang-format and [clang-tidy](docs/clang_tid
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](images/unit_tests.png)
After every build the build server will comment on your latest patch, so that you can also see the results for previous changes.
The comment also contains a link to the log files:
![bot comment](images/bot_comment.png)
The build logs are stored for 90 days and automatically deleted after that.
You can also trigger a build manually by using the "Run Plan Manually" link on the [Harbormaster page](https://reviews.llvm.org/harbormaster/plan/3/) and entering a revision ID in the pop-up window.