-
Notifications
You must be signed in to change notification settings - Fork 2.2k
81 lines (67 loc) · 2.62 KB
/
manual_generate_apk.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
name: Manual Generate Android APK
on:
workflow_dispatch:
inputs:
buildVariant:
type: choice
description: 'Build Variant'
required: true
default: 'NormalOptimized'
options:
- NormalOptimized
- NormalDebug
- VROptimized
- VRDebug
- LegacyOptimized
jobs:
apk:
name: Generate ${{ github.event.inputs.buildVariant }} APK
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
submodules: recursive
- name: Check Valid Version Tags
id: valid-tags
shell: bash
run: |
echo "count=$(git tag -l 'v[0-9]*' | wc -l | tr -d ' ')" >> $GITHUB_OUTPUT
- name: Fetch upstream tags # required for git describe to return a valid version and to preevnt androidGitVersion from crashing on a new fork
if: ${{ steps.valid-tags.outputs.count == '0' }}
run: |
# TODO: should try to fetch tags from whereever this repo was forked from before fetching from official repo
git remote add upstream https://github.com/hrydgard/ppsspp.git # fetching from official repo as a fallback
git fetch --deepen=15000 --no-recurse-submodules --tags upstream || exit 0
- name: Setup JDK
uses: actions/setup-java@v4
with:
distribution: 'temurin'
java-version: '17'
cache: 'gradle'
#- name: Setup SDK # gradlew will install SDK automatically, thus this step not needed
# uses: android-actions/setup-android@v3
#- name: Setup NDK # gradle will install NDK (side by side) automatically, thus explictly seting up NDK here will cause not enough storage issue when building debug variant
# uses: nttld/setup-ndk@v1
# with:
# ndk-version: r21e
- name: Test androidGitVersion
run: |
echo "count=${{steps.valid-tags.outputs.count}}"
gradle --quiet androidGitVersion
- name: Assemble APK
run: ./gradlew assemble${{ github.event.inputs.buildVariant }} --stacktrace
#- name: Gradle Test
# run: bash ./gradlew test${{ github.event.inputs.buildVariant }}UnitTest --stacktrace
- name: Package build
run: |
find . -name "*.apk"
mkdir ppsspp
if [ -e android/build/*/apk/*/*/*.apk ]; then
cp android/build/*/apk/*/*/*.apk ppsspp/
fi
- name: Upload artifact
uses: actions/upload-artifact@v4
with:
name: android-${{ github.event.inputs.buildVariant }} build
path: ppsspp/