pipeline { agent any parameters { choice(name: 'BUILD_TYPE', choices: ['debug', 'release'], description: '选择构建类型') } environment { COCOS_CREATOR_PATH = "C:/ProgramData/cocos/editors/Creator/3.8.6/CocosCreator/CocosCreator.exe" WORKSPACE = "${env.WORKSPACE}" SIGN_KEYSTORE = "${WORKSPACE}/key_store/lzfk.jks" SIGN_ALIAS = "lzfk" SIGN_PASS = "lzfk888" KEY_PASS = "lzfk888" JIAGU_PATH = "${WORKSPACE}/tools/jiagu/jiagu.jar" CHANNEL_FILE = "${WORKSPACE}/channel.txt" } stages { stage('选择分支') { steps { script { if (params.BUILD_TYPE == 'debug') { env.GIT_BRANCH = 'dev' env.BUILD_MODE = 'debug' } else { env.GIT_BRANCH = 'master' env.BUILD_MODE = 'release' } } } } stage('拉取代码') { steps { checkout([$class: 'GitSCM', branches: [[name: "*/${env.GIT_BRANCH}"]], userRemoteConfigs: [[url: 'git@your.git.repo/project.git']]]) } } stage('使用 Cocos Creator 构建') { steps { sh """ ${COCOS_CREATOR_PATH} --project ${WORKSPACE} \\ --build "platform=android;debug=${params.BUILD_TYPE == 'debug' ? 'true' : 'false'};md5Cache=true" """ } } stage('使用 Gradle 打包') { steps { dir('build/android') { sh "./gradlew assemble${params.BUILD_TYPE.capitalize()}" } } } stage('加固并多渠道') { when { expression { return params.BUILD_TYPE == 'release' } } steps { sh """ java -jar ${JIAGU_PATH} -login your_account your_password java -jar ${JIAGU_PATH} -importsign ${SIGN_KEYSTORE} ${SIGN_PASS} ${SIGN_ALIAS} ${KEY_PASS} java -jar ${JIAGU_PATH} -jiagu build/android/proj/gradle/build/outputs/apk/release/app-release.apk \\ ${WORKSPACE}/jiagu_output/ -autosign -automulpkg -pkgparam ${CHANNEL_FILE} """ } } stage('归档 APK') { steps { archiveArtifacts artifacts: "**/build/**/*.apk", fingerprint: true } } } }