Quellcode durchsuchen

添加jenkins构建文件

mojunshou vor 7 Monaten
Ursprung
Commit
1236c01774
2 geänderte Dateien mit 80 neuen und 1 gelöschten Zeilen
  1. 1 1
      .gitignore
  2. 79 0
      Jenkinsfile.txt

+ 1 - 1
.gitignore

@@ -10,7 +10,7 @@ library/
 temp/
 local/
 profiles/
-# build/
+build/
 extensions/
 settings/
 preview-template/

+ 79 - 0
Jenkinsfile.txt

@@ -0,0 +1,79 @@
+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
+            }
+        }
+    }
+}