Some checks are pending
Repo / Label merge conflict / Triage (push) Waiting to run
102 lines
5 KiB
YAML
102 lines
5 KiB
YAML
name: App / Publish
|
|
|
|
on:
|
|
push:
|
|
tags:
|
|
- v*
|
|
|
|
jobs:
|
|
publish:
|
|
name: Publish
|
|
runs-on: ubuntu-22.04
|
|
if: ${{ contains(github.repository_owner, 'jellyfin') }}
|
|
steps:
|
|
- name: Checkout repository
|
|
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
|
|
- name: Setup Java
|
|
uses: actions/setup-java@99b8673ff64fbf99d8d325f52d9a5bdedb8483e9 # v4.2.1
|
|
with:
|
|
distribution: temurin
|
|
java-version: 17
|
|
- name: Setup Gradle
|
|
uses: gradle/actions/setup-gradle@dbbdc275be76ac10734476cc723d82dfe7ec6eda # v3.4.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@796cf0d5e4b535745ce49d7429f77cf39e25ef39 # 7.0.1
|
|
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@029f5b4aeeeb58fdfe1410a5d17f967dacf36262 # v1.0.3
|
|
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 .;
|