Commit b23235c2 by chengfengpiaopiao

jenkins 加固保

parent 48271b90
......@@ -27,7 +27,7 @@
</value>
</option>
</component>
<component name="ProjectRootManager" version="2" languageLevel="JDK_1_7" default="true" assert-keyword="true" jdk-15="true" project-jdk-name="1.8" project-jdk-type="JavaSDK">
<component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" default="true" project-jdk-name="1.8" project-jdk-type="JavaSDK">
<output url="file://$PROJECT_DIR$/build/classes" />
</component>
<component name="ProjectType">
......
......@@ -2,7 +2,7 @@
<project version="4">
<component name="ProjectModuleManager">
<modules>
<module fileurl="file://$PROJECT_DIR$/DuoBaoJingCai2.iml" filepath="$PROJECT_DIR$/DuoBaoJingCai2.iml" />
<module fileurl="file://$PROJECT_DIR$/DuoBaoJingCai.iml" filepath="$PROJECT_DIR$/DuoBaoJingCai.iml" />
<module fileurl="file://$PROJECT_DIR$/app/app.iml" filepath="$PROJECT_DIR$/app/app.iml" />
<module fileurl="file://$PROJECT_DIR$/multi-image-selector/multi-image-selector.iml" filepath="$PROJECT_DIR$/multi-image-selector/multi-image-selector.iml" />
</modules>
......
......@@ -27,6 +27,7 @@ def getDate() {
}
def createFile(path,is_jenkins){
println(path)
File file = new File(path);
if(!file.exists()){//判断是否待删除目录是否存在
File fileParent = file.getParentFile();
......@@ -140,8 +141,6 @@ android {
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
......@@ -176,12 +175,6 @@ task hello1 << {
println 'hello1'+"app.build.gradle"
}
//执行Shell命令 gradlew -q
task execShell (type:Exec){
executable 'sh'
args "-c", "shell.sh $APP_VERSION $networkType"
}
task startApp(type: Exec){
task ->
workingDir '.'
......@@ -198,50 +191,76 @@ task count << {
4.times { print "$it " }
}
//String cmd = 'explorer .'
//task hello2(){
// println "hello start"
// def cmdResult = cmd.execute().text.trim()
// println cmdResult
// println "hello end"
//}
//执行 gradlew assembleRelease shellTest
def apkPath = "G:Apks/${projectName}" +"/"+
"${projectNameLowerCase}_baseflavor_v${APP_VERSION}${suffixName[networkType]}.apk "
def sdkRoot = "true".equals(IN_COMPONENY)?
"D:/2_android/as_client/sdk/build-tools/25.0.0":
"D:/Android/AndroidSDK/build-tools/25.0.0";
def cmd = "jiagubao-walle.bat "+apkPath+
"G:/Apks/DuoBaoJingCai/v2/${projectNameLowerCase}_v${APP_VERSION}${suffixName[networkType]}_v2.apk "+
"G:/Apks/DuoBaoJingCai/walleBase/${projectNameLowerCase}_v${APP_VERSION}${suffixName[networkType]}.apk "+
sdkRoot
// gradle版本为5.1
//task jiagubao-walle{
// doLast {
// String date = cmd.execute().text.trim().toString() //带返回值
// print date //打印系统日期
// }
//}
/**
* gradlew assembleRelease jiagubao_walle
* 一键实现多渠道打包
*/
def BASE_LOCAL = "G:/Apks/"
def BUILD_TOOLS = "/build-tools/25.0.0"
def SDK_PATH_COMPONENY = "D:/2_android/as_client/sdk"
def SDK_PATH_COMPONENY_BUILDTOOLS = SDK_PATH_COMPONENY+BUILD_TOOLS
def SDK_PATH_HOME = "D:/Android/AndroidSDK"
def SDK_PATH_HOME_BUILDTOOLS = SDK_PATH_HOME+BUILD_TOOLS
def apkName = "${projectNameLowerCase}_baseflavor_v${APP_VERSION}${suffixName[networkType]}" //基础包
def apkBasePath = BASE_LOCAL+projectName+"/"
def apkV2Name = "${projectNameLowerCase}_v${APP_VERSION}${suffixName[networkType]}_v2" //v2包(已注销)
def apkV2Path = BASE_LOCAL+projectName+"/"+"v2/"
def apkWallleName = "${projectNameLowerCase}_v${APP_VERSION}${suffixName[networkType]}" //walle基础包(已注销)
def apkWallePath = BASE_LOCAL+projectName+"/"+"walleBase/"
def walleChalles = BASE_LOCAL+projectName+"/"+"walleChalles" //多渠道打包后的apks所在目录(已注销)
def currentSdkBuildToolsPath = "true".equals(IN_COMPONENY)? SDK_PATH_COMPONENY_BUILDTOOLS: SDK_PATH_HOME_BUILDTOOLS //当前SDK/build.tools路径
def utilsPath = BASE_LOCAL+projectName+"/tools/" //需要使用的工具
def scriptName = "jiagubao-walle.bat" //脚本名称
def cmdParams = scriptName+" "+
apkName+" "+
apkBasePath+" "+
apkV2Name+" "+
apkV2Path+" "+
apkWallleName+" "+
apkWallePath+" "+
currentSdkBuildToolsPath+" "+
utilsPath
//gradlew assembleRelease jiagubao_walle
task jiagubao_walle(dependsOn: 'cleanFile') << {
String date = cmd.execute().text.trim().toString() //带返回值
String date = cmdParams.execute().text.trim().toString() //带返回值
print date
}
task cleanFile << {
println("cleanFile")
createFile("G:/Apks/DuoBaoJingCai/v2/",true);
createFile("G:/Apks/DuoBaoJingCai/walleBase/",true);
createFile("G:/Apks/DuoBaoJingCai/walleChalles",true);
createFile(apkV2Path,true);
createFile(apkWallePath,true);
createFile(walleChalles,true);
}
//Python脚本
def jenkinsJobName="DuoBaoJingCai"
def jenkinsBuild="release"
task uploadpython(type: Exec) {
workingDir './'
commandLine "python","pythondemo.py", "123", "456"
workingDir '../'
commandLine "python","pythondemo.py", "$jenkinsJobName", "$jenkinsBuild"
}
//CMD控制台
//String cmd2 = 'explorer .'
//task hello2(){
// println "hello start"
// def cmdResult = cmd2.execute().text.trim()
// println cmdResult
// println "hello end"
//}
//Shell脚本
/**
* explorer .
* sh shell.sh DuoBaoJingCai release
* F:\Tool\SSH\Git\Git\bin\sh.exe G:\Product\Android\DuoBaoJingCai\shell.sh DuoBaoJingCai release
*/
task execShell (type:Exec){
executable 'sh'
args "-c", "../shell.sh $APP_VERSION $networkType"
}
"Hello begaining..........."+jiagubao-walle.bat
param[0] = jiagubao-walle.bat
param[1] = G:Apks/DuoBaoJingCai/duobaojingcai_baseflavor_v2.0.0_release.apk
param[2] = G:/Apks/DuoBaoJingCai/v2/duobaojingcai_v2.0.0_release_v2.apk
param[3] = G:/Apks/DuoBaoJingCai/walleBase/duobaojingcai_v2.0.0_release.apk
param[4] = D:/2_android/as_client/sdk/build-tools/25.0.0
"SDK路径 " D:/2_android/as_client/sdk/build-tools/25.0.0
"当前releaseAPK路径 " G:Apks/DuoBaoJingCai/duobaojingcai_baseflavor_v2.0.0_release.apk
"apk使用v2签名后的apk路径 " G:/Apks/DuoBaoJingCai/v2/duobaojingcai_v2.0.0_release_v2.apk
"walle基础包路?" G:/Apks/DuoBaoJingCai/walleBase/duobaojingcai_v2.0.0_release.apk
param[0] = "插件名称: "jiagubao-walle.bat
param[1] = "apkName基础包名: " duobaojingcai_baseflavor_v2.0.0_release
param[2] = "apkBasePath基础包所在路? " G:\Apks\DuoBaoJingCai\
param[3] = "apkV2Name签名后的包名: " duobaojingcai_v2.0.0_release_v2
param[4] = "apkV2Path签名后的包所在路? " G:\Apks\DuoBaoJingCai\v2\
param[5] = "apkWallleName多渠道基础包名: " duobaojingcai_v2.0.0_release
param[6] = "apkWallePath多渠道打包输出位? " G:\Apks\DuoBaoJingCai\walleBase\
param[7] = "currentSdkBuildToolsPath当前环境下的build-tools所在路径和使用版本: " D:\Android\AndroidSDK\build-tools\25.0.0
param[8] = "utilsPath工具路径: " G:\Apks\DuoBaoJingCai\tools\
加固包工具路径: G:\Apks\DuoBaoJingCai\tools\jiagubao\jiagu
加固包输入路径:G:\Apks\DuoBaoJingCai\duobaojingcai_baseflavor_v2.0.0_release.apk
加固包输出路径:G:\Apks\DuoBaoJingCai\jiagubao
加固包输出apk路径以及名称?G:\Apks\DuoBaoJingCai\jiagubao\duobaojingcai_baseflavor_v2.0.0_release_200_jiagu.apk
加固包输出apk路径以及名称(改名)?G:\Apks\DuoBaoJingCai\jiagubao\duobaojingcai_baseflavor_v2.0.0_release.apk
......@@ -25,13 +25,13 @@ org.gradle.jvmargs=-XX:MaxPermSize=1024m
?android.useDeprecatedNdk=true
#˾ & ͥ
IN_COMPONENY = true
#\uFFFD\uFFFD\u02FE & \uFFFD\uFFFD\u0365
IN_COMPONENY = false
#Project
PROJECT_NAME = DuoBaoJingCai
#jenkins
#jenkins\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD
APP_VERSION = 2.0.0
IS_JENKINS = false
......
......@@ -3,36 +3,62 @@ rem 获取命令行参数
echo "Hello begaining..........."+%0 > cmdlog.txt
rem echo >> 追加到目录文件 echo > 清除之前写入的日志,并且重新写入
echo param[0] = %0 >> cmdlog.txt
echo param[1] = %1 >> cmdlog.txt
echo param[2] = %2 >> cmdlog.txt
echo param[3] = %3 >> cmdlog.txt
echo param[4] = %4 >> cmdlog.txt
rem variable变量
set apkPath= %1
set apkv2= %2
set walleBaseApk= %3
set sdkRoot= %4
echo "SDK路径 " %sdkRoot% >> cmdlog.txt
echo "当前releaseAPK路径 " %apkPath% >> cmdlog.txt
echo "apk使用v2签名后的apk路径 " %apkv2% >> cmdlog.txt
echo "walle基础包路径 " %walleBaseApk% >> cmdlog.txt
set apkName= %1
set "apkName=%apkName:/=\%"
set apkBasePath= %2
set "apkBasePath=%apkBasePath:/=\%"
set apkV2Name= %3
set "apkV2Name=%apkV2Name:/=\%"
set apkV2Path= %4
set "apkV2Path=%apkV2Path:/=\%"
set apkWallleName= %5
set "apkWallleName=%apkWallleName:/=\%"
set apkWallePath= %6
set "apkWallePath=%apkWallePath:/=\%"
set currentSdkBuildToolsPath= %7
set "currentSdkBuildToolsPath=%currentSdkBuildToolsPath:/=\%"
set utilsPath= %8
set "utilsPath=%utilsPath:/=\%"
rem set step1= cd /d %sdkRoot%
rem set step2= && echo '进入sdk路径...%sdkRoot%' >> cmdlog.txt
rem set step3= && zipalign -c -v 4 %apkPath%
rem set step4= && echo release基础包zipaligin对齐校验检测... >> cmdlog.txt
rem set step5= && zipalign -v 4 %apkPath% %apkv2%
rem set step6= && echo 'release基础包zipaligin对齐校验成功...' >> cmdlog.txt
rem set step7= "apksigner sign --ks G:\Apks\DuoBaoJingCai\tools\duobaojingcai.jks %apkv2% && "
rem set step8="echo 'v2包签名成功生成walle基础包' >> cmdlog.txt"
echo param[0] = "插件名称: "%0 >> cmdlog.txt
echo param[1] = "apkName基础包名: "%apkName% >> cmdlog.txt
echo param[2] = "apkBasePath基础包所在路径: "%apkBasePath% >> cmdlog.txt
echo param[3] = "apkV2Name签名后的包名: "%apkV2Name% >> cmdlog.txt
echo param[4] = "apkV2Path签名后的包所在路径: "%apkV2Path% >> cmdlog.txt
echo param[5] = "apkWallleName多渠道基础包名: "%apkWallleName% >> cmdlog.txt
echo param[6] = "apkWallePath多渠道打包输出位置: "%apkWallePath% >> cmdlog.txt
echo param[7] = "currentSdkBuildToolsPath当前环境下的build-tools所在路径和使用版本: "%currentSdkBuildToolsPath% >> cmdlog.txt
echo param[8] = "utilsPath工具路径: "%utilsPath% >> cmdlog.txt
rem start cmd if exist "G:\Apks\DuoBaoJingCai\v2\duobaojingcai_v2.0.0_release_v2.apk" ( "rd /s /Q G:\Apks\DuoBaoJingCai\v2\duobaojingcai_v2.0.0_release_v2.apk" ) else (echo err)
rem start cmd if exist "G:\Apks\DuoBaoJingCai\walleBase\duobaojingcai_v2.0.0_release.apk" ( "rd /s /Q G:\Apks\DuoBaoJingCai\walleBase\duobaojingcai_v2.0.0_release.apk") else (echo err)
set jiaGuBaoToolPath=%utilsPath%jiagubao\jiagu
set "jiaGuBaoInputPath=%apkBasePath%%apkName%.apk"
set "jiaGuBaoInputPath=%jiaGuBaoInputPath: =%"
set "jiaGuBaoOutputPath=%apkBasePath%jiagubao"
set "jiaGuBaoOutputPath=%jiaGuBaoOutputPath: =%"
start cmd /k "cd /d %sdkRoot% && zipalign -c -v 4 %apkPath% && zipalign -v 4 %apkPath% %apkv2% && apksigner sign --ks G:\Apks\DuoBaoJingCai\tools\duobaojingcai.jks --ks-pass pass:yy10241905 %apkv2% && java -jar G:\Apks\DuoBaoJingCai\tools\CheckAndroidV2Signature.jar %apkv2% && copy G:\Apks\DuoBaoJingCai\v2\duobaojingcai_v2.0.0_release_v2.apk G:\Apks\DuoBaoJingCai\walleBase\ && move G:\Apks\DuoBaoJingCai\walleBase\duobaojingcai_v2.0.0_release_v2.apk G:\Apks\DuoBaoJingCai\walleBase\duobaojingcai_v2.0.0_release.apk && java -jar D:/walle-cli-all.jar batch -f G:\Apks\DuoBaoJingCai\tools\channel %walleBaseApk% G:\Apks\DuoBaoJingCai\walleChalles"
set apkSignBase=%apkBasePath%jiagubao\%apkName%_200_jiagu.apk
set "apkSignBase=%apkSignBase: =%"
set apkSignBaseApkOutputPath=%apkBasePath%jiagubao\%apkName%.apk
set "apkSignBaseApkOutputPath=%apkSignBaseApkOutputPath: =%"
echo 加固包工具路径:%jiaGuBaoToolPath% >> cmdlog.txt
echo 加固包输入路径:%jiaGuBaoInputPath% >> cmdlog.txt
echo 加固包输出路径:%jiaGuBaoOutputPath% >> cmdlog.txt
echo 加固包输出apk路径以及名称: %apkSignBase%>> cmdlog.txt
echo 加固包输出apk路径以及名称(改名): %apkSignBaseApkOutputPath% >> cmdlog.txt
set setp1= cd /d %jiaGuBaoToolPath%
set setp2= java -jar jiagu.jar -login 13574845807 869010486werwer
set step3= java -jar jiagu.jar -jiagu %jiaGuBaoInputPath% %jiaGuBaoOutputPath%
set step4= cd /d %currentSdkBuildToolsPath%
rem set step5= zipalign -c -v 4 %jiaGuBaoOutputPath%\duobaojingcai_baseflavor_v2.0.0_release_200_jiagu.apk
rem set step6= zipalign -v 4 %jiaGuBaoOutputPath%\duobaojingcai_baseflavor_v2.0.0_release_200_jiagu.apk %apkV2Path%
set step7= move %apkSignBase% %apkSignBaseApkOutputPath%
set step8= apksigner sign --ks %utilsPath%duobaojingcai.jks --ks-pass pass:yy10241905 %apkSignBaseApkOutputPath%
set step9= java -jar %utilsPath%CheckAndroidV2Signature.jar %apkSignBaseApkOutputPath%
set step10= java -jar %utilsPath%walle-cli-all.jar batch -f %utilsPath%channel %apkSignBaseApkOutputPath% %apkBasePath%walleChalles
set step11= explorer %apkBasePath%walleChalles
set step12= zipalign -c -v 4 %apkSignBaseApkOutputPath%
start cmd /k "%setp1% && %setp2% && %step3% && %step4% && %step7% && %step8% && %step9% && %step10% && %step11% && %step12%"
rem start cmd /k " zipalign -v 4 %apkPath% %apkv2% && apksigner sign --ks G:\Apks\DuoBaoJingCai\tools\duobaojingcai.jks --ks-pass pass:yy10241905 %apkv2% && java -jar G:\Apks\DuoBaoJingCai\tools\CheckAndroidV2Signature.jar %apkv2% && copy G:\Apks\DuoBaoJingCai\v2\duobaojingcai_v2.0.0_release_v2.apk G:\Apks\DuoBaoJingCai\walleBase\ && move G:\Apks\DuoBaoJingCai\walleBase\duobaojingcai_v2.0.0_release_v2.apk G:\Apks\DuoBaoJingCai\walleBase\duobaojingcai_v2.0.0_release.apk && java -jar D:/walle-cli-all.jar batch -f G:\Apks\DuoBaoJingCai\tools\channel %walleBaseApk% G:\Apks\DuoBaoJingCai\walleChalles"
......@@ -3,5 +3,4 @@ import sys
jenkinsJobName=sys.argv[1]
jenkinsBuild=sys.argv[2]
print jenkinsJobName
print jenkinsBuild
\ No newline at end of file
print("jenkinsJobName = "+ jenkinsJobName + " jenkinsBuild = " + jenkinsBuild)
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment