Conversation
APK artifacts
Built from commit |
andre487
marked this pull request as ready for review
September 7, 2026 16:12
This file contains hidden or 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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
PRs select automatic checks from the full PR diff while Selectel device UI tests run manually before merging. Python-only changes skip Android and UI tests; documentation-only changes skip test jobs. Shared CI/build inputs and unknown paths conservatively run all suites. The required Change scope check prevents classification failures from silently bypassing tests.
Validation: 47 Python tests and Black/isort checks pass through Fastlane. Workflow YAML parses; 14 mocked status scenarios pass, including intentional skips, failures, cancellation and preserved CI rerun results. The real gh launcher dry-run with -y selected the updated required profile without launching jobs. Full PR diff classification correctly still enables Android for this PR.
Latest UI failure analysis (before this push): run 34149140033 failed at acquisition because Galaxy A14 / API 35 had no available device. No lease was created and instrumentation did not run. At the catalog check, HONOR X8c / API 35 had three free devices versus zero A14s; availability can change. Earlier A14 runs passed all 12 cases, while other attempts encountered remote ADB offline. The subsequent X8c run 34150734050 rented successfully but remained ADB offline; instrumentation was skipped and the paid lease and key were released successfully.
Align session handling with the current Selectel API: use v3 users/devices and remote-connect for assignment and session creation/cleanup; accept remoteConnectUrl without the old success flag. Verify operational status and readiness before and after assignment. Follow the documented ADB sequence: connect once, then poll devices -l for the exact endpoint, accepting an initial authentication warning and preserving the transport while offline. Report intermediate session-cleanup failures while still removing the paid rental. Contract tests cover the v3 lifecycle, empty assignment responses, readiness and delayed ADB readiness without disconnect loops. A later run reached the v3 ADB session but remained offline and then absent; cleanup succeeded. The primary-key correction below was subsequently verified locally against Selectel.
Fix ADB identity selection: register the public half of the actual primary ~/.android/adbkey, deriving it with adb pubkey. Android preference environment variables do not relocate the ADB primary key; ADB_VENDOR_KEYS only adds signing keys and does not replace the public identity sent during authentication. Preserve existing local private keys and existing Selectel registrations (HTTP 409); remove only registrations created by this run. Keep a separate ADB server port and clear inherited server-socket overrides.
Validation before changing production code: a local TCP ADB authentication model with the installed real ADB binary rejected the old setup because the presented public key differed from the registered vendor key (offline). The same model accepted the corrected setup (device). Afterwards, a single real HONOR X8c rental from this machine connected successfully through v3; adb shell getprop confirmed API 35 and model ABR-LX1. Cleanup succeeded; a separate API read confirmed device removal (404) and absence of the run-created key registration. This was a connection smoke check, not a complete UI instrumentation run. All 47 Python tests and Black/isort checks pass locally.