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、查看运行日志
在左下角可以看到运行中的任务,点击“控制台输出”查看日志


浙公网安备 33010602011771号