Perforce的trigger可以方便我们做一些提交后检查类的事情。

在游戏开发中,比如检测到本次提交含有策划的表格,就可以触发远程CI自动打表上传。

在Unreal项目中,引擎的源码更改是个很频繁的事情,为了方便策划和美术可以像unity一样打开编辑器,而不用自己手动编译,也可以利用此特性。

当检测到Engine和Project的Source目录,Plugins目录有提交,或者是.uplugin文件有变化,就可以远程触发CI开始构建编辑器,构建好的编辑器存到一个局域网的服务器上,本地再做一些更新编辑器的脚本就oK了

进去CMD,依次输入以下指令:

p4 set P4PORT=192.168.255.255:1666

p4 set P4USER=Alec

p4 set P4PASSWD=666666

p4 triggers

编辑完保存,关闭后如果出现,则说明语法有错误,需要检查下重新编辑

Error in triggers specification.

修改成功会提示以下消息:

Triggers saved.

在使用时发现,trigger文件对一些转义字符的支持不太好,好像一些括号也会有问题,所以可以在版本中加入一个bat文件,让trigger触发后执行这个bat脚本,bat脚本里面要做什么就很自由了。这个bat要先传到Perforce的服务器中,不然保存trigger文件时会提示找不到文件,因为它找的是服务器上的文件。

一个编写Trigger的小例子:

1
2
3
Triggers:
submitTrigger2 change-commit //Test/Dev/Engine/... %//Test/Dev/SubmitCheck.bat%
submitTrigger2 change-commit //Test/Dev/Projects/Test/... %//Test/Dev/SubmitCheck.bat%