Jenkinsfile 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. pipeline {
  2. agent any
  3. parameters {
  4. choice(name: 'BUILD_TYPE', choices: ['debug', 'release'], description: '选择构建类型')
  5. }
  6. environment {
  7. COCOS_CREATOR_PATH = "C:/ProgramData/cocos/editors/Creator/3.8.6/CocosCreator/CocosCreator.exe"
  8. WORKSPACE = "${env.WORKSPACE}"
  9. SIGN_KEYSTORE = "${WORKSPACE}/key_store/lzfk.jks"
  10. SIGN_ALIAS = "lzfk"
  11. SIGN_PASS = "lzfk888"
  12. KEY_PASS = "lzfk888"
  13. JIAGU_PATH = "${WORKSPACE}/tools/jiagu/jiagu.jar"
  14. CHANNEL_FILE = "${WORKSPACE}/channel.txt"
  15. }
  16. stages {
  17. stage('选择分支') {
  18. steps {
  19. script {
  20. if (params.BUILD_TYPE == 'debug') {
  21. env.GIT_BRANCH = 'dev'
  22. env.BUILD_MODE = 'debug'
  23. } else {
  24. env.GIT_BRANCH = 'master'
  25. env.BUILD_MODE = 'release'
  26. }
  27. }
  28. }
  29. }
  30. stage('拉取代码') {
  31. steps {
  32. checkout([$class: 'GitSCM',
  33. branches: [[name: "*/${env.GIT_BRANCH}"]],
  34. userRemoteConfigs: [[url: 'git@your.git.repo/project.git']]])
  35. }
  36. }
  37. stage('使用 Cocos Creator 构建') {
  38. steps {
  39. sh """
  40. ${COCOS_CREATOR_PATH} --project ${WORKSPACE} \\
  41. --build "platform=android;debug=${params.BUILD_TYPE == 'debug' ? 'true' : 'false'};md5Cache=true"
  42. """
  43. }
  44. }
  45. stage('使用 Gradle 打包') {
  46. steps {
  47. dir('build/android') {
  48. sh "./gradlew assemble${params.BUILD_TYPE.capitalize()}"
  49. }
  50. }
  51. }
  52. stage('加固并多渠道') {
  53. when {
  54. expression { return params.BUILD_TYPE == 'release' }
  55. }
  56. steps {
  57. sh """
  58. java -jar ${JIAGU_PATH} -login your_account your_password
  59. java -jar ${JIAGU_PATH} -importsign ${SIGN_KEYSTORE} ${SIGN_PASS} ${SIGN_ALIAS} ${KEY_PASS}
  60. java -jar ${JIAGU_PATH} -jiagu build/android/proj/gradle/build/outputs/apk/release/app-release.apk \\
  61. ${WORKSPACE}/jiagu_output/ -autosign -automulpkg -pkgparam ${CHANNEL_FILE}
  62. """
  63. }
  64. }
  65. stage('归档 APK') {
  66. steps {
  67. archiveArtifacts artifacts: "**/build/**/*.apk", fingerprint: true
  68. }
  69. }
  70. }
  71. }