mirror of
https://github.com/JustinZeus/Wholphin.git
synced 2026-07-08 23:51:21 +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
100 lines
3.8 KiB
YAML
100 lines
3.8 KiB
YAML
name: Development build
|
|
|
|
on:
|
|
push:
|
|
branches:
|
|
- main
|
|
- develop/*
|
|
|
|
defaults:
|
|
run:
|
|
shell: bash
|
|
|
|
concurrency:
|
|
group: ${{ github.workflow }}-${{ github.ref }}
|
|
cancel-in-progress: true
|
|
|
|
env:
|
|
BRANCH_NAME: ${{ github.ref_name }}
|
|
GRADLE_OPTS: "-Dorg.gradle.jvmargs='-Xmx4g -XX:MaxMetaspaceSize=512m'"
|
|
|
|
jobs:
|
|
build:
|
|
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: Get version names
|
|
run: |
|
|
LATEST_TAG=$(git describe --tags --match 'v*' --abbrev=0)
|
|
VERSION_NAME=$(git describe --tags --match 'v*' --long)
|
|
if [[ $BRANCH_NAME == "main" ]]; then
|
|
TAG_NAME="develop"
|
|
else
|
|
TAG_NAME="${BRANCH_NAME/\//-}"
|
|
fi
|
|
|
|
echo "LATEST_TAG=$LATEST_TAG" >> "$GITHUB_ENV"
|
|
echo "VERSION_NAME=$VERSION_NAME" >> "$GITHUB_ENV"
|
|
echo "TAG_NAME=$TAG_NAME" >> "$GITHUB_ENV"
|
|
- name: Build release app
|
|
id: build
|
|
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 assembleDebug --no-daemon
|
|
|
|
- name: Verify signatures
|
|
run: |
|
|
echo "Verify APK signatures"
|
|
find app/build/outputs/apk -name '*.apk'
|
|
find app/build/outputs/apk -name '*.apk' -print0 | xargs -t -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/-[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/apk -name '*.apk' -print0 | xargs -0 sha256sum
|
|
- name: Delete ${{ env.TAG_NAME }} tag and release
|
|
env:
|
|
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
run: |
|
|
gh release delete "${{ env.TAG_NAME }}" --cleanup-tag -y || true
|
|
|
|
|
|
echo '### `${{ env.BRANCH_NAME }}` development build
|
|
|
|
This pre-release tracks the development build of Wholphin from the `${{ env.BRANCH_NAME }}` unstable branch.
|
|
|
|
See https://github.com/damontecres/Wholphin/releases/latest for the latest stable release.
|
|
|
|
If you want to update to this version in-app, change Settings->Advanced->Update URL to https://api.github.com/repos/damontecres/Wholphin/releases/tags/${{ env.TAG_NAME }} (replace `latest` with `tags/${{ env.TAG_NAME }}`).
|
|
|
|
[See changes since `${{ env.LATEST_TAG }}`](https://github.com/damontecres/Wholphin/compare/${{ env.LATEST_TAG }}...${{ env.TAG_NAME }})' > ci_release_note.txt
|
|
|
|
|
|
gh release create "${{ env.TAG_NAME }}" \
|
|
--latest=false --prerelease --title "${{ env.VERSION_NAME }}" --target "${{ env.BRANCH_NAME }}" -F ci_release_note.txt \
|
|
"app/build/outputs/apk/**/*.apk"
|