Skip to content

[#510]: Fix Maestro CI script: dash rejects set -o pipefail - #511

Merged
mattrace-gloo merged 1 commit into
mainfrom
mrace/fix/510-maestro-ci-dash-pipefail
Sep 11, 2026
Merged

[#510]: Fix Maestro CI script: dash rejects set -o pipefail#511
mattrace-gloo merged 1 commit into
mainfrom
mrace/fix/510-maestro-ci-dash-pipefail

Conversation

@mattrace-gloo

Copy link
Copy Markdown
Collaborator

TLDR

Fixes the #497 harness CI abort: android-emulator-runner runs script under Ubuntu dash, which rejects set -o pipefail. Wrap the body in a bash heredoc so the job can reach Gradle/Maestro. Also silences emulator metrics prompts with -no-metrics.

Reviewer checklist

  • GitHub issue linked in Details (Refs #NNN — do not use Closes / Fixes / Resolves; use Refs: none only for explicit no-ticket chores)
  • How to verify steps completed or valid waiver noted below
  • Acceptance criteria met, or unmet AC waived in the issue with linked follow-up (see AGENTS.md)
  • Scope limited to this issue — no adjacent tickets implemented/stubbed without approval
  • Needs QA? decided (see docs/guides/qa-process.md)

Details

Refs #510

Follow-up to failed run https://github.com/eten-tech-foundation/fluent-mobile/actions/runs/34649217854 (/usr/bin/sh: 1: set: Illegal option -o pipefail). Emulator boot was fine; Gradle never started.

Needs QA?

  • No — engineering-only (docs, CI, refactor, logging, etc.)
  • Yes — post-merge nightly QA (see docs/guides/qa-process.md)

Type of change:

  • Bug fix
  • New feature
  • Breaking change
  • Documentation
  • Maintenance / refactor

Technical changes

  • .github/workflows/maestro-android.yml — bash heredoc wrapper; -no-metrics on emulator options
  • docs/guides/maestro.md — note about dash vs bash

Testing

  • npm run format:check / lint / architecture-guard / typecheck / npm test -- --ci — pass
  • ruby .github/scripts/check-action-pins.rb — pass
  • Local sh -c 'bash … heredoc' sanity — pass
  • code-reviewer — APPROVE

How to verify

  1. Local gates above
  2. After merge: Actions → Maestro Android (informational) → harness — must get past script entry into ./gradlew :app:assembleRelease (may still fail later on signing/build; this PR only fixes the dash abort)

Expected: No Illegal option -o pipefail; Gradle logs appear in the emulator-runner step.

Follow-ups

  • Stabilize assembleRelease / APK path if the next harness dispatch fails after this fix

android-emulator-runner invokes script via /usr/bin/sh (dash), which rejects
set -o pipefail. Wrap the body in a bash heredoc so harness can reach Gradle.
@mattrace-gloo mattrace-gloo self-assigned this Sep 11, 2026
@coderabbitai

coderabbitai Bot commented Sep 11, 2026

Copy link
Copy Markdown

Important

Draft PR not reviewed

Draft PRs are not automatically reviewed by default.

  • Trigger a manual review

To automatically review draft PRs, update your CodeRabbit configuration:

reviews:
  auto_review:
    drafts: true

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@mattrace-gloo
mattrace-gloo marked this pull request as ready for review September 11, 2026 21:46
@mattrace-gloo
mattrace-gloo merged commit 5ae02e1 into main Sep 11, 2026
16 checks passed
@mattrace-gloo
mattrace-gloo deleted the mrace/fix/510-maestro-ci-dash-pipefail branch September 11, 2026 21:46
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.

1 participant