2.svn检查指引
svn检查配置
服务器管理
首先你需要在服务器管理
中检查、修改或添加所需检查的svn分支。
在服务器管理
中可以编辑分支信息,其中:
主机
、ip
和操作系统
无需编辑,成功跑过一次任务后自动回显。- 分支名:自定义,表示挂载的svn分支的名字,不可重复。
- 挂载路径:svn资源的绝对路径。
- 正确性检查路径:可选,表示要检查的资源根目录,比如,home/niyachen/trunk。
- svn up路径:可选,表示在哪个路径下面进行svn update资源更新,比如,home/niyachen/trunk。
- WebHook:提供的一个对本条配置的路径下的资源进行检查的接口,可与svnci平台webhook配合使用,完成svn提交的增量pre-hook或post-hook检查。
回调接口
项目组可以设置回调接口,在正确性检查完成后,用于接收任务结果,实现自定义通知。在完成检查后,ArtEase会向上述地址进行POST请求。
回调接口返回的数据示例:
{
"status": 1, // 1表示任务运行成功,2表示任务运行出错
"task": 1, // 1表示增量任务,2表示普通任务
"task_id": 9527, // 任务id
"task_name": "test", // 方案名称
"url": "任务的报告链接",
"svn_number": "svn版本号",
"user": ["提交者"],
"branch": "检查的哪个分支,挂载分支名",
"issue":[{"res_name":"资源名称","error_data":"出错数据","bug_reason":"出错原因"},{},{}] // 表示检查的结果数据,类型为list。其中list每一项为一个字典:{"res_name":资源名称,"error_data":出错数据,"bug_reason":出错原因}。
}
部署容器
准备工作
- 首先你需要准备至少一台用来做资源检查的服务器,服务器需要安装svn和docker。
Docker安装参考:https://yeasy.gitbook.io/docker_practice/install
- svn checkout资源。运行部署脚本的用户需要有这个目录的读写权限,可以正常执行
svn up
等命令。 如需检查多个分支,则需要将多个分支都checkout到服务器。
对于Messiah项目,为了充分利用所有的检查规则,checkout的资源根目录需要包括Engine目录(用于检查shader)、Repository目录(包括所有组件资源)和Worlds目录(场景定义),各组可以根据项目的目录结构,决定checkout的根目录。
1、以Debian系统为例,先安装几个库
apt-get update
apt-get install subversion libsasl2-modules-gssapi-mit krb5-user krb5-config
2、获取配置文件
wget -O /etc/krb5.conf http://sac.x.netease.com:8660/download/svn/krb5.conf
3、获取认证ticket,kinit 你的公司邮箱账号(不包括后缀),如:
root@top-qa02:~# kinit yzxn1709
Password for yzxn1709@CORP.NETEASE.COM:
root@top-qa02:~#
4、查看ticket信息是否配置成功
root@top-qa02:~# klist
Ticket cache: FILE:/tmp/krb5cc_0
Default principal: yzxn1709@CORP.NETEASE.COM
Valid starting Expires Service principal
03/30/2022 12:02:12 03/31/2022 12:02:06 krbtgt/CORP.NETEASE.COM@CORP.NETEASE.COM
root@top-qa02:~#
5、进行svn操作,在服务器上checkout svn中的美术资源,此过程不需要再输入密码,同时服务器上也不会保存密码。
注意这里的svn路径,是svn://开头,不再是https了
这里的svn路径填写到美术资源的路经,根据项目组实际情况填写,下面的命令只是一个示例
svn co svn://svn-test.gz.netease.com/resource artresource
6、由于用kinit保存的认证默认24小时过期,为了不用每次都重新配置密码,这里需要再进行接下来几步定时更新kinit认证文件
yzxn1709@top-qa02:~$ ktutil
ktutil: addent -password -p yzxn1709 -k 1 -e rc4-hmac
Password for yzxn1709@CORP.NETEASE.COM:
ktutil: wkt yzxn1709.keytab
ktutil: quit
7、配置一个crontab,定时执行以下任务
1 * * * * kinit -k -t /home/yzxn1709/yzxn1709.keytab yzxn1709
至此,服务端环境初始化完成。
部署脚本
当一切准备就绪之后,就可以下载部署脚本并放到所需服务器。
最后就可以通过以下两个操作完成部署。
hzhongliang@onlinegame-44-119:~$ chmod +x ArtEase-deploy.sh
hzhongliang@onlinegame-44-119:~$ ./ArtEase-deploy.sh
_ ______
/\ | | | ____|
/ \ _ __ | |_ | |__ __ _ ___ ___
/ /\ \ | '__|| __|| __| / _` |/ __| / _ \
/ ____ \ | | | |_ | |____| (_| |\__ \| __/
/_/ \_\|_| \__||______|\__,_||___/ \___|
开始检查服务器环境...
当前服务器ip: 10.xx.xx.xx
容器中svn路径:trunk=/home/svn/trunk;
恭喜环境检查通过!开始部署docker容器...
Using default tag: latest
latest: Pulling from artease/artease_runner
Digest: sha256:520ed188ff830a5ab21ed4c821af72560597cc5dcb5e147ee74772cc84e16047
Status: Image is up to date for dockerhub.nie.netease.com/artease/artease_runner:latest
启动docker容器...
1ffcc78b033e9bdc1d4f3c74d23c457a22e60fe00e1cc2e7d4aaff6cbb3c03b8
恭喜部署成功!
-----------------------------