Skip to content

fix(ci): scope emulator smoke and await OAuth callback jobs - #174

Merged
altaywtf merged 1 commit into
mainfrom
fix/scheduled-smoke-scope
Sep 20, 2026
Merged

altaywtf merged 1 commit into
mainfrom
fix/scheduled-smoke-scope

Conversation

@altaywtf

Copy link
Copy Markdown
Member

The weekly managed-device lane ran opt-in feature tests without their fixtures. Its OAuth regression also waited for every application coroutine, including a permanent playback observer, so it timed out after handling the callback.

Select launch smoke and the credential-free OAuth regression explicitly, with separate invocations and artifacts because AGP truncates comma-separated class selectors. Return the callback job and await only that job; preserve the assertions that stale callbacks retain the newer attempt and matching malformed callbacks clear it.

Validated locally with ./gradlew verify :buildSrc:test :app:assembleMobileProductionDebug :app:assembleTvProductionDebug, actionlint, and zizmor. Both named tests passed on the API 36 managed emulator with SwiftShader; result XML confirmed each ran without failures or skips. The prior timeout is recorded in the failing scheduled run.

Copilot AI lite review requested due to automatic review settings September 20, 2026 12:59
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Sep 20, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-09-20T13:02:34.665914Z 8897d24 PR opened
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot review overview

🟢 Approval recommended

The changes are narrowly scoped to CI/test orchestration and introduce a clear, verifiable fix (awaiting only the relevant callback job) without affecting production authentication flow semantics.

Review effort: Lite
Findings: None

What changed in this PR

This PR hardens the scheduled/opt-in managed-device GitHub Actions lane by explicitly running only the intended smoke tests (launch + stale OAuth callback regression) and by making the OAuth callback handling awaitable so the regression no longer waits on unrelated long-lived application coroutines.

Changes:

  • Update MobileOAuthRuntime.dispatchAuthTabResult to return the launched coroutine Job so callers/tests can await just that callback handling work.
  • Refactor StaleOAuthCallbackTest to await only the returned callback job (instead of joining all runtime scope children), preventing timeouts caused by permanent background jobs.
  • Update the emulator smoke workflow (and AGENTS docs) to run LaunchSmokeTest and StaleOAuthCallbackTest in separate invocations and upload separate artifacts.
File Description
app/​src/​mobile/​kotlin/​io/​putdotio/​android/​auth/​MobileOAuthRuntime.kt Return a Job from auth tab result dispatch to allow targeted awaiting.
app/​src/​androidTestMobile/​kotlin/​io/​putdotio/​android/​auth/​StaleOAuthCallbackTest.kt Await only the specific callback job to avoid timeouts from unrelated scope children.
AGENTS.md Document the updated scheduled managed-device smoke lane behavior.
.github/​workflows/​emulator-smoke.yml Explicitly select the two smoke tests via separate Gradle invocations and upload separate artifacts.

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

@altaywtf
altaywtf merged commit 324726e into main Sep 20, 2026
2 checks passed
@altaywtf
altaywtf deleted the fix/scheduled-smoke-scope branch September 20, 2026 13:09
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants