Files
gusadmin 1b3c3496c5 Приватность публичного репо + выкл. проверку обновлений + релиз latest
- Убраны все машинно/инфра-специфичные данные из README/CODEMAP/скриптов/
  workflows (хосты, IP, домен gitea -> github.server_url).
- preconfigure: enable-check-update=N (выкл. проверку обновлений); подсказка
  «set up your own server» и так гаснет с override-сервером.
- CI публикует exe/apk в Gitea Release `latest` (обновляется каждый прогон,
  стабильная ссылка) + версионный релиз на теге v*.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-14 19:13:54 +03:00

61 lines
2.8 KiB
YAML

name: build-android
# Собирает преднастроенный RustDesk APK (arm64-v8a) на раннере `android` (тулчейн поднят
# scripts/provision-android.sh). Всю логику несёт scripts/build-android.sh.
#
# Секреты репозитория: RUSTDESK_SERVER, RUSTDESK_PUB_KEY, (опц.) RUSTDESK_PRESET_PASSWORD.
# Публикация: APK кладётся в Gitea Release `latest` (обновляется каждый прогон), на теге v* — ещё и в версионный.
# Подпись: без flutter/android/key.properties APK debug-подписан; свой keystore -> релизная подпись.
on:
workflow_dispatch:
push:
tags: ['v*']
permissions:
contents: write
jobs:
android:
runs-on: android
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Provision toolchain (идемпотентно)
run: |
chmod +x scripts/*.sh
bash scripts/provision-android.sh
- name: Build preconfigured APK
env:
RUSTDESK_SERVER: ${{ secrets.RUSTDESK_SERVER }}
RUSTDESK_PUB_KEY: ${{ secrets.RUSTDESK_PUB_KEY }}
RUSTDESK_PRESET_PASSWORD: ${{ secrets.RUSTDESK_PRESET_PASSWORD }}
run: bash scripts/build-android.sh
- name: Publish APK to Gitea Release
env:
GITEA_TOKEN: ${{ secrets.GITEA_TOKEN }}
run: |
set -e
base="${GITHUB_SERVER_URL}/api/v1/repos/${GITHUB_REPOSITORY}"
hdr="Authorization: token ${GITEA_TOKEN}"
case "$GITHUB_REF" in
refs/tags/v*) tag="$GITHUB_REF_NAME"; prerelease=false ;;
*) tag="latest"; prerelease=true ;;
esac
curl -sf -X POST "$base/releases" -H "$hdr" -H 'Content-Type: application/json' \
-d "{\"tag_name\":\"$tag\",\"name\":\"$tag\",\"draft\":false,\"prerelease\":$prerelease,\"target_commitish\":\"master\"}" || true
rel=$(curl -sf "$base/releases/tags/$tag" -H "$hdr")
relid=$(printf '%s' "$rel" | python3 -c 'import sys,json;print(json.load(sys.stdin)["id"])')
[ -n "$relid" ] || { echo "нет release id"; exit 1; }
for f in dist/*.apk; do
name=$(basename "$f")
# удалить старый ассет с тем же именем (gitea не перезаписывает)
aid=$(printf '%s' "$rel" | python3 -c "import sys,json;a=[x['id'] for x in json.load(sys.stdin).get('assets',[]) if x['name']=='$name'];print(a[0] if a else '')")
[ -n "$aid" ] && curl -sf -X DELETE "$base/releases/$relid/assets/$aid" -H "$hdr" || true
echo "Uploading $name -> release '$tag'..."
curl -sf -X POST "$base/releases/$relid/assets?name=$name" -H "$hdr" -F "attachment=@$f"
done
echo "Готово: $tag"