update(workflow): upload to release, and remove hardcoded version name

This commit is contained in:
Kyush 2026-06-08 19:05:32 +09:00
commit 12ba2d1e61

View file

@ -3,10 +3,10 @@ name: Build RustDesk Android
on:
workflow_dispatch:
inputs:
upload-artifact:
upload-release:
type: boolean
default: true
description: "Upload APK artifacts"
description: "Upload APKs to release"
upload-tag:
type: string
default: "nightly"
@ -20,10 +20,9 @@ env:
TAG_NAME: "${{ inputs.upload-tag }}"
VCPKG_BINARY_SOURCES: "clear;files,/opt/vcpkg-cache,readwrite"
VCPKG_COMMIT_ID: "120deac3062162151622ca4860575a33844ba10b"
VERSION: "1.4.6"
NDK_VERSION: "r27c"
ANDROID_SIGNING_KEY: "${{ secrets.ANDROID_SIGNING_KEY }}"
UPLOAD_ARTIFACT: "${{ inputs.upload-artifact }}"
UPLOAD_RELEASE: "${{ inputs.upload-release }}"
jobs:
# -------------------------------------------------------
@ -235,7 +234,7 @@ jobs:
# build flutter
pushd flutter
flutter build apk "--${{ matrix.job.reltype }}" --target-platform android-arm64 --split-per-abi
mv build/app/outputs/flutter-apk/app-arm64-v8a-${{ matrix.job.reltype }}.apk ../rustdesk-${{ env.VERSION }}-${{ matrix.job.arch }}${{ matrix.job.suffix }}.apk
mv build/app/outputs/flutter-apk/app-arm64-v8a-${{ matrix.job.reltype }}.apk ../rustdesk-${{ env.TAG_NAME }}-${{ matrix.job.arch }}${{ matrix.job.suffix }}.apk
;;
armv7-linux-androideabi)
mkdir -p ./flutter/android/app/src/main/jniLibs/armeabi-v7a
@ -244,7 +243,7 @@ jobs:
# build flutter
pushd flutter
flutter build apk "--${{ matrix.job.reltype }}" --target-platform android-arm --split-per-abi
mv build/app/outputs/flutter-apk/app-armeabi-v7a-${{ matrix.job.reltype }}.apk ../rustdesk-${{ env.VERSION }}-${{ matrix.job.arch }}${{ matrix.job.suffix }}.apk
mv build/app/outputs/flutter-apk/app-armeabi-v7a-${{ matrix.job.reltype }}.apk ../rustdesk-${{ env.TAG_NAME }}-${{ matrix.job.arch }}${{ matrix.job.suffix }}.apk
;;
x86_64-linux-android)
mkdir -p ./flutter/android/app/src/main/jniLibs/x86_64
@ -253,13 +252,13 @@ jobs:
# build flutter
pushd flutter
flutter build apk "--${{ matrix.job.reltype }}" --target-platform android-x64 --split-per-abi
mv build/app/outputs/flutter-apk/app-x86_64-${{ matrix.job.reltype }}.apk ../rustdesk-${{ env.VERSION }}-${{ matrix.job.arch }}${{ matrix.job.suffix }}.apk
mv build/app/outputs/flutter-apk/app-x86_64-${{ matrix.job.reltype }}.apk ../rustdesk-${{ env.TAG_NAME }}-${{ matrix.job.arch }}${{ matrix.job.suffix }}.apk
;;
esac
popd
mkdir -p signed-apk
mv ../rustdesk-${{ env.VERSION }}-${{ matrix.job.arch }}${{ matrix.job.suffix }}.apk signed-apk/ 2>/dev/null || \
mv ./rustdesk-${{ env.VERSION }}-${{ matrix.job.arch }}${{ matrix.job.suffix }}.apk signed-apk/
mv ../rustdesk-${{ env.TAG_NAME }}-${{ matrix.job.arch }}${{ matrix.job.suffix }}.apk signed-apk/ 2>/dev/null || \
mv ./rustdesk-${{ env.TAG_NAME }}-${{ matrix.job.arch }}${{ matrix.job.suffix }}.apk signed-apk/
- name: Setup sign tool version variable
shell: bash
@ -269,7 +268,7 @@ jobs:
- uses: https://github.com/r0adkll/sign-android-release@v1
name: Sign app APK
if: env.ANDROID_SIGNING_KEY != null
if: env.ANDROID_SIGNING_KEY != ''
id: sign-rustdesk
with:
releaseDirectory: ./signed-apk
@ -280,19 +279,29 @@ jobs:
env:
BUILD_TOOLS_VERSION: ${{ env.ANDROID_SIGN_TOOL_VERSION }}
- name: Upload signed APK
if: env.ANDROID_SIGNING_KEY != null && env.UPLOAD_ARTIFACT == 'true'
uses: https://code.forgejo.org/forgejo/upload-artifact@v4
with:
name: rustdesk-${{ env.VERSION }}-${{ matrix.job.arch }}.apk
path: ${{ steps.sign-rustdesk.outputs.signedReleaseFile }}
- name: Copy APK to release dir
if: env.UPLOAD_RELEASE == 'true'
shell: bash
env:
SIGNED_RELEASE_FILE: ${{ steps.sign-rustdesk.outputs.signedReleaseFile }}
run: |
mkdir -p dist/release
if [[ -n "${ANDROID_SIGNING_KEY}" ]]; then
cp "${SIGNED_RELEASE_FILE}" "dist/release/rustdesk-${{ env.TAG_NAME }}-${{ matrix.job.arch }}.apk"
else
cp "signed-apk/rustdesk-${{ env.TAG_NAME }}-${{ matrix.job.arch }}${{ matrix.job.suffix }}.apk" \
"dist/release/rustdesk-${{ env.TAG_NAME }}-${{ matrix.job.arch }}.apk"
fi
- name: Upload unsigned APK
if: env.ANDROID_SIGNING_KEY == null && env.UPLOAD_ARTIFACT == 'true'
uses: https://code.forgejo.org/forgejo/upload-artifact@v4
- name: Create Release
if: env.UPLOAD_RELEASE == 'true'
uses: actions/forgejo-release@v2.12.1
with:
name: rustdesk-${{ env.VERSION }}-${{ matrix.job.arch }}.apk
path: signed-apk/rustdesk-${{ env.VERSION }}-${{ matrix.job.arch }}${{ matrix.job.suffix }}.apk
direction: upload
token: ${{ secrets.FORGEJO_TOKEN }}
tag: ${{ env.TAG_NAME }}
title: Release ${{ env.TAG_NAME }}
release-dir: dist/release
# -------------------------------------------------------
# Step 3: Build universal APK (all ABIs combined)
@ -418,7 +427,7 @@ jobs:
popd
mkdir -p signed-apk
mv ./flutter/build/app/outputs/flutter-apk/app-${{ env.reltype }}.apk \
signed-apk/rustdesk-${{ env.VERSION }}-universal${{ env.suffix }}.apk
signed-apk/rustdesk-${{ env.TAG_NAME }}-universal${{ env.suffix }}.apk
- name: Setup sign tool version variable
shell: bash
@ -428,7 +437,7 @@ jobs:
- uses: https://github.com/r0adkll/sign-android-release@v1
name: Sign universal APK
if: env.ANDROID_SIGNING_KEY != null
if: env.ANDROID_SIGNING_KEY != ''
id: sign-rustdesk
with:
releaseDirectory: ./signed-apk
@ -439,16 +448,26 @@ jobs:
env:
BUILD_TOOLS_VERSION: ${{ env.ANDROID_SIGN_TOOL_VERSION }}
- name: Upload signed universal APK
if: env.ANDROID_SIGNING_KEY != null && env.UPLOAD_ARTIFACT == 'true'
uses: https://code.forgejo.org/forgejo/upload-artifact@v4
with:
name: rustdesk-${{ env.VERSION }}-universal.apk
path: ${{ steps.sign-rustdesk.outputs.signedReleaseFile }}
- name: Copy universal APK to release dir
if: env.UPLOAD_RELEASE == 'true'
shell: bash
env:
SIGNED_RELEASE_FILE: ${{ steps.sign-rustdesk.outputs.signedReleaseFile }}
run: |
mkdir -p dist/release
if [[ -n "${ANDROID_SIGNING_KEY}" ]]; then
cp "${SIGNED_RELEASE_FILE}" "dist/release/rustdesk-${{ env.TAG_NAME }}-universal.apk"
else
cp "signed-apk/rustdesk-${{ env.TAG_NAME }}-universal${{ env.suffix }}.apk" \
"dist/release/rustdesk-${{ env.TAG_NAME }}-universal.apk"
fi
- name: Upload unsigned universal APK
if: env.ANDROID_SIGNING_KEY == null && env.UPLOAD_ARTIFACT == 'true'
uses: https://code.forgejo.org/forgejo/upload-artifact@v4
- name: Create Release
if: env.UPLOAD_RELEASE == 'true'
uses: actions/forgejo-release@v2.12.1
with:
name: rustdesk-${{ env.VERSION }}-universal.apk
path: signed-apk/rustdesk-${{ env.VERSION }}-universal${{ env.suffix }}.apk
direction: upload
token: ${{ secrets.FORGEJO_TOKEN }}
tag: ${{ env.TAG_NAME }}
title: Release ${{ env.TAG_NAME }}
release-dir: dist/release