# 在Apollo中如何使用CI结果
在Apollo项目中,一个PR(pull request)能否被合入取决于是否签署了CLA协议以及CI的结果。

## CI将会检查哪些内容
Apollo的CI会按照以下步骤运行:

1. 将你的PR签入master的基础代码并进行构建
2. 对你的代码进行风格检查(包括 .cc、.h、.py、BUILD等)
3. 运行所有单元测试

所以,推荐在提交代码前执行以下命令:

```
./apollo.sh lint
./apollo.sh build
./apollo.sh test
```

当你的PR出现CI错误时,你可以点击下图中的`Details`

![build_failed](images/build_failed.png)

现在你就进入到了我们的CI系统,进入`Build Log`可以查看更详细的日志。

![detail_log](images/build_log.png)

## 可能遇到的错误和解决办法

### Error: "FAIL: //modules/perception/base:blob_cpplint"

![lint](images/lint.png)

这是由于代码风格检查失败。Apollo的代码使用Google代码风格,所以头文件应该按照建议的顺序排列。如果你没有找到建议内容,可以点击展开日志信息。

### Error: "FAIL: //modules/perception/base:blob_test"

![test_failed](images/unit_test_failed.png)

![test_failed_log](images/unit_failed_log.png)

这是由于单元测试失败。你可以根据日志信息来修正单元测试。特别是发生超时问题时,你可以尝试将BUILD文件中的`size`设置从`small`修改为`medium`或`large`,这可能会有效。

如果遇到了更加复杂的情况,欢迎在你提交的PR下进行留言。