name: build-android # Собирает преднастроенный RustDesk APK (arm64-v8a) на раннере `android` (= VM 118, где тулчейн # поднят provision-android.sh). Логику несёт scripts/build-android.sh — тот же путь, что и вручную. # # Секреты репозитория: RUSTDESK_SERVER, RUSTDESK_PUB_KEY, (опц.) RUSTDESK_PRESET_PASSWORD. # Публикация: на теге v* APK прикрепляется к Gitea Release; иначе кладётся в ~/rd-ci-out. # Подпись: без flutter/android/key.properties APK debug-подписан (для теста); свой keystore -> релизная. on: workflow_dispatch: push: tags: ['v*'] permissions: contents: write env: REGISTRY_HOST: gitea.gusik.tech 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: Attach APK to Gitea Release if: startsWith(github.ref, 'refs/tags/v') env: GITEA_TOKEN: ${{ secrets.GITEA_TOKEN }} GITHUB_REPOSITORY: ${{ github.repository }} GITHUB_REF_NAME: ${{ github.ref_name }} run: | set -e base="https://${REGISTRY_HOST}/api/v1/repos/${GITHUB_REPOSITORY}" hdr="Authorization: token ${GITEA_TOKEN}" curl -sf -X POST "$base/releases" -H "$hdr" -H 'Content-Type: application/json' \ -d "{\"tag_name\":\"${GITHUB_REF_NAME}\",\"name\":\"${GITHUB_REF_NAME}\",\"draft\":false,\"prerelease\":false}" || true relid=$(curl -sf "$base/releases/tags/${GITHUB_REF_NAME}" -H "$hdr" | python3 -c 'import sys,json;print(json.load(sys.stdin)["id"])') [ -n "$relid" ] || { echo "нет release id"; exit 1; } for f in dist/*.apk; do echo "Uploading $(basename "$f")..." curl -sf -X POST "$base/releases/$relid/assets?name=$(basename "$f")" -H "$hdr" -F "attachment=@$f" done - name: Stash APK (dispatch) if: ${{ !startsWith(github.ref, 'refs/tags/v') }} run: | mkdir -p ~/rd-ci-out cp dist/*.apk ~/rd-ci-out/ ls -la ~/rd-ci-out/*.apk