本帖最后由 willning 于 2023-11-8 17:59 编辑
持续集成在敏捷项目管理中的地位我不用多说,那么使用活字格开发时该如何利用命令行实现CI/CD持续集成持续发布所需的拉取、打包、发布操作,定时或一键完成将git服务器上的工程发布到服务器呢?
1. 环境准备
使用命令行完成工程拉取,除了活字格设计器和工程用到的所有插件,还需要用到git和压缩工具(这里推荐免费的7zip)
下载后,按照界面提示安装到默认路径即可。
重要提示:V9.0或更新版本的设计器中不会向git推送插件,这点和在编码开发中使用商业控件类似,在CI/CD建设完成后,如果开发团队在工程中引入新的插件,需要手动在打包环境中安装同版本插件,以免出错。你可以在【文件】→【插件管理】菜单下的“当前工程中已使用”选项卡,了解当前工程中使用到的插件信息。您也可以在开发环境中打开协同工程,将其另存为fgcc工程文件,然后将这个文件拷贝到需要安装插件的机器上,使用设计器打开该工程文件即可自动完成插件安装。
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:\ziptool.exe %local% %fgcc%
- %fgcc%:执行后续操作的工程文件名,以.fgcc结尾,如 e:\tools\source.fgcc
- %local%:从git拉取的文件路径,这个目录下需要直接包含“DocumentInfo”,如e:\tools\source
- 不要将fgcc设置到local目录下,否则会出错
执行前需要将ziptool.exe从下面的压缩包中解压缩,然后放到C盘根目录下。
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文件
参考下面的内容,将参数替换为您的实际项目。- SET url=https://marketing.xa%40grapecity.com:************@gitee.com/GrapeCity/lowcode-workflow-course-demo.git
- SET branch=dev
- SET local=e:\tools\source
- SET fgcc=e:\tools\source.fgcc
- SET server=xa-gcscn-ning
- SET port=8010
- SET app=r_test
- SET user=administrator
- SET pwd=123456
- SET dbreset=false
- SET https=false
- DEL %fgcc% /F /Q
- RD %local% /S /Q
- git clone -b %branch% --single-branch %url% %local%
- <span style="background-color: rgb(255, 255, 255);">C:\ziptool.exe %local% %fgcc%</span>
- COPY %fgcc% %fgcc%.%date:~0,4%%date:~5,2%%date:~8,2%%time:~0,2%%time:~3,2%%time:~6,2%
- C:\Progra~1\Forgun~1\Website\designerBin\Forguncy.exe build publish "file|%fgcc%|%server%|%user%|%pwd%|%app%|%port%|%dbreset%|%https%"
复制代码
3.2 创建一个计划任务
使用Windows内置的“任务计划程序”创建一个定时任务,每天定时执行上面编写的bat,记得勾选【使用最高权限运行】即可。
3.3 确保执行计划任务的机器不会自动关机
4. 与CI工具集成
TeamCity持续集成:如何实现数据库和应用的自动化发布与升级
5. 扩展阅读
如何创建、修改并发布外联库的表结构和内置数据?
|