基于Jenkins 构建keil自动编译环境--keil 自动化编译脚本编写(四)

简要描述

  • 本文要主是展示通过手运运行bat脚本实现自动化版本编译,并给出bat脚本代码。

编写编译脚本

  • 编写prebuild-git.bat用于提取版本信息。
:: Generate build_info.h
echo on
::echo %date:~0,10%-%time:~0,8%
::echo %USERNAME%

echo #define RT1052FW_COMPILE_TIME "%date:~0,10%-%time:~0,8%" >> %cd%\examples\application\app_awtk_demo\prj\easy_arm_rt1052_awtk_mdk\build_info.h
echo #define RT1052FW_COMPILE_BY "%USERNAME%" >> %cd%\examples\application\app_awtk_demo\prj\easy_arm_rt1052_awtk_mdk\build_info.h

::FOR /F "delims=" %%i IN ('svn info ../../ ^| findstr "Rev:"') DO set "Version=%%i"

FOR /F "delims=" %%i IN ('git rev-list HEAD -n 1') DO set "Version=%%i"

::echo Version %Version%

::echo #define RT1052FW_VERSION "1.1.g%Version:~0,6%"  >> build_info.h
echo #define RT1052FW_VERSION "1.1.g%Version%"  >> %cd%\examples\application\app_awtk_demo\prj\easy_arm_rt1052_awtk_mdk\build_info.h


  • 最终生成的版本信息如下所示:
#define RT1052FW_COMPILE_TIME "2020/12/30-19:25:12" 
#define RT1052FW_COMPILE_BY "Administrator" 
#define RT1052FW_VERSION "1.1.g64ba914a9a6ee5a4b9539eb5ea09b5780d417e4c"
  • 编写keil_compile.bat用于编译keil工程及自动化打包版本包。
@echo off
set UV=D:\Keil_v5\UV4\UV4.exe
set UV_PRO_PATH=%cd%\projects\easy_arm_rt1052_debug_mdk\easy_arm_rt1052.uvprojx
echo  UV_PRO_PATH=%UV_PRO_PATH%

git pull
call prebuild-git.bat
::svn up
::call prebuild-svn.bat
echo Init building ... 
echo .>build_log.txt
%UV% -j0 -r %UV_PRO_PATH% -o %cd%\build_log.txt
type build_log.txt


set zip_cmd=%cd%\tools\rar.exe 
FOR /F "delims=" %%i IN ('git rev-list HEAD -n 1') DO set "Version=MD11-1.1.g%%i"

set zip_file=%cd%\%Version%
mkdir  %zip_file%
set release_bin_path=%cd%\projects\easy_arm_rt1052_debug_mdk\Objects\Release_flexspi_flash\easy_arm_rt1052.hex
set release_doc_path=%cd%\doc\MD11-RT1052-Release-Notes.docx
copy %release_bin_path% %zip_file%
copy %release_doc_path% %zip_file%

%zip_cmd%  a -df -ep  -ag[yyyyMMddhhmmss]  %Version%-.rar %zip_file%\

echo Done.
pause
  • 编译的截图如下所示:
    基于Jenkins 构建keil自动编译环境--keil 自动化编译脚本编写(四)_第1张图片

  • 编译生成的版本包如下所示:
    基于Jenkins 构建keil自动编译环境--keil 自动化编译脚本编写(四)_第2张图片

总结

  • 为什么要使用genkins 构建keil自动化编译环境
    对自已而言,使用genkins做版本发布的效率提高,减少开发者所需要耗费的精力,当出现bug时,可以使用之前的版本镜像,进行回退,定位程序问题。虽然不一定是在做正确的事,但是可以保证自已是在用正确的方式做事。使用自动化脚本自动提取版本信息,编译时间,编译版本的机器号,版本与代码一一对应,版本信息不会混乱,降低版本发布人员的门槛,减少搭建编译环境所需要的时间。很多单片机工程师没有纯软件开发的经验,没有持续性集成的概念,不一定能理解genkins的妙用。坚持任务只做一次的开发者,才是真正高效的开发者。

你可能感兴趣的:(02--Jenkins,Keil,自动化编译)