77 tags :
88 - ' v*' # 当一个以 'v' 开头的标签被推送到仓库时触发 (例如 v1.0, v2.1.0)
99 workflow_dispatch : # 支持手动触发工作流
10+ inputs :
11+ version_code :
12+ description : ' 版本号 (versionCode),留空则使用 version.properties 中的值'
13+ required : false
14+ type : string
15+ default : ' '
16+ version_name :
17+ description : ' 版本名称 (versionName),留空则使用 version.properties 中的值'
18+ required : false
19+ type : string
20+ default : ' '
1021
1122# 定义一个或多个作业
1223jobs :
@@ -58,10 +69,12 @@ jobs:
5869 # 第6步:构建 Release 版本的 APK
5970 # 运行 Gradle 命令来编译和打包带签名的 APK。
6071 - name : 构建 Release APK
61- # 临时调试,使用 Debug 模式
6272 run : ./gradlew :app:assembleRelease --stacktrace
6373 env :
6474 GRADLE_OPTS : -Xmx8g -Dfile.encoding=UTF-8
75+ # 手动触发时传递版本参数,留空则使用 version.properties 中的值
76+ APP_VERSION_CODE : ${{ github.event.inputs.version_code }}
77+ APP_VERSION_NAME : ${{ github.event.inputs.version_name }}
6578
6679 # 调试步骤(暂时保留,用于确认构建是否生成目录)
6780 - name : 调试:列出构建输出
@@ -72,13 +85,28 @@ jobs:
7285 - name : 生成 appConfig.json
7386 run : ./gradlew :app:printReleaseAppConfig
7487
75- # 第7步:从 build.gradle.kts 获取版本名
76- # 通过脚本从 build.gradle.kts 文件中提取 versionName 。
88+ # 第7步:获取版本信息
89+ # 从 version.properties 文件中读取版本信息,如果有手动输入则优先使用手动输入的值 。
7790 - name : 获取版本名称
7891 id : get_version
7992 run : |
80- VERSION_NAME=$(grep 'versionName =' build.gradle.kts | sed -n 's/.*versionName = \"\(.*\)\".*/\1/p')
93+ # 读取 version.properties 中的值作为默认值
94+ VERSION_NAME=$(grep 'versionName=' version.properties | cut -d'=' -f2)
95+ VERSION_CODE=$(grep 'versionCode=' version.properties | cut -d'=' -f2)
96+
97+ # 如果提供了手动输入的版本名称,则使用手动输入的值
98+ if [ -n "${{ github.event.inputs.version_name }}" ]; then
99+ VERSION_NAME="${{ github.event.inputs.version_name }}"
100+ fi
101+
102+ # 如果提供了手动输入的版本号,则使用手动输入的值
103+ if [ -n "${{ github.event.inputs.version_code }}" ]; then
104+ VERSION_CODE="${{ github.event.inputs.version_code }}"
105+ fi
106+
81107 echo "version=$VERSION_NAME" >> $GITHUB_OUTPUT
108+ echo "version_code=$VERSION_CODE" >> $GITHUB_OUTPUT
109+ echo "::notice::Building with versionName=$VERSION_NAME, versionCode=$VERSION_CODE"
82110
83111 # 第8步:获取 APK 路径
84112 # 从输出目录中找到构建生成的 APK 文件。
0 commit comments