Perforce用户使用帮助文档
修改部署脚本
-
在“管理 -> 服务器管理 -> 部署脚本下载”下载脚本ArtEase-deploy.sh。
-
使用文本编辑器打开脚本,推荐Notepad++,不推荐记事本。
-
在脚本中找到如下代码部分,添加环境变量和挂载。
log_info "启动docker容器..."
if [[ "${system}" != "windows" ]]; then
docker run -d -P --name ${CONTAINER_NAME} \
--net=bridge \
--restart always\
-v ~/.subversion/:/root/.subversion \
-v /tmp:/tmp \
# 挂载资源目录,以下例子表示p4资源应该位于你们服务器中的/home/artease/artclient_p4下的,
# 对应容器中/home/artease/artclient_p4/workspace
-v /home/artease/artclient_p4:/home/artease/artclient_p4/workspace \
${docker_mount_str} \
-e GROUP="${GROUP}" \
-e HOST_SYSTEM="${system}" \
-e DEBUG="${DEBUG}" \
-e SVN_PATH="${res_path_str}" \
-e MOUNT_PATH="${mount_path_str}" \
#看这里...
#按照上面几行的样子添加如下代码
-e P4USER="Perforce用户名" \
-e P4PASSWORD="用户密码" \
-e P4PORT="Perforce服务器IP地址:端口号" \
-e STREAM="你要拉取资源的仓库,从Perforce仓库双斜杠后面开始写,末尾不带斜杠" \
-e P4ROOT="美术资源根路径,美术资源在容器中的路径,比如/home/mine,从容器内系统根目录开始写" \
-e WS="工作目录,如果没有则自动创建,在根路径下面,比如WS='workspace', 则美术资源会下载到/home/mine/workspace下面"\
dockerhub.nie.netease.com/artease/artease_runner
# 添加上面六个环境变量就行了
# windows系统的环境变量在下面添加,方法同上
else
docker run -d -P --name ${CONTAINER_NAME} \
--net=bridge \
--restart always\
-v C:/Users/${user}/AppData/Roaming/Subversion:/root/.subversion \
${docker_mount_str} \
-e GROUP="${GROUP}" \
-e HOST_SYSTEM="${system}" \
-e DEBUG="${DEBUG}" \
-e SVN_PATH="${res_path_str}" \
-e MOUNT_PATH="${mount_path_str}" \
dockerhub.nie.netease.com/artease/artease_runner
fi
注意事项:
P4USER="Perforce用户名",如果是公司分配的corp邮箱,则这里应填邮箱前缀。
STREAM:表示你要拉取的仓库,如果填写"depot_g0001/test",则拉取test下面的所有资源。test后面不可有斜杠。
P4PORT:目前已测试采用ssl连接方式可正常使用,格式"ssl:服务器域名或IP:1666"。
特别提醒:添加环境变量时别忘了后面的反斜杠“\”,且每行之间不能有空行。
用户密码是可选的,可不填。
部署脚本
在服务器上使用root用户部署脚本
chmod +x ArtEase-deploy.sh
bash ArtEase-deploy.sh
开启检查任务
使用脚本开启检查任务
之前的任务默认用户使用的是SVN,如果使用的是Perforce,则需要指定参数 version_type为1。
使用python脚本创建检查任务的方式可以参考增量、全量检查使用文档。
创建Perforce检查任务示例
check_path:检查路径。
perforce_command:可以在里面填写多条想要在容器中执行的命令,使用英文逗号隔开,命令执行结果返回在回调接口中。
提示:创建检查任务之后,要多注意日志打印,核对配置是否正确
全量检查
import json
import requests
headers = {
'Content-Type': 'application/json'
}
data = {
"params":{
"author": "xxxx@corp.netease.com", # POPO账号
"scheme": "方案名称",
"callback": True或False, # 是否需要回调
"remind": 1, # 1表示接收POPO提醒,0表示不接收
"version_type": 1, # 1表示Perforce,0表示SVN,默认0
"check_path": "/home/artease/artclient/perforce/workspace/test1",
"perforce_command": ['p4 changes -m 1'] # 返回1条最新的changelist
}
}
artease_url = '官网:管理->服务器管理->WebHook->正确性检查WebHook接口'
res = requests.post(artease_url, data=json.dumps(data), headers=headers
增量检查
import json
import requests
headers = {
'Content-Type': 'application/json'
}
data = {
"svn_commit":{
"author": "xxxx@corp.netease.com", # POPO账号
"scheme": "方案名称",
"callback": True或False, # 是否需要回调
"remind": 1, # 1表示接收POPO提醒,0表示不接收
"version_type": 1, # 1表示Perforce,0表示SVN,默认0
"files":[ [ "U", "增量文件地址" ],[ "A", "增量文件地址"] ] ,
"check_path": "/home/artease/artclient/perforce/workspace/test1",
"perforce_command": ['p4 changes -m 1'] # 返回1条最新的changelist
}
}
artease_url = '官网:管理->服务器管理->WebHook->正确性检查WebHook接口'
res = requests.post(artease_url, data=json.dumps(data), headers=headers)
获取changelist命令在同步Perforce之前执行,其他命令在同步Perforce之后执行
检查路径
检查路径在创建任务的脚本中指定!
注意检查路径!!!确保文件路径正确!
举例:
P4ROOT="/home/mine"
WS="workspace"
STREAM="streamsDepot"
如果远程Perforce仓库的目录结构如下:
则,同步远程仓库到本地之后的文件路径为:
/home/mine/workspace/mainline/index
/home/mine/workspace/mainline/.~readme - 副本.md
/home/mine/workspace/mainline/readme - 副本.md
/home/mine/workspace/mainline/readme.md
如果没有指定检查路径,则默认检查路径为 P4ROOT + WS,对应上面的例子就是
/home/mine/workspace
如果指定了检查路径,检查指定路径下的资源,比如指定如下检查路径
/home/mine/workspace/res/desk
在平台配置
[管理] - [服务器管理] 页面中可进行添加Perforce任务配置
。