PIE-SAR软件自动化编译与发布

本文描述了一个自动化编译流程,包括在SVN版本控制下创建的批处理脚本,用于定期编译VisualStudio2015解决方案,进行中文翻译,并将生成的库和配置文件复制到共享目录。此外,还提到了使用`devenv.com`命令行工具和Windows任务计划程序来定期执行这些脚本,以实现无人值守的编译和版本发布。
摘要由CSDN通过智能技术生成

1.背景

SVN版本控制下多人协调编写代码,会经常性的提交新功能,修改完善已有功能。产品经理、测试人员需定期回归测试,确保禅道Bug已经修复,这就需要经常性地打包软件。为了节省编译时间,也方便产品经理可随时去取最新的版本,参考网上的材料,总结自动化编译的流程。

2.目标

无需人工参与,定期自动编译工程,翻译文件,并将生成的库,配置文件复制到指定共享存储目录。

3.自动化脚本

3.1自动化编译脚本

AutomaticCompile_v73.bat

REM ************************************************************************************************
REM * Script to compile the solutions of Viusal Studio 2015                                                    *
REM * Created by: IvanLJF                                                                    	   *
REM * Created 2023.04.16                                                                           *
REM ************************************************************************************************
 
REM STEP 1: set environment variables:
REM ************************************************************************************************
SET VS2015Compiler="%VS140COMNTOOLS%..\..\Common7\IDE\devenv.com"
REM ************************************************************************************************
 
 
REM STEP 2: set compile log
REM ************************************************************************************************
SET CompileLogName="%~dp0PIE-SAR_v73_CompileResults.log"
ECHO [%DATE% %Time%] Start compile sequence >%CompileLogName%
ECHO Used compile configuration is %buildAnyCPU% >>%CompileLogName%
REM ************************************************************************************************
 
 
REM STEP 3: Start compile
REM ************************************************************************************************
SET SolutionFileName="%~dp0PIE-SAR_v7.x_All.sln"
%VS2015Compiler% %SolutionFileName% /build "Release|x64" /Out %CompileLogName%
IF NOT %errorlevel% == 0 ECHO %SolutionFileName% failed!   Error: %errorlevel% >>%CompileLogName%
IF %errorlevel% == 0 ECHO %SolutionFileName% compiled successful >>%CompileLogName%
REM ************************************************************************************************
 
 
REM STEP 4: If compile failed stop processing:
REM ************************************************************************************************
IF NOT %errorlevel% == 0 PAUSE
 
ECHO [%DATE% %Time%] Finished compile sequence >>%CompileLogName%
REM ************************************************************************************************


REM STEP 5:  language files

call language.bat
REM ************************************************************************************************

REM STEP 6: Release Daily Version Management

call DailyVersionManagement_v73.bat
REM ************************************************************************************************

3.2 自动中文翻译(ts–>qm)

Language.bat

REM ************************************************************************************************
REM * Script to translate ts to qm                                                                 *
REM * Created by: IvanLJF                                                                    	   *
REM * Created 2023.04.16                                                                           *
REM ************************************************************************************************

@echo off
SETLOCAL ENABLEDELAYEDEXPANSION 

set srcdir=%PIEV4_SRC%Language
set dstdir=%PIEV4_OUT_DIR%\Language

if not exist %dstdir% ( md %dstdir% )
for /f "delims=" %%i in ( 'dir /ad/b/s %srcdir%' ) do ( 
	md %dstdir%\%%~ni 
)

cd /d %srcdir%

echo srcdir:%srcdir%

echo dstdir:%dstdir%

echo current path:%cd%

for /r %%i in (*.ts) do if exist %%i (   
    set srcfile=%%i    
    echo src file is: !srcfile!
    set dstfile=!srcfile:%srcdir%=%dstdir%!
    set dstfile=!dstfile:.ts=.qm!
    echo dst file is: !dstfile!
    lrelease !srcfile! -qm !dstfile!
)

REM: pause

3.3 每日版本发布

DailyVersionManagement_v73.bat

REM ************************************************************************************************
REM * Script to release pie-sar 7.3 software to 193                                                *
REM * Created by: IvanLJF                                                                    	   *
REM * Created 2023.04.16                                                                           *
REM ************************************************************************************************

:: /xf 指定不执行复制操作的文件类型
:: /xd 表示排除指定的文件夹


@echo off
SETLOCAL ENABLEDELAYEDEXPANSION 



set srcdir="D:\Code\PIE6.0_vs2015\PIE_CPLUS\src\OutDir"
set dstdir="\\172.16.20.193\xjsf\PIE-SAR7.3_DailyVersion"

::使用共享文件夹
net use \\172.16.20.193\xjsf xjsf /user:xjsf

::创建每日文件夹
set ymd=%date:~,4%%date:~5,2%%date:~8,2%
set dstdir=%dstdir%\%ymd%
MD %dstdir%

::拷贝
robocopy %srcdir%\config %dstdir%\config *.* /e /s /xo

robocopy %srcdir%\data %dstdir%\data *.* /e /s /xo /xd AtmCor_LUT Cali definitions

robocopy %srcdir%\Fonts %dstdir%\Fonts *.* /e /s /xo

robocopy %srcdir%\Language %dstdir%\Language *.* /e /s /xo

robocopy %srcdir%\Release_x64 %dstdir%\Release_x64 *.* /e /s /xo /xf *.lib *.exp *.ilk *.iobj *.ipdb *.pdb

robocopy %srcdir%\Release_x64_MTInSAR %dstdir%\Release_x64_MTInSAR *.* /e /s /xo /xf *.lib *.exp *.ilk *.iobj *.ipdb *.pdb

robocopy %srcdir%\res %dstdir%\res *.* /e /s /xo 

4 devenv.com用法

可用的命令行开关:

【/Build 】使用指定的解决方案配置生成解决方案或项目。例如“Debug”。如果可能存在多个平台,则配置名称必须用引号括起来并且包含平台名称。例如“Debug|Win32”。

【/Clean】删除生成结果。

【/Command 】启动 IDE 并执行该命令。

【/Deploy 】生成并部署指定的生成配置。

【/Edit 】在此应用程序的运行实例中打开指定文件。如果没有正在运行的实例,则启动一个具有简化窗口布局的新实例。

【/LCID】设置 IDE 中用于用户界面的默认语言。

【/Log】将 IDE 活动记录到指定的文件以用于故障排除。

【/NoVSIP】禁用用于 VSIP 测试的 VSIP 开发人员许可证密钥。

【/Out】将生成日志追加到指定的文件中。

【/Project 】指定生成、清理或部署的项目。必须和 /Build、/Rebuild、/Clean 或 /Deploy 一起使用。

【/ProjectConfig】重写解决方案配置中指定的项目配置。例如“Debug”。如果可能存在多个平台,则配置名称必须用引号括起来 ,并包含平台名称。例如“Debug|Win32”。 必须和 /Project 一起使用。

【/Rebuild 】先清理,然后使用指定配置生成解决方案或项目。

【/ResetAddin】移除与特定外接程序关联的命令和命令用户界面。

【/ResetSettings】恢复 IDE 的默认设置,还可以重置为指定的 VSSettings 文件。

【/ResetSkipPkgs】清除所有添加到 VSPackages 的 SkipLoading 标记。

【/Run】编译并运行指定的解决方案。

【/RunExit】编译并运行指定的解决方案然后关闭 IDE。

【/SafeMode】以安全模式启动 IDE,加载最少数量的窗口。

【/Upgrade 】升级项目或解决方案以及其中的所有项目。并相应地创建这些文件的备份。有关备份过程的更多信息,请参见“Visual Studio 转换向导”上的帮助。

5.定期执行

使用windows的任务计划程序。定期执行bat脚本。【开始】–【任务计划程序】
在这里插入图片描述

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
SQLAlchemy 是一个 SQL 工具包和对象关系映射(ORM)库,用于 Python 编程语言。它提供了一个高级的 SQL 工具和对象关系映射工具,允许开发者以 Python 类和对象的形式操作数据库,而无需编写大量的 SQL 语句。SQLAlchemy 建立在 DBAPI 之上,支持多种数据库后端,如 SQLite, MySQL, PostgreSQL 等。 SQLAlchemy 的核心功能: 对象关系映射(ORM): SQLAlchemy 允许开发者使用 Python 类来表示数据库表,使用类的实例表示表中的行。 开发者可以定义类之间的关系(如一对多、多对多),SQLAlchemy 会自动处理这些关系在数据库中的映射。 通过 ORM,开发者可以像操作 Python 对象一样操作数据库,这大大简化了数据库操作的复杂性。 表达式语言: SQLAlchemy 提供了一个丰富的 SQL 表达式语言,允许开发者以 Python 表达式的方式编写复杂的 SQL 查询。 表达式语言提供了对 SQL 语句的灵活控制,同时保持了代码的可读性和可维护性。 数据库引擎和连接池: SQLAlchemy 支持多种数据库后端,并且为每种后端提供了对应的数据库引擎。 它还提供了连接池管理功能,以优化数据库连接的创建、使用和释放。 会话管理: SQLAlchemy 使用会话(Session)来管理对象的持久化状态。 会话提供了一个工作单元(unit of work)和身份映射(identity map)的概念,使得对象的状态管理和查询更加高效。 事件系统: SQLAlchemy 提供了一个事件系统,允许开发者在 ORM 的各个生命周期阶段插入自定义的钩子函数。 这使得开发者可以在对象加载、修改、删除等操作时执行额外的逻辑。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

IvanLJF

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值