Fix Playwright fork nightly 'tests BiDi' failed 30 consecutive nights — stale fork + missing Azure secrets, second dead nightly signal - #4
Open
polylane[bot] wants to merge 1 commit into
Conversation
Test results for "MCP"1 failed 8141 passed, 1361 skipped Merge workflow run. |
Test results for "tests 1"23 flaky51251 passed, 1235 skipped Merge workflow run. |
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.
Fixes: Playwright fork nightly 'tests BiDi' failed 30 consecutive nights — stale fork + missing Azure secrets, second dead nightly signal
The nightly 'tests BiDi' workflow on this fork fails every night in part because the Azure Login and report-upload steps run unconditionally on main-branch runs, and forked repositories do not inherit the AZURE_BLOB_REPORTS secrets the steps require, so the job reddens even when the bidi tests pass. This change skips those two steps unless the secrets are present, leaving the test result itself as the run's signal.
What caused this
Affected:
int_01ace0dc7001iivrvgsb7n32· severity lowWhat changed
.github/workflows/tests_bidi.yml: added&& secrets.AZURE_BLOB_REPORTS_CLIENT_ID != ''to theifguard of theAzure LoginandUpload report.csv to Azuresteps, so runs on forks without the upstream report secrets skip the upload path instead of failing on it.Why it's safe
github.ref == 'refs/heads/main'already exists and the upload steps are report publication, not part of the test signal.Validation
npx -y js-yaml .github/workflows/tests_bidi.yml: parses cleanly (exit 0); both Azure steps carry the new guard.nodequote-balance and guard-count check: 2 guarded steps, quotes balanced.npm run flint: workflow-only YAML change, no TS/JS or DEPS surfaces touched.Root cause and scoping notes
Root cause
##[error]Login failed with Error: Using auth-type: SERVICE_PRINCIPAL. Not all values are present. Ensure 'client-id' and 'tenant-id' are supplied.on both matrix legs.azure/login@v3runs withif: ${{ !cancelled() && github.ref == 'refs/heads/main' }}and expandssecrets.AZURE_BLOB_REPORTS_CLIENT_ID/TENANT_ID/SUBSCRIPTION_IDin itswithblock. GitHub does not propagate upstream secrets to forks, so the action fails on missing inputs; the following azcopy upload step fails after it.github.ref == 'refs/heads/main'intent (report upload only on upstream main). Verified verbatim error text from job 103489135979 and fork repo metadata (fork=true, pushed 08-21, 0 dependents).Causal chain
Detection outcome
##[error]Login failed with Error: Using auth-type: SERVICE_PRINCIPAL. Not all values are present. Ensure 'client-id' and 'tenant-id' are supplied.failure in the Azure Login step of the nightly 'tests BiDi' run (workflow 296267544, run 34669889538).AZURE_BLOB_REPORTS_CLIENT_IDis absent, which is permanently true on this fork (forks do not inherit upstream secrets). The step can no longer emit the login-failed error, and the subsequentUpload report.csv to Azurestep is skipped with it.This change is a declared stopgap: it contains the symptom while the producer's fix is tracked as a follow-up on the issue timeline.
Fix chosen
Chosen: cause (removes the mechanism that produces the failure): Guard the Azure Login and Upload report.csv steps with
secrets.AZURE_BLOB_REPORTS_CLIENT_ID != ''so the permanently-missing secrets skip the report-upload path instead of failing the job.Considered and not chosen:
github.ref == 'refs/heads/main'with no secrets check. Not chosen: That is the current state and it fails every night; it changes nothing.Outcome after fix
tests_bidi.ymlon endformdev/playwright@main, whereAZURE_BLOB_REPORTS_CLIENT_IDis not set.Azure LoginandUpload report.csv to Azuresteps evaluate their guard, findsecrets.AZURE_BLOB_REPORTS_CLIENT_IDempty, and are skipped; the azcopy upload no longer runs and no step fails on missing credentials.Run testsstep alone, so a night where the bidi tests pass is green instead of red; a night where they fail is still red, with the Azure steps skipped above the test failure.1 file changed (+2/-2)
.github/workflows/tests_bidi.yml: modified, +2/-2Repository conventions present in the repository: CLAUDE.md, .github/copilot-instructions.md, .claude/skills (playwright-dev, playwright-devops, playwright-test-results, playwright-triage).
Repository lint:
npm run lint(declared in package.json) did not finish within its time budget, so its verdict is not known; run it before merging.Generated by Polylane.