11name : Build APK
22
33on :
4- push :
5- branches :
6- - master
7- workflow_dispatch :
8-
9- concurrency :
10- group : build
11- cancel-in-progress : true
4+ workflow_call :
125
136jobs :
147 build :
158 runs-on : ubuntu-latest
16- timeout-minutes : 30
9+ timeout-minutes : 60
1710
1811 steps :
1912 - name : Checkout source code
3932
4033 - uses : actions/setup-java@v4
4134 with :
42- distribution : microsoft
35+ distribution : temurin
4336 java-version : 17
4437
4538 - name : Setup Gradle
5548 run : |
5649 cd android
5750 echo "$SIGN_KEYSTORE_BASE64" | base64 -d > "./app/$KEYSTORE_PATH"
58- ./gradlew app:packageRelease --daemon -- build-cache --parallel --configure-on-demand --max-workers=1024 \
59- -D org.gradle.jvmargs="-Xmx12g -Xms12g -XX:MetaspaceSize=12g -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 -XX:+UseG1GC"
51+ ./gradlew app:packageRelease --build-cache --parallel --configure-on-demand --max-workers=$(nproc) \
52+ -D org.gradle.jvmargs="-Xmx4g -Xms1g -XX:MetaspaceSize=1g -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 -XX:+UseG1GC"
6053 env :
6154 KEYSTORE_PATH : ' keystore.jks'
6255 KEYSTORE_PASSWORD : ${{ secrets.SIGN_KEYSTORE_PASSWORD }}
@@ -77,143 +70,3 @@ jobs:
7770 name : outputs
7871 path : android/app/build/outputs
7972 retention-days : 0
80-
81- publish :
82- runs-on : ubuntu-latest
83- environment : beta
84- needs :
85- - build
86-
87- steps :
88- - uses : actions/download-artifact@v4
89- with :
90- name : outputs
91- path : ${{ github.workspace }}/outputs/
92-
93- - name : Extract Version Info
94- id : version-info
95- shell : bash
96- run : |
97- echo "APP_VERSION_CODE=$(cat $GITHUB_WORKSPACE/outputs/version-code)" >> "$GITHUB_OUTPUT"
98- echo "APP_VERSION_NAME=$(cat $GITHUB_WORKSPACE/outputs/version-name)" >> "$GITHUB_OUTPUT"
99- {
100- echo "CHANGELOG<<BSEOF"
101- cat $GITHUB_WORKSPACE/outputs/changelog
102- echo "BSEOF"
103- } >> "$GITHUB_OUTPUT"
104-
105- - name : Get Upload Params
106- id : upload-params
107- run : |
108- RESPONSE=$(curl --location --request POST 'https://fzuhelper.west2.online/api/v2/url/upload-params' \
109- --form "password=$ANDROID_UPDATE_PWD")
110- echo "UPYUN_POLICY=$(echo $RESPONSE | jq -r .policy)" >> "$GITHUB_OUTPUT"
111- echo "UPYUN_AUTH=$(echo $RESPONSE | jq -r .authorization)" >> "$GITHUB_OUTPUT"
112- env :
113- ANDROID_UPDATE_PWD : ${{ secrets.ANDROID_UPDATE_PWD }}
114-
115- - name : Upload to UPYUN
116- id : upload-apk
117- run : |
118- cd $GITHUB_WORKSPACE/outputs/apk/release
119- mv app-arm64-v8a-release.apk $APK_FILENAME
120- RESPONSE=$(curl -X POST "https://v0.api.upyun.com/fzuhelper-filedown" \
121- -F "file=@$APK_FILENAME" \
122- -F "policy=$UPYUN_POLICY" \
123- -F "authorization=$UPYUN_AUTH")
124-
125- DOWNLOAD_URL="https://download.w2fzu.com$(echo $RESPONSE | jq -r .url)"
126-
127- echo "DOWNLOAD_URL=$DOWNLOAD_URL" >> "$GITHUB_OUTPUT"
128- env :
129- APK_FILENAME : FzuHelper_${{ steps.version-info.outputs.APP_VERSION_NAME }}(${{ steps.version-info.outputs.APP_VERSION_CODE }}).apk
130- UPYUN_POLICY : ${{ steps.upload-params.outputs.UPYUN_POLICY }}
131- UPYUN_AUTH : ${{ steps.upload-params.outputs.UPYUN_AUTH }}
132-
133- - name : Submit Version Info
134- run : |
135- FEATURE="$CHANGELOG"$'\n\n'"此版本为新架构测试版,请提前加入内测群 1020036141 了解详情"
136- curl --location --request POST 'https://fzuhelper.west2.online/api/v2/url/upload' \
137- --form "version=$APP_VERSION_NAME" \
138- --form "code=$APP_VERSION_CODE" \
139- --form "url=$DOWNLOAD_URL" \
140- --form "feature=$FEATURE" \
141- --form "type=$CHANNEL" \
142- --form "password=$ANDROID_UPDATE_PWD" \
143- --form "force=$FORCE"
144- env :
145- CHANNEL : beta
146- FORCE : true
147- ANDROID_UPDATE_PWD : ${{ secrets.ANDROID_UPDATE_PWD }}
148- APP_VERSION_NAME : ${{ steps.version-info.outputs.APP_VERSION_NAME }}
149- APP_VERSION_CODE : ${{ steps.version-info.outputs.APP_VERSION_CODE }}
150- CHANGELOG : ${{ steps.version-info.outputs.CHANGELOG }}
151- DOWNLOAD_URL : ${{ steps.upload-apk.outputs.DOWNLOAD_URL }}
152-
153- publish-alpha :
154- runs-on : ubuntu-latest
155- environment : alpha
156- needs :
157- - build
158- permissions :
159- contents : write
160-
161- steps :
162- - name : Checkout source code
163- uses : actions/checkout@v4
164-
165- - uses : actions/download-artifact@v4
166- with :
167- name : outputs
168- path : ${{ github.workspace }}/outputs/
169-
170- - name : Extract Version Info
171- id : version-info
172- shell : bash
173- run : |
174- echo "APP_VERSION_CODE=$(cat $GITHUB_WORKSPACE/outputs/version-code)" >> "$GITHUB_OUTPUT"
175- echo "APP_VERSION_NAME=$(cat $GITHUB_WORKSPACE/outputs/version-name)" >> "$GITHUB_OUTPUT"
176- {
177- echo "CHANGELOG<<BSEOF"
178- cat $GITHUB_WORKSPACE/outputs/changelog
179- echo "BSEOF"
180- } >> "$GITHUB_OUTPUT"
181-
182- - name : Get APK Filename
183- id : get-apk-filename
184- run : |
185- echo "APK_FILENAME=FzuHelper_${APP_VERSION_NAME}(${APP_VERSION_CODE}).apk" >> "$GITHUB_OUTPUT"
186- env :
187- APP_VERSION_NAME : ${{ steps.version-info.outputs.APP_VERSION_NAME }}
188- APP_VERSION_CODE : ${{ steps.version-info.outputs.APP_VERSION_CODE }}
189-
190- - name : Delete alpha release using GitHub CLI
191- run : |
192- if gh release view alpha; then
193- gh release delete alpha --yes
194- else
195- echo "No alpha release exists."
196- fi
197- env :
198- GITHUB_TOKEN : ${{ github.token }}
199-
200- - name : Move APK File
201- run : |
202- mv $GITHUB_WORKSPACE/outputs/apk/release/app-arm64-v8a-release.apk $APK_FILENAME
203- env :
204- APK_FILENAME : ${{ steps.get-apk-filename.outputs.apk_filename }}
205-
206- - name : Create GitHub Pre-Release
207- uses : softprops/action-gh-release@v1
208- with :
209- tag_name : alpha
210- name : ' Alpha'
211- body : |
212- ${{ steps.version-info.outputs.CHANGELOG }}
213-
214- 此版本为新架构测试版,请提前加入内测群 1020036141 了解详情
215- prerelease : true
216- files : |
217- ${{ steps.get-apk-filename.outputs.apk_filename }}
218- env :
219- GITHUB_TOKEN : ${{ github.token }}
0 commit comments