# How to Use CI Result in Apollo In Apollo, whether a PR can be merged depends on CI result and CLA. ## What works will CI check? Apollo CI will run the following steps: 1. Checkout your PR into Apollo codebase and build 1. Lint your code including .cc, .h, .py, BUILD, etc 1. Run all unit tests So it's recommended that the following commands should be run before commiting your code. ``` ./apollo.sh lint ./apollo.sh build ./apollo.sh test ``` When your PR your PR got blocked by CI, you can click `Details` ![build_failed](images/build_failed.png) Now you are in our CI system, enter `Build Log` to see detailed fail log. ![detail_log](images/build_log.png) ## Possible Errors And Solution ### Error: "FAIL: //modules/perception/base:blob_cpplint" ![lint](images/lint.png) This is due to lint error. Apollo adopted Google coding style, so the header files shoud be in the suggested order. If you can't find the suggestion, please turn the log up and seek carefully. ### Error: "FAIL: //modules/perception/base:blob_test" ![test_failed](images/unit_test_failed.png) ![test_failed_log](images/unit_failed_log.png) This is due to a unit test failure. You can correct the unit test according to the log. Especially when timeout happens, you can try changing the `size` filed in BUILD from `small` to `medium` or `large`, hope it works. If more complicated situation happens, please feel free to comment in your PR.