Jenkins任务:创建运行“发布电脑客户端apk”任务-wpos_release

综述:本文将介绍如何在Jenkins上创建运行“发布电脑客户端apk”(jar包)任务,主要包括:“新建Jenkins任务”、“选择构建一个maven项目,输入任务名”、“配置任务”、“运行Jenkins任务”、“查看运行日志”。

正文:

1、新建Jenkins任务

2、选择构建一个maven项目,输入任务名

3、配置任务

(1)源码管理

选择Subversion,Repository URL填写$CURRENT_ReleaseUrlSVNWPos,Credentials选择或添加登录svn的账号密码

Check-out Strategy选择Use 'svn update' as much as posible,with 'svn revert' before update

(2)构建触发器

勾选Build whenever a SNAPSHOT dependency is built

(3)构建环境

不用填

(4)Pre Steps

选择Execute Windows batch command

批处理命令填写

call D:\BXERP\trunk\src\jenkins\wpos_release\wpos_release_preBuildSteps.py

exit 0

wpos_release_preBuildSteps.py主要完成的逻辑:修改版本号、服务器场(有多个场)、pom.xml的版本号、登录页面login.xml的版本号

代码如下:

wpos_release_preBuildSteps.py

# coding=utf-8




import os

# 引用自定义的模块

import sys

sys.path.append('D:/BXERP/trunk/src/jenkins/Common')       #引用的自定义模块不与该python文件在同一目录时,需要指定路径

from bxUtility import printInfo

from bxUtility import cover

from bxUtility import replaceLine

from bxUtility import replace




# 需要从jenkins的环境变量读取的参数:现使用场、版本号

CURRENT_Env = os.getenv("CURRENT_Env")

CURRENT_ReleaseWPosNewVersionCode = os.getenv("CURRENT_ReleaseWPosNewVersionCode")

CURRENT_ReleaseWPosVersionNO = os.getenv("CURRENT_ReleaseWPosVersionNO") # 2.0.0

# 要修改的配置文件

FILE_Constants_Module = 'D:/Jenkins/workspace/wpos_release/src/main/java/wpos/helper/Constants.java'




FILE_Pom_Module = 'D:/Jenkins/workspace/wpos_release/pom.xml'




FILE_login_Module = 'D:/Jenkins/workspace/wpos_release/src/main/resources/ui/login.fxml'




try:

         # 修改Constants的版本号

         ORIGINAL_VersionCodeLine = 'public static final int VersionCode = 1;'

         ORIGINAL_VersionNameLine = 'public static final String VersionName = "1.0.0";'

         # 要修改的使用场

         ORIGINAL_Env = 'public static final String env = "SITaa";'

         # 修改pom的版本号

         ORIGINAL_ReleaseWPosVersionNO = '<version>v1.0.0</version>'

        

         CURRENT_VersionCodeLine = '         public static final int VersionCode = ' + CURRENT_ReleaseWPosNewVersionCode + ';'+'\n'

         CURRENT_VersionNameLine = '       public static final String VersionName ="' + CURRENT_ReleaseWPosVersionNO + '";' + '\n'

         CURRENT_EnvLine = '    public static final String env = "' + CURRENT_Env + '";' + '\n'

         replaceLine(FILE_Constants_Module, ORIGINAL_VersionCodeLine, CURRENT_VersionCodeLine, "utf-8", 1)

         replaceLine(FILE_Constants_Module, ORIGINAL_VersionNameLine, CURRENT_VersionNameLine, "utf-8", 1)

         replaceLine(FILE_Constants_Module, ORIGINAL_Env, CURRENT_EnvLine, "utf-8", 1)

         printInfo('替换' + CURRENT_Env + '场配置文件' + FILE_Constants_Module + '完毕', 0)

        

         CURRENT_ReleaseWPosVersionNOLine = '<version>v' + CURRENT_ReleaseWPosVersionNO + '</version>' + '\n'

         replaceLine(FILE_Pom_Module, ORIGINAL_ReleaseWPosVersionNO, CURRENT_ReleaseWPosVersionNOLine, "utf-8", 1)

         printInfo('替换' + CURRENT_Env + '场配置文件' + FILE_Pom_Module + '完毕', 0)

        

         # 修改login.xml中的版本号

         ORIGINAL_LoginVersionLine = '<Label text="v1.0.0" textAlignment="CENTER" textFill="#bcb5b5" BorderPane.alignment="CENTER">'

         CURRENT_LoginVersionLine = '<Label text="v' + CURRENT_ReleaseWPosVersionNO + '" textAlignment="CENTER" textFill="#bcb5b5" BorderPane.alignment="CENTER">'+'\n'

         replaceLine(FILE_login_Module, ORIGINAL_LoginVersionLine, CURRENT_LoginVersionLine, "utf-8", 1)

         printInfo('替换' + CURRENT_Env + '场配置文件' + FILE_login_Module + '完毕', 0)

        

        

except Exception as e:

         printInfo('出现异常:' + str(e), 1)

else:

         os._exit(0)

(使用到的bxUtility,可以在“工具脚本bxUtility.py”文章查看详细内容)

(5)Build

Root POM填写pom.xml,Goals and options填写clean package -DskipTests

(6)Post Steps

选择Run regardless of build result

选择Execute Windows batch command

批处理命令填写

call D:\BXERP\trunk\src\jenkins\wpos_release\wpos_release_moveApk.py

exit 0

wpos_release_moveApk.py主要完成的逻辑:将Jenkins构建出来的jar包文件备份到指定目录

代码如下:

wpos_release_moveApk.py
 # coding=utf-8




import shutil

import os

import time

# 引用自定义的模块

import sys

sys.path.append('D:/BXERP/trunk/src/jenkins/Common')       #引用的自定义模块不与该python文件在同一目录时,需要指定路径

from bxUtility import printInfo




# 需要从jenkins的环境变量读取的参数:文件夹路径、现使用场

CURRENT_ReleaseNO = os.getenv("CURRENT_ReleaseNO")  #示例:CURRENT_ReleaseNO=00004_v1_0_r691_r691

CURRENT_Env = os.getenv("CURRENT_Env")

CURRENT_ReleaseWPosVersionNO = os.getenv("CURRENT_ReleaseWPosVersionNO")

# 此次release放置文件的总路径

CURRENT_ReleasePath = 'D:/Release/' + CURRENT_ReleaseNO

# apk放置的文件夹路径

CURRENT_ApkBackupPath = CURRENT_ReleasePath + '/backup'







def apkBackup():

         """

         备份wpos

         """

         print ('正在复制移动wpos文件至指定路径...');

         shutil.copy('D:/Jenkins/workspace/wpos_release/target/wpos-v'+ CURRENT_ReleaseWPosVersionNO +'.jar', CURRENT_ApkBackupPath)

         shutil.copytree('D:/Jenkins/workspace/wpos_release/target/lib', CURRENT_ApkBackupPath + '/lib')

         printInfo('备份wpos成功!', 0)







try:

         if os.path.exists(CURRENT_ReleasePath):

                   Files = os.listdir(CURRENT_ApkBackupPath)

                   for i in range(len(Files)):

                            Files[i] = os.path.splitext(Files[i])[1]

                   if '.jar' in Files:

                            printInfo('wpos,无需再次备份。', 0)

                   else:

                            apkBackup();

         else:

                   os.makedirs(CURRENT_ApkBackupPath)

                   apkBackup();

except Exception as e:

         printInfo('出现异常:' + str(e), 1)

else:

         os._exit(0)

(7)保存,在主页面可以看到刚创建出来的任务

4、运行Jenkins任务

点击Build Now按钮,接口开始运行任务

5、查看运行日志

在左下角可以看到运行中的任务,点击“控制台输出”查看日志

posted @ 2022-08-29 20:08  Boxin-kim  阅读(70)  评论(0)    收藏  举报
Web Analytics
Guang Zhou Boxin