mirror of
https://github.com/JustinZeus/Wholphin.git
synced 2026-07-08 15:50:16 +02:00
## Description This PR moves the native components (ffmpeg decoder, av1 decoder, & `libmpv`) to https://github.com/damontecres/wholphin-extensions. They can be retrieved as gradle dependencies now. This allows for contributors to more easily include these extensions when building Wholphin locally. There are no user facing changes in this PR. Note: the kotlin code for interfacing with `libmpv`, ie `MPVLib` & `MpvPlayer`, is still in this repo for now. ### Related issues Related to #828 ### Testing Emulator ## Screenshots N/A ## AI or LLM usage None
89 lines
3.3 KiB
YAML
89 lines
3.3 KiB
YAML
name: Create release
|
|
|
|
on:
|
|
push:
|
|
tags:
|
|
- v*
|
|
|
|
defaults:
|
|
run:
|
|
shell: bash
|
|
|
|
env:
|
|
APK_SHORT_NAME: Wholphin.apk
|
|
GRADLE_OPTS: "-Dorg.gradle.jvmargs='-Xmx4g -XX:MaxMetaspaceSize=512m'"
|
|
TAG_NAME: ${{ github.ref_name }}
|
|
|
|
jobs:
|
|
publish:
|
|
runs-on: ubuntu-latest
|
|
permissions:
|
|
contents: write
|
|
steps:
|
|
- name: Checkout the code
|
|
uses: actions/checkout@v6
|
|
with:
|
|
fetch-depth: 0 # Need the tags to build
|
|
- name: Setup
|
|
uses: ./.github/actions/setup
|
|
- name: Build app
|
|
id: buildapp
|
|
env:
|
|
KEY_ALIAS: "${{ secrets.KEY_ALIAS }}"
|
|
KEY_PASSWORD: "${{ secrets.KEY_PASSWORD }}"
|
|
KEY_STORE_PASSWORD: "${{ secrets.KEY_STORE_PASSWORD }}"
|
|
SIGNING_KEY: "${{ secrets.SIGNING_KEY }}"
|
|
ORG_GRADLE_PROJECT_WholphinExtensionsUsername: "${{ secrets.EXTENSIONS_USERNAME }}"
|
|
ORG_GRADLE_PROJECT_WholphinExtensionsPassword: "${{ secrets.EXTENSIONS_PASSWORD }}"
|
|
run: |
|
|
./gradlew clean assembleRelease --no-daemon
|
|
|
|
- name: Build app
|
|
id: buildaab
|
|
env:
|
|
KEY_ALIAS: "${{ secrets.KEY_ALIAS }}"
|
|
KEY_PASSWORD: "${{ secrets.KEY_PASSWORD }}"
|
|
KEY_STORE_PASSWORD: "${{ secrets.KEY_STORE_PASSWORD }}"
|
|
SIGNING_KEY: "${{ secrets.SIGNING_KEY }}"
|
|
ORG_GRADLE_PROJECT_WholphinExtensionsUsername: "${{ secrets.EXTENSIONS_USERNAME }}"
|
|
ORG_GRADLE_PROJECT_WholphinExtensionsPassword: "${{ secrets.EXTENSIONS_PASSWORD }}"
|
|
run: |
|
|
git apply app/src/patches/play_store.patch
|
|
./gradlew bundleRelease --no-daemon
|
|
aab=$(find app/build/outputs -name '*.aab')
|
|
echo "aab=$aab" >> "$GITHUB_OUTPUT"
|
|
- name: Verify signatures
|
|
run: |
|
|
echo "Verify APK signatures"
|
|
find app/build/outputs \( -name '*.apk' -or -name '*.aab' \)
|
|
find app/build/outputs \( -name '*.apk' \) -print0 | xargs -0 -n1 ${{env.ANDROID_SDK_ROOT}}/build-tools/${{ env.BUILD_TOOLS_VERSION }}/apksigner verify --verbose --print-certs
|
|
- name: Copy APK to shorter names
|
|
id: apks
|
|
run: |
|
|
find app/build/outputs/apk -name '*.apk' -print0 |
|
|
while IFS= read -r -d '' line; do
|
|
# Wholphin-release-0.2.9-62-g5c12e03-16-arm64-v8a.apk => Wholphin-arm64-v8a.apk
|
|
short_name="$(echo $line | sed -E 's/-release-[0-9]+\.[0-9]+\.[0-9]+-[0-9]+-g[a-fA-F0-9]+-[0-9]+//')"
|
|
echo "$line => $short_name"
|
|
cp "$line" "$short_name"
|
|
done
|
|
apks=$(find app/build/outputs/apk -name '*.apk' -print0 | tr '\0' ',' | sed 's/,$//')
|
|
echo "apks=$apks" >> "$GITHUB_OUTPUT"
|
|
- name: Checksums
|
|
run: |
|
|
echo "SHA256 checksums:"
|
|
find app/build/outputs \( -name '*.apk' -or -name '*.aab' \) -print0 | xargs -0 sha256sum
|
|
- name: Upload AAB
|
|
uses: actions/upload-artifact@v7
|
|
with:
|
|
name: AAB
|
|
path: |
|
|
app/build/outputs/bundle/**/*.aab
|
|
compression-level: 0
|
|
- name: Create GitHub release
|
|
env:
|
|
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
run: |
|
|
gh release create "${{ env.TAG_NAME }}" \
|
|
--latest --title "${{ env.TAG_NAME }}" --verify-tag -n "" --draft \
|
|
"app/build/outputs/apk/**/*.apk"
|