mirror of
https://github.com/jellyfin/jellyfin-android.git
synced 2026-09-02 21:04:10 +03:00
103 lines
5.0 KiB
YAML
103 lines
5.0 KiB
YAML
name: App / Publish
|
|
|
|
on:
|
|
push:
|
|
tags:
|
|
- v*
|
|
|
|
jobs:
|
|
publish:
|
|
name: Publish
|
|
runs-on: ubuntu-24.04
|
|
if: ${{ contains(github.repository_owner, 'jellyfin') }}
|
|
steps:
|
|
- name: Checkout repository
|
|
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
|
- name: Setup Java
|
|
uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5.2.0
|
|
with:
|
|
distribution: temurin
|
|
java-version: 21
|
|
- name: Setup Gradle
|
|
uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5.0.2
|
|
- name: Set JELLYFIN_VERSION
|
|
run: echo "JELLYFIN_VERSION=$(echo ${GITHUB_REF#refs/tags/v} | tr / -)" >> $GITHUB_ENV
|
|
- name: Assemble release files
|
|
run: ./gradlew assemble bundleProprietaryRelease versionTxt
|
|
- name: Sign libre APK
|
|
id: libreSign
|
|
uses: r0adkll/sign-android-release@349ebdef58775b1e0d8099458af0816dc79b6407 # tag=v1
|
|
env:
|
|
BUILD_TOOLS_VERSION: "34.0.0"
|
|
with:
|
|
releaseDirectory: app/build/outputs/apk/libre/release
|
|
signingKeyBase64: ${{ secrets.KEYSTORE }}
|
|
keyStorePassword: ${{ secrets.KEYSTORE_PASSWORD }}
|
|
alias: ${{ secrets.KEY_ALIAS }}
|
|
keyPassword: ${{ secrets.KEY_PASSWORD }}
|
|
- name: Sign proprietary APK
|
|
id: proprietarySign
|
|
uses: r0adkll/sign-android-release@349ebdef58775b1e0d8099458af0816dc79b6407 # tag=v1
|
|
env:
|
|
BUILD_TOOLS_VERSION: "34.0.0"
|
|
with:
|
|
releaseDirectory: app/build/outputs/apk/proprietary/release
|
|
signingKeyBase64: ${{ secrets.KEYSTORE }}
|
|
keyStorePassword: ${{ secrets.KEYSTORE_PASSWORD }}
|
|
alias: ${{ secrets.KEY_ALIAS }}
|
|
keyPassword: ${{ secrets.KEY_PASSWORD }}
|
|
- name: Sign proprietary app bundle
|
|
id: proprietaryBundleSign
|
|
uses: r0adkll/sign-android-release@349ebdef58775b1e0d8099458af0816dc79b6407 # tag=v1
|
|
env:
|
|
BUILD_TOOLS_VERSION: "34.0.0"
|
|
with:
|
|
releaseDirectory: app/build/outputs/bundle/proprietaryRelease
|
|
signingKeyBase64: ${{ secrets.KEYSTORE }}
|
|
keyStorePassword: ${{ secrets.KEYSTORE_PASSWORD }}
|
|
alias: ${{ secrets.KEY_ALIAS }}
|
|
keyPassword: ${{ secrets.KEY_PASSWORD }}
|
|
- name: Prepare release archive
|
|
run: |
|
|
mkdir -p build/jellyfin-publish
|
|
mv app/build/outputs/apk/*/*/jellyfin-android-*-libre-debug.apk build/jellyfin-publish/
|
|
mv app/build/outputs/apk/*/*/jellyfin-android-*-proprietary-debug.apk build/jellyfin-publish/
|
|
mv app/build/outputs/apk/*/*/jellyfin-android-*-libre-release-unsigned.apk build/jellyfin-publish/
|
|
mv app/build/outputs/apk/*/*/jellyfin-android-*-proprietary-release-unsigned.apk build/jellyfin-publish/
|
|
mv ${{ steps.libreSign.outputs.signedReleaseFile }} build/jellyfin-publish/jellyfin-android-v${{ env.JELLYFIN_VERSION }}-libre-release.apk
|
|
mv ${{ steps.proprietarySign.outputs.signedReleaseFile }} build/jellyfin-publish/jellyfin-android-v${{ env.JELLYFIN_VERSION }}-proprietary-release.apk
|
|
mv ${{ steps.proprietaryBundleSign.outputs.signedReleaseFile }} build/jellyfin-publish/jellyfin-android-v${{ env.JELLYFIN_VERSION }}-proprietary-release.aab
|
|
mv app/build/version.txt build/jellyfin-publish/
|
|
- name: Upload release archive to GitHub release
|
|
uses: alexellis/upload-assets@13926a61cdb2cb35f5fdef1c06b8b591523236d3 # 0.4.1
|
|
env:
|
|
GITHUB_TOKEN: ${{ secrets.JF_BOT_TOKEN }}
|
|
with:
|
|
asset_paths: '["build/jellyfin-publish/*"]'
|
|
- name: Upload release archive to repo.jellyfin.org
|
|
uses: burnett01/rsync-deployments@66257cad6bfeb2171d3b6bfa6c9a22279dd9c3a1 # 8.0.5
|
|
with:
|
|
switches: -vrptz
|
|
path: build/jellyfin-publish/
|
|
remote_path: /srv/incoming/android/v${{ env.JELLYFIN_VERSION }}/
|
|
remote_host: ${{ secrets.REPO_HOST }}
|
|
remote_user: ${{ secrets.REPO_USER }}
|
|
remote_key: ${{ secrets.REPO_KEY }}
|
|
- name: Update repo.jellyfin.org symlinks
|
|
uses: appleboy/ssh-action@0ff4204d59e8e51228ff73bce53f80d53301dee2 # v1.2.5
|
|
with:
|
|
host: ${{ secrets.REPO_HOST }}
|
|
username: ${{ secrets.REPO_USER }}
|
|
key: ${{ secrets.REPO_KEY }}
|
|
envs: JELLYFIN_VERSION
|
|
script_stop: true
|
|
script: |
|
|
if [ -d "/srv/repository/main/client/android/versions/v${{ env.JELLYFIN_VERSION }}" ] && [ -n "${{ env.JELLYFIN_VERSION }}" ]; then
|
|
sudo rm -r /srv/repository/main/client/android/versions/v${{ env.JELLYFIN_VERSION }}
|
|
fi
|
|
sudo mv /srv/incoming/android/v${{ env.JELLYFIN_VERSION }} /srv/repository/main/client/android/versions/v${{ env.JELLYFIN_VERSION }}
|
|
cd /srv/repository/main/client/android;
|
|
sudo rm -rf *.apk version.txt;
|
|
sudo ln -s versions/v${JELLYFIN_VERSION}/jellyfin-android-v${JELLYFIN_VERSION}-*.apk .;
|
|
sudo ln -s versions/v${JELLYFIN_VERSION}/version.txt .;
|