ci(nr): emit CI/e2e/smoke results to New Relic (Wave 5)#193
Merged
Conversation
Wave 5 of the CI integration plan (docs/ci/01-CI-INTEGRATION-DESIGN.md
§NR observability): push the web CI / Playwright / pr-smoke / e2e-prod results
to New Relic so a red run — especially a user-facing-journey failure in prod —
is studyable from an NR dashboard, not just the GitHub Actions log.
Adds the reusable .github/actions/nr-ci-event composite action (mirrors api +
worker) that POSTs an InstantCITestRun event (always) + InstantCITestFailure
(on fail) to the NR Event API. Wired as if:always() steps into:
- ci.yml → suite=build-and-test (tsc+vite+prerender+vitest), playwright
- e2e-pr-smoke.yml → suite=pr-smoke (real-backend UI smoke; the
ci-pr-smoke-failing-main P1 alert reads this)
- e2e-prod.yml → suite=e2e-prod (live-prod journeys; the
ci-e2e-prod-failing P1 alert reads this)
The two live suites gate the emit on RUN=='1' so a fork/secret-less no-op run
does NOT report a misleading pass. No-ops cleanly without the NR secret.
Additive only — no gate change; npm run gate green (81 files, 1129 tests).
Operator action: provision NEW_RELIC_LICENSE_KEY + NEW_RELIC_ACCOUNT_ID as
GitHub Actions secrets on the instanode-web repo. NR dashboard + alerts land in
the infra repo (instanode-ci-health).
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
mastermanas805
enabled auto-merge (squash)
June 5, 2026 23:50
size-limit report 📦
|
…ses them as inputs The nr-ci-event composite action referenced github.*/secrets.*/job.status in its own env: block; GitHub rejects those inside a composite action. Move resolution to the caller's with: block; action reads only inputs.*. Adds event-name + actor inputs; callers pass repo/workflow/branch/commit-sha/log-url/event-name/actor. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
GitHub evaluates ${{ }} even inside input description: strings; the example
'${{ secrets... }}' text triggered Unrecognized-named-value. Plain text now;
only runs: keeps inputs.* expressions.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
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.
Wave 5 of the CI integration plan (
docs/ci/01-CI-INTEGRATION-DESIGN.md§NR observability): push the web CI / Playwright / pr-smoke / e2e-prod results to New Relic so a red run — especially a user-facing-journey failure in prod — is studyable from an NR dashboard, not just the GitHub Actions log.What
Adds the reusable
.github/actions/nr-ci-eventcomposite action (mirrors api + worker) that POSTsInstantCITestRun(always) +InstantCITestFailure(on fail) to the NR Event API. Wired asif:always()steps into:suite=build-and-test(tsc+vite+prerender+vitest),suite=playwrightsuite=pr-smoke(real-backend UI smoke; theci-pr-smoke-failing-mainP1 alert reads this)suite=e2e-prod(live-prod journeys; theci-e2e-prod-failingP1 alert reads this)The two live suites gate the emit on
RUN=='1'so a fork/secret-less no-op run does NOT report a misleading pass. No-ops cleanly without the NR secret.Verify
npm run gateGREEN (81 test files, 1129 passed | 3 skipped). Additive only — no source change, just workflow YAML.Operator action
Provision
NEW_RELIC_LICENSE_KEY+NEW_RELIC_ACCOUNT_IDas GitHub Actions secrets on the instanode-web repo. NR dashboard + alerts land in infra #57.Companion PRs (Wave 5)
🤖 Generated with Claude Code