You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
122 lines
4.6 KiB
122 lines
4.6 KiB
1 month ago
|
import groovy.json.JsonSlurperClassic
|
||
|
pipeline {
|
||
|
agent{
|
||
|
label 'superMac'
|
||
|
// customWorkspace 'D:/Jenkins/workspace/test'
|
||
|
}
|
||
|
|
||
|
environment {
|
||
|
u2china_share_proj = '${WORKSPACE}/u2china_share_proj'
|
||
|
//serverPath = '${WORKSPACE}/u2china_svr_proj'
|
||
|
branch = "${BranchName}" // trunk , branch
|
||
|
svn = "/usr/local/bin/svn"
|
||
|
unityApp="/Applications/Unity/Hub/Editor/2019.4.40f1/Unity.app/Contents/MacOS/Unity"
|
||
|
|
||
|
u2china_cli_proj = "${WORKSPACE}/u2china_cli_proj"
|
||
|
u2china_pro_dir= "${u2china_cli_proj}/arpg"
|
||
|
build_graph="Assets/ZXToolkit/AssetGraph/Graph/BuildGraph.asset"
|
||
|
output_dir="${WORKSPACE}/outputBuild/android"
|
||
|
log_dir="${WORKSPACE}/log/android"
|
||
|
|
||
|
disableLog="false"
|
||
|
lang="en"
|
||
|
gameIP="123.60.58.245"
|
||
|
maintenanceIP="123.60.58.245"
|
||
|
versionIP="123.60.58.245"
|
||
|
buildmode = "apk"
|
||
|
publishChannel = "none"
|
||
|
}
|
||
|
|
||
|
stages {
|
||
|
stage("svn share_proj"){
|
||
|
steps{
|
||
|
sh label: '', script: """
|
||
|
chmod 774 ${WORKSPACE}/CheckoutShare.py
|
||
|
python3 ${WORKSPACE}/CheckoutShare.py ${env.branch} "share"
|
||
|
"""
|
||
|
}
|
||
|
}
|
||
|
stage("svn client_proj"){
|
||
|
steps{
|
||
|
sh label: '', script: """
|
||
|
chmod 774 ${WORKSPACE}/CheckoutShare.py
|
||
|
python3 ${WORKSPACE}/CheckoutShare.py ${env.branch} "client"
|
||
|
"""
|
||
|
}
|
||
|
}
|
||
|
stage("Set AppVersion"){
|
||
|
steps{
|
||
|
sh label: '', script: """
|
||
|
chmod 774 ${env.u2china_share_proj}/MacBuild/modifyVersion.py
|
||
|
python3 ${env.u2china_share_proj}/MacBuild/modifyVersion.py autoCommit
|
||
|
"""
|
||
|
}
|
||
|
}
|
||
|
stage("Set BuildParams"){
|
||
|
steps{
|
||
|
sh label: '', script: """
|
||
|
cd ${u2china_cli_proj}
|
||
|
python3 ${u2china_cli_proj}/../u2china_share_proj/MacBuild/build_generate_common.py debug=$OpenDebug version="-1" disableLog=$disableLog versionIP="${versionIP}" mode=$buildmode publishChannel=$publishChannel gameIP=$gameIP maintenanceIP=$maintenanceIP lang=$lang
|
||
|
"""
|
||
|
}
|
||
|
}
|
||
|
stage("BuildAPK"){
|
||
|
|
||
|
steps{
|
||
|
script {
|
||
|
json_file = "${env.u2china_pro_dir}/Assets/buildVersion.json"
|
||
|
json_contents = readFile json_file
|
||
|
def dataObject = new JsonSlurperClassic().parseText(json_contents)
|
||
|
appVersion = "${dataObject.appVersion}"
|
||
|
println "${dataObject.appVersion}"
|
||
|
buid_name="u2china_${appVersion}"
|
||
|
build_file_name="${buid_name}.apk"
|
||
|
outpath="${output_dir}/${build_file_name}"
|
||
|
}
|
||
|
sh label: '', script:"""
|
||
|
${unityApp} -quit -batchmode -projectPath ${u2china_pro_dir} -logFile ${log_dir}/${buid_name}.log -executeMethod XAsset.Build.AssetBuildScript.RunBuild version=${appVersion} outpath=${outpath} development=${development} versionIP=${versionIP} mode=${buildmode} publishChannel=${publishChannel} graph=${build_graph} target=${targetPlatform} rebuildBundle=${BuildAssetbundle}
|
||
|
"""
|
||
|
}
|
||
|
}
|
||
|
stage("copy apk"){
|
||
|
steps{
|
||
|
sh label: '', script: """
|
||
|
if [ ! -f ${outpath} ]; then
|
||
|
echo "文件不存在"
|
||
|
exit 1
|
||
|
fi
|
||
|
cp ${outpath} /Volumes/Disk2/download/DownloadAPk/${build_file_name}
|
||
|
"""
|
||
|
}
|
||
|
}
|
||
|
|
||
|
|
||
|
}
|
||
|
post
|
||
|
{
|
||
|
success
|
||
|
{
|
||
|
wrap([$class: 'BuildUser']) {
|
||
|
script {
|
||
|
buildUser = "${env.BUILD_USER}"
|
||
|
}
|
||
|
buildName "#${env.BUILD_NUMBER} ---> ${appVersion}"
|
||
|
buildDescription "<a href=\"http://10.0.22.250:8082/DownloadAPk/${build_file_name}\">点击下载: u2china_${appVersion}</a>"
|
||
|
|
||
|
}
|
||
|
sh label: '', script: """sh ${env.u2china_share_proj}/JenkinsFile/feishu_buildPackage.sh ${buildUser} ${appVersion} SUCCESS ${env.JOB_NAME} apk"""
|
||
|
|
||
|
}
|
||
|
failure
|
||
|
{
|
||
|
wrap([$class: 'BuildUser']) {
|
||
|
script {
|
||
|
buildUser = "${env.BUILD_USER}"
|
||
|
}
|
||
|
}
|
||
|
sh label: '', script: """sh ${env.u2china_share_proj}/JenkinsFile/feishu_buildPackage.sh ${buildUser} ${appVersion} FAILURE ${env.JOB_NAME} apk"""
|
||
|
echo "FAILURE"
|
||
|
}
|
||
|
}
|
||
|
}
|