Run CI incrementally and add Python tooling and a GitHub launcher - #32
Merged
Merged
Conversation
APK artifacts
Built from commit |
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.
CI currently rebuilds Android even when a PR only changes documentation or Python tooling. Select each suite from changes since its last successful ancestor check in the same PR and with the same recorded base. Failed, cancelled and skipped jobs do not advance coverage. Search the latest 30 completed branch CI runs through gh; use the full PR diff when no reliable history exists. Exclude the current run, later runs, other PRs, forks and rebased-away commits. Pushes to main compare push endpoints.
Keep unknown paths and shared CI/build inputs conservative, make diff failures fail the required Change scope check, show per-suite baselines in the summary, and handle intentionally absent APK artifacts when Android is skipped. Name Actions runs CI · .
Add pinned Black/isort formatting and Python unit tests through Bundler/Fastlane (python_format, python_tests, python_checks), consistently respecting PYTHON. Add a standard-library interactive launcher using native gh authentication and commands: choose an open repository PR and rerun all CI jobs or failed jobs only for its current commit. Support --dry-run, --yes/-y, confirmation and stale-head detection without automatic retries of ambiguous launches. Synchronize English/Russian documentation. No device-farm integration or device-test requirements are included.
Validation: 28 Python tests and Black/isort checks pass locally through Fastlane. Tests cover independent successful baselines, failed/skipped/cancelled jobs, different PR bases, non-ancestor commits, GitHub history failure, full PR fallback, renamed/deleted code, launcher run selection and safe argument passing. Workflow YAML and Fastlane syntax parse. A real gh launcher dry run with -y selected this PR and its completed CI without launching jobs. All four GitHub CI checks passed for the final incremental implementation (run 34226399411). A read-only local simulation of a subsequent unchanged check queried real GitHub history, reused that successful run for all three suites, and selected no tests.
Repository protection was first restored by removing orphaned requirements from closed PR #31. The verified Change scope and Python tests and style checks are now required alongside Android and Go. Selectel UI required remains removed.