从Jenkins或Gerrit上获取拉代码和编译命令
在解一个新平台的bug时,有时候我们需要去拉新平台的代码和知道编译命令,这时候我们一般是去找对应的release manager或去问SPM,这其中就会增加沟通成本,这时候如果我们能自己去公司的Jenkins或Gerrit上获取这些信息,就会达到高效、快速的效果。
1. 从Jenkins上去寻找
前提:到Jenkins上去找对应项目的这些信息,前提是需要SPM给你开相应的权限,如果没有权限,是看不到这些信息的。
1.1 没有权限时
当你没有权限的时候,在Jenkins上进入对应项目的任务时,一般显示如下:
你会发现Jenkins上只显示了“返回面板”、“状态”、“修改记录”,没有其他配置相关的入口。
1.2 有权限时
当SPM给你开了对应项目的Jenkins任务权限时,在Jenkins上进入对应项目的任务时,一般显示如下:
这时候你就会发现与没有权限的时候相比,多了“Build with Parameters”、“配置”、“Email Template Testing”、“Job Config History”这四个入口。
然后进入到“配置”—>构建—>Execute shell中:
在上面的路径中,就可以找到我们想要的拉代码命令和编译命令。
2. 从Gerrit上去寻找
到Gerrit上去找拉代码和编译命令时,是不需要SPM开权限的,只要你有从公司Gerrit上拉代码的权限就行(作为程序员这个权限应该是从进入公司的第一天就有了)。
到公司的Gerrit上,通过项目的关键字寻找:
在Projects—>List—>Filter中输入项目的关键字。
搜索结束后,找到项目对应的manifest文件:
点击进入到manifest文件中:
这时候我们就找到了git clone manifest文件。其中 :
ssh://[email protected]:29418/AmlogicT950/manifest是远程仓库名。
将manifest文件git clone到本地:
clone到本地后,在manifest仓库中选择自己想要的xml文件。
找到远程仓库名和自己想要的xml文件后,就可以拼接拉取代码的命令:
repo init -u manifest仓库 -m 自己想要的xml文件名
那我们这里就是:
repo init -u ssh://[email protected]:29418/AmlogicT950/manifest -m Amlogic_T960_T950_BiuOS2.0.xml
执行拉取代码的命令,然后repo sync 同步下代码。
这里需要对repo略懂,如果还不太熟悉的朋友,可以看下我以前写的一篇的repo学习总结:
repo sync命令执行完成后,这时候代码就已经拉下来了,然后我们只需要到build.sh中去到相应的编译命令即可。
打开build.sh文件:
一般可以在function help函数中对应项目的编译命令。
这里我对应项目的编译命令是:
./build.sh all user -j4 -d p34a3p
其中,-j4里的4指的是线程数量,就是你想用几个线程去编译这个工程。一般是编译主机CPU支持的并发线程总数的1倍或2倍(例如:在一个4核,每个核支持两个线程的CPU上,可以使用make -j8或者make -j16)。
如果没有编译命令的Example,只要你对基本shell语法有所了解,也可以很快找到的。
综上所述,我们就可以自己在Jenkins或Gerrit找到自己想要的代码和编译命令,在减少沟通成本的同时,也可以get到一些程序员的基本技能。