summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to '')
-rwxr-xr-x.ci/scripts/android/build.sh12
-rwxr-xr-x.ci/scripts/android/upload.sh24
-rw-r--r--.github/workflows/verify.yml38
-rwxr-xr-x[-rw-r--r--]src/android/gradlew0
4 files changed, 74 insertions, 0 deletions
diff --git a/.ci/scripts/android/build.sh b/.ci/scripts/android/build.sh
new file mode 100755
index 000000000..1d669919c
--- /dev/null
+++ b/.ci/scripts/android/build.sh
@@ -0,0 +1,12 @@
+#!/bin/bash -ex
+
+export NDK_CCACHE="$(which ccache)"
+ccache -s
+
+BUILD_FLAVOR=mainline
+
+cd src/android
+chmod +x ./gradlew
+./gradlew "assemble${BUILD_FLAVOR}Release" "bundle${BUILD_FLAVOR}Release"
+
+ccache -s
diff --git a/.ci/scripts/android/upload.sh b/.ci/scripts/android/upload.sh
new file mode 100755
index 000000000..269684178
--- /dev/null
+++ b/.ci/scripts/android/upload.sh
@@ -0,0 +1,24 @@
+#!/bin/bash -ex
+
+. ./.ci/scripts/common/pre-upload.sh
+
+REV_NAME="yuzu-${GITDATE}-${GITREV}"
+
+BUILD_FLAVOR=mainline
+
+cp src/android/app/build/outputs/apk/"${BUILD_FLAVOR}/release/app-${BUILD_FLAVOR}-release.apk" \
+ "artifacts/${REV_NAME}.apk"
+cp src/android/app/build/outputs/bundle/"${BUILD_FLAVOR}Release"/"app-${BUILD_FLAVOR}-release.aab" \
+ "artifacts/${REV_NAME}.aab"
+
+if [ -n "${ANDROID_KEYSTORE_B64}" ]
+then
+ echo "Signing apk..."
+ base64 --decode <<< "${ANDROID_KEYSTORE_B64}" > ks.jks
+
+ apksigner sign --ks ks.jks \
+ --ks-key-alias "${ANDROID_KEY_ALIAS}" \
+ --ks-pass env:ANDROID_KEYSTORE_PASS "artifacts/${REV_NAME}.apk"
+else
+ echo "No keystore specified, not signing the APK files."
+fi
diff --git a/.github/workflows/verify.yml b/.github/workflows/verify.yml
index 7cde8380b..c65e0bc5b 100644
--- a/.github/workflows/verify.yml
+++ b/.github/workflows/verify.yml
@@ -122,3 +122,41 @@ jobs:
with:
name: ${{ env.INDIVIDUAL_EXE }}
path: ${{ env.INDIVIDUAL_EXE }}
+ android:
+ runs-on: ubuntu-latest
+ needs: format
+ steps:
+ - uses: actions/checkout@v3
+ with:
+ submodules: recursive
+ - name: Set up cache
+ uses: actions/cache@v3
+ with:
+ path: |
+ ~/.gradle/caches
+ ~/.gradle/wrapper
+ ~/.ccache
+ key: ${{ runner.os }}-android-${{ github.sha }}
+ restore-keys: |
+ ${{ runner.os }}-android-
+ - name: Query tag name
+ uses: little-core-labs/get-git-tag@v3.0.2
+ id: tagName
+ - name: Install dependencies
+ run: |
+ sudo apt-get update
+ sudo apt-get install -y ccache apksigner glslang-dev glslang-tools
+ git -C ./externals/vcpkg/ fetch --all --unshallow
+ - name: Build
+ run: ./.ci/scripts/android/build.sh
+ - name: Copy and sign artifacts
+ env:
+ ANDROID_KEYSTORE_B64: ${{ secrets.ANDROID_KEYSTORE_B64 }}
+ ANDROID_KEY_ALIAS: ${{ secrets.ANDROID_KEY_ALIAS }}
+ ANDROID_KEYSTORE_PASS: ${{ secrets.ANDROID_KEYSTORE_PASS }}
+ run: ./.ci/scripts/android/upload.sh
+ - name: Upload
+ uses: actions/upload-artifact@v3
+ with:
+ name: android
+ path: artifacts/
diff --git a/src/android/gradlew b/src/android/gradlew
index cccdd3d51..cccdd3d51 100644..100755
--- a/src/android/gradlew
+++ b/src/android/gradlew