Migrate Compose compiler #32
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 .; |