Skip to content

Perforce用户使用帮助文档

修改部署脚本

  1. 在“管理 -> 服务器管理 -> 部署脚本下载”下载脚本ArtEase-deploy.sh。

  2. 使用文本编辑器打开脚本,推荐Notepad++,不推荐记事本。

  3. 在脚本中找到如下代码部分,添加环境变量和挂载。

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仓库的目录结构如下:

img

则,同步远程仓库到本地之后的文件路径为:

/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任务配置