Merge pull request #6108 from SachinVin/andy
Android: Sign and publish APKs on GitHub
This commit is contained in:
commit
d38098051d
|
@ -1,12 +1,15 @@
|
|||
#!/bin/bash -ex
|
||||
|
||||
export NDK_CCACHE=$(which ccache)
|
||||
[ "$GITHUB_REPOSITORY" = "citra-emu/citra-canary" ] &&
|
||||
BUILD_FLAVOR=canary ||
|
||||
BUILD_FLAVOR=nightly
|
||||
|
||||
ccache -s
|
||||
|
||||
cd src/android
|
||||
chmod +x ./gradlew
|
||||
./gradlew bundleRelease
|
||||
./gradlew assembleRelease
|
||||
./gradlew assemble${BUILD_FLAVOR}Release
|
||||
./gradlew bundle${BUILD_FLAVOR}Release
|
||||
|
||||
ccache -s
|
||||
|
|
|
@ -3,8 +3,21 @@
|
|||
. ./.ci/common/pre-upload.sh
|
||||
|
||||
REV_NAME="citra-${GITDATE}-${GITREV}"
|
||||
[ "${GITHUB_REPOSITORY}" = "citra-emu/citra-canary" ] &&
|
||||
BUILD_FLAVOR=canary ||
|
||||
BUILD_FLAVOR=nightly
|
||||
|
||||
cp src/android/app/build/outputs/apk/release/app-release.apk \
|
||||
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/release/app-release.aab \
|
||||
cp src/android/app/build/outputs/bundle/${BUILD_FLAVOR}Release/app-${BUILD_FLAVOR}-release.aab \
|
||||
"artifacts/${REV_NAME}.aab"
|
||||
|
||||
if [ ! -z "${ANDROID_KEYSTORE_B64}" ]
|
||||
then
|
||||
echo "Signing apk..."
|
||||
base64 --decode <<< "${ANDROID_KEYSTORE_B64}" > ks.jks
|
||||
|
||||
java -jar $(which apksigner) sign --ks ks.jks \
|
||||
--ks-key-alias "${ANDROID_KEY_ALIAS}" \
|
||||
--ks-pass env:ANDROID_KEYSTORE_PASS "artifacts/${REV_NAME}.apk"
|
||||
fi
|
||||
|
|
|
@ -129,10 +129,14 @@ jobs:
|
|||
- name: Deps
|
||||
run: |
|
||||
sudo apt-get update
|
||||
sudo apt-get install ccache -y
|
||||
sudo apt-get install ccache apksigner -y
|
||||
- name: Build
|
||||
run: ./.ci/android/build.sh
|
||||
- name: Copy artifacts
|
||||
- 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/android/upload.sh
|
||||
- name: Upload
|
||||
uses: actions/upload-artifact@v3
|
||||
|
@ -153,7 +157,7 @@ jobs:
|
|||
TRANSIFEX_API_TOKEN: ${{ secrets.TRANSIFEX_API_TOKEN }}
|
||||
release:
|
||||
runs-on: ubuntu-latest
|
||||
needs: [build, macos]
|
||||
needs: [build, macos, android]
|
||||
if: ${{ startsWith(github.ref, 'refs/tags/') }}
|
||||
steps:
|
||||
- uses: actions/download-artifact@v3
|
||||
|
@ -174,4 +178,4 @@ jobs:
|
|||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
with:
|
||||
asset_paths: '["./**/*.tar.*","./**/*.7z","./**/*.zip"]'
|
||||
asset_paths: '["./**/*.tar.*","./**/*.7z","./**/*.zip","./**/*.apk","./**/*.aab"]'
|
||||
|
|
|
@ -83,6 +83,17 @@ android {
|
|||
}
|
||||
}
|
||||
|
||||
flavorDimensions "version"
|
||||
productFlavors {
|
||||
canary {
|
||||
dimension "version"
|
||||
applicationIdSuffix ".canary"
|
||||
}
|
||||
nightly {
|
||||
dimension "version"
|
||||
}
|
||||
}
|
||||
|
||||
externalNativeBuild {
|
||||
cmake {
|
||||
version "3.18.1"
|
||||
|
@ -140,5 +151,10 @@ def getVersion() {
|
|||
logger.error('Cannot find git, defaulting to dummy version number')
|
||||
}
|
||||
|
||||
if (System.getenv("GITHUB_ACTIONS") != null) {
|
||||
def gitTag = System.getenv("GIT_TAG_NAME")
|
||||
versionName = gitTag ?: versionName
|
||||
}
|
||||
|
||||
return versionName
|
||||
}
|
||||
|
|
Reference in New Issue