持续集成在敏捷项目管理中的地位我不用多说,那么使用活字格开发时该如何利用命令行实现CI/CD持续集成持续发布所需的拉取、打包、发布操作,定时或一键完成将git服务器上的工程发布到服务器呢?
1. 环境准备
使用命令行完成工程拉取,除了活字格设计器,还需要用到git和压缩工具(这里推荐免费的7zip)
下载后,按照界面提示安装到默认路径即可。
2. 命令行调试
下面是具体每一步的执行命令,强烈建议在Agent(CI工具中实际执行的机器)上执行这些命令,确认没有问题再进行下一步。
2.1 拉取代码
git clone -b %branch% --single-branch %url% %local%
- %url%:带有用户名和密码的git服务器地址,如 https://marketing.xa%40grapecity.com:********@gitee.com/GrapeCity/lowcode-workflow-course-demo.git,用户名中的@需要替换为%40
- %branch%:拉取的分支名,如 dev
- %local%:本地的文件路径,如e:\tools\source
2.2 打包成fgcc
C:\Progra~1\7-zip\7z.exe a %fgcc% %local%\* -tzip
- %fgcc%:执行后续操作的工程文件名,以.fgcc结尾,如 e:\tools\source.fgcc
- %local%:从git拉取的文件路径,这个目录下需要直接包含“DocumentInfo”,如e:\tools\source
2.3 发布到服务器
C:\Progra~1\Forgun~1\Website\designerBin\Forguncy.exe build publish "file|%fgcc%|%server%|%user%|%pwd%|%app%|%port%|%dbreset%|%https%"
- %fgcc%:执行发布的工程文件名,以.fgcc结尾,如 e:\tools\source.fgcc
- %server%:服务器的机器名或IP地址,如 xa-gcscn-ning
- %user%:服务器上管理员组的用户名,如 administrator
- %pwd%:上述用户的密码,如 123456
- %app%:应用名,如 r_test
- %port%:应用的端口(Linux下每个应用需要使用不同的端口),如 8010
- %dbreset%:false意味着不覆盖数据库(推荐使用外联库开发,这里使用false)
- %https%:false意味着不起用https(启用https前需要提前配置好证书)
特别提示:
- 因为活字格的发布不涉及代码编译,所以在执行命令行时不会做“生成页面之前的检查”,相当于在设计器中勾选【设置】→【常规设置】页面中“跳过生成页面之前的检查”
- 发布到服务器上会有一个加载的时间,具体的时长随应用尺寸的增加而延长,请在发布操作完成后延时1-3分钟后使用该应用
- 如果一台机器上安装有多个版本的活字格设计器,C:\Progra~1\Forgun~1不一定是你正在使用的那个版本,可以通过在命令行中执行 cd C:\Progra~1\Forgun~1 来确认。如果不是的话,请尝试一下C:\Progra~1\Forgun~2、C:\Progra~1\Forgun~3 (在Windows命令行中,Forgun~3是指该文件夹下,名字以Forgun开头的第三个子文件夹)
3. 定时执行
如果您只需要做最简单也是最有效的每日构建(daily build),每天上班前获取开发团队昨天提交的工程,自动部署到测试服务器上供测试或验证使用的话,甚至可以不引入专门的工具,找一台Windows电脑,在上面安装活字格设计器、Git和7zip即可。具体方法如下:
3.1 编写一个bat文件
参考下面的内容,将参数替换为您的实际项目。
3.2 创建一个计划任务
使用Windows内置的“任务计划程序”创建一个定时任务,每天定时执行上面编写的bat,记得勾选【使用最高权限运行】即可。
3.3 确保执行计划任务的机器不会自动关机
4. 与CI工具集成
不同的CICD工具有不同的配置方法,您可以参考工具的文档,配置从git获取源代码,执行7zip将git获取的文件夹压缩成fgcc文件,再利用活字格设计器程序将其打包发布到服务器。本教程将不展开。