Skip to content

2.svn检查指引

svn检查配置

服务器管理

首先你需要在服务器管理中检查、修改或添加所需检查的svn分支。

image-20220426145451982

服务器管理中可以编辑分支信息,其中:

  • 主机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

至此,服务端环境初始化完成。

部署脚本

当一切准备就绪之后,就可以下载部署脚本并放到所需服务器。

image-20220426161253947

最后就可以通过以下两个操作完成部署。

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

恭喜部署成功!

-----------------------------