chore(ci): inline iOS maestro run and gate tests on balance check#477
chore(ci): inline iOS maestro run and gate tests on balance check#477ignaciosantise wants to merge 4 commits intomainfrom
Conversation
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
|
Claude finished @ignaciosantise's task in 3m 27s —— View job Review
GitHub Actions Security: No Breaking changes: None. Logic correctness: Found 1 issue(s)Issue 1: Secrets passed as CLI arguments expose values in process listingsID: ci-e2e-walletkit-secrets-cli-args-b2f1 Context:
Recommendation: Pass secrets via the step's - name: Run Maestro tests
id: maestro
env:
MAESTRO_APP_ID: ${{ env.MAESTRO_APP_ID }}
WPAY_CUSTOMER_KEY_MULTI_KYC: ${{ secrets.WPAY_CUSTOMER_KEY_MULTI_KYC }}
WPAY_MERCHANT_ID_MULTI_KYC: ${{ secrets.WPAY_MERCHANT_ID_MULTI_KYC }}
# ... repeat for remaining secrets
run: |
xcrun simctl launch "$DEVICE_ID" "$MAESTRO_APP_ID" || true
$HOME/.maestro/bin/maestro test \
--include-tags "${{ env.MAESTRO_TAGS }}" \
--test-output-dir maestro-artifacts \
.maestro/ >maestro-output.log 2>&1; echo $? > maestro-exit-code
cat maestro-output.log
exit $(cat maestro-exit-code)
|
There was a problem hiding this comment.
Pull request overview
This PR updates the WalletKit E2E GitHub Actions workflows to (1) run iOS Maestro tests inline (matching the Android job behavior) and (2) introduce a reusable “balance check” job that runs before E2E jobs without blocking them on alerts.
Changes:
- Added
workflow_callsupport toe2e-balance-check.ymlso it can be invoked as a reusable workflow. - Added a
check-balancereusable-workflow job inci_e2e_walletkit.yaml, and madee2e-ios/e2e-androiddepend on it while still running even if it fails (always()). - Replaced the iOS
WalletConnect/actions/maestro/runaction with an inlinemaestro testscript and an explicit artifact upload step.
Reviewed changes
Copilot reviewed 2 out of 2 changed files in this pull request and generated 4 comments.
| File | Description |
|---|---|
.github/workflows/e2e-balance-check.yml |
Adds workflow_call trigger to allow reuse from other workflows. |
.github/workflows/ci_e2e_walletkit.yaml |
Adds a balance-check prerequisite job, updates job gating logic, and inlines the iOS Maestro run + artifact upload. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
- Move WPAY secrets and APP_ID into step env so they aren't interpolated into the maestro --env CLI args (keeps them out of YAML source and avoids duplicating the values into argv). - Capture maestro exit code with set +e / $? so non-zero runs still print the log and propagate the failure correctly under bash -e. - Declare SLACK_FAUCETBOT_WEBHOOK_URL under on.workflow_call.secrets in e2e-balance-check.yml and pass it explicitly from the caller instead of using secrets: inherit. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
…script The WalletConnect Blockchain API gates eth_getBlockByNumber and eth_blockNumber on some chains (e.g. Arbitrum), which breaks ethers.sendTransaction and the tx receipt poll. Add a --rpcUrl override so users can point at a chain-native RPC, and make the baseFee read fail-soft so fee estimation works even when the gateway blocks it. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
reactivecircus/android-emulator-runner executes each line of the script: block as a separate sh -c, so backslash continuations get passed literally (maestro receives \ as the flow path) and variables/set options don't cross lines. Collapse the maestro test invocation onto one line with ; separators so set +e, the test run, the exit code capture, and the final exit all share a shell. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Summary
WalletConnect/actions/maestro/runon the iOS job ofci_e2e_walletkit.yamlwith an inlinemaestro testscript that mirrors the Android job (same env vars,--include-tags,--test-output-dir, output log, exit-code capture), plus the matchingUpload Maestro artifactsstep the action used to handle.check-balancejob that calls the reusablee2e-balance-check.ymlworkflow, and make bothe2e-iosande2e-androiddepend on it withif: always() && inputs.platform != '<other>'so a balance alert won't block tests.workflow_call: {}toe2e-balance-check.ymlso it's invokable as a reusable workflow.Test plan
CI E2E WalletKitviaworkflow_dispatchwithplatform=iosand confirm thecheck-balancejob runs first, iOS tests run after regardless of alert, andmaestro-ios-artifactsare uploaded.platform=androidand confirm thecheck-balance→e2e-androidchain still works.platform=bothand confirm both jobs run in parallel aftercheck-balance.🤖 Generated with Claude Code