ci: dispatch coverage-fanout on merged source PRs#459
Merged
Conversation
…ce PRs Wires databricks-sql-nodejs into the multi-language coverage fan-out. When a PR merges to main and touched driver source (a file under lib/), dispatch a `coverage-fanout` repository_dispatch to databricks/databricks-driver-test. Its coverage-fanout-tracker.yml then opens a tracking issue and runs the language-agnostic fan-out (a spec authored from this PR's diff, conformed across every driver). - Adds `closed` to the pull_request trigger types; the new trigger-coverage-fanout job gates on pull_request.merged == true. - Source-path filter (lib/): docs/CI/test-only merges don't warrant a full fan-out. - Reuses the existing INTEGRATION_TEST App token (scoped to driver-test) + the same peter-evans/repository-dispatch pin adbc-drivers/databricks uses. - Tightens skip-integration-tests-pr's guard to exclude `closed` so it doesn't re-stamp a check on merged PRs. Co-authored-by: Isaac Signed-off-by: Eric Wang <e.wang@databricks.com>
eric-wang-1990
had a problem deploying
to
azure-prod
July 23, 2026 20:35 — with
GitHub Actions
Failure
eric-wang-1990
temporarily deployed
to
azure-prod
July 23, 2026 20:35 — with
GitHub Actions
Inactive
eric-wang-1990
temporarily deployed
to
azure-prod
July 23, 2026 20:35 — with
GitHub Actions
Inactive
eric-wang-1990
had a problem deploying
to
azure-prod
July 23, 2026 20:35 — with
GitHub Actions
Failure
eric-wang-1990
temporarily deployed
to
azure-prod
July 23, 2026 21:55 — with
GitHub Actions
Inactive
eric-wang-1990
temporarily deployed
to
azure-prod
July 23, 2026 21:55 — with
GitHub Actions
Inactive
…ermissions peco-review-bot findings on the coverage-fanout sender (apply to all driver repos — the job is identical everywhere): - F1 (Medium): the merged-PR guard didn't constrain the base branch, so a PR merged into a release/feature branch that touched source would also dispatch a full fan-out authoring a spec from a diff that never reached main. Add `github.event.pull_request.base.ref == 'main'` to match the stated intent. - F2 (Low): the job declared no permissions block, relying on the default GITHUB_TOKEN read scope for github.rest.pulls.listFiles; if org defaults tighten to none it 403s silently. Scope it explicitly: contents: read + pull-requests: read. Co-authored-by: Isaac Signed-off-by: Eric Wang <e.wang@databricks.com>
eric-wang-1990
temporarily deployed
to
azure-prod
July 23, 2026 22:20 — with
GitHub Actions
Inactive
eric-wang-1990
temporarily deployed
to
azure-prod
July 23, 2026 22:20 — with
GitHub Actions
Inactive
eric-wang-1990
temporarily deployed
to
azure-prod
July 23, 2026 22:20 — with
GitHub Actions
Inactive
eric-wang-1990
temporarily deployed
to
azure-prod
July 23, 2026 22:20 — with
GitHub Actions
Inactive
eric-wang-1990
enabled auto-merge
July 23, 2026 22:23
Further peco-review-bot findings on the coverage-fanout sender: - Narrow the minted App installation token with `permission-contents: write` (all coverage_fanout needs is repository_dispatch → contents:write), matching the defense-in-depth the other dispatch jobs in these repos already use — so a leaked token can only fire dispatches, not exercise the App's full scope. - Restore the version tag in two action-pin comments (`# pinned` → the exact `# vX.Y.Z` the SHA corresponds to, per repo convention) for auditability. Co-authored-by: Isaac Signed-off-by: Eric Wang <e.wang@databricks.com>
eric-wang-1990
temporarily deployed
to
azure-prod
July 23, 2026 22:37 — with
GitHub Actions
Inactive
eric-wang-1990
temporarily deployed
to
azure-prod
July 23, 2026 22:37 — with
GitHub Actions
Inactive
eric-wang-1990
temporarily deployed
to
azure-prod
July 23, 2026 22:37 — with
GitHub Actions
Inactive
eric-wang-1990
temporarily deployed
to
azure-prod
July 23, 2026 22:37 — with
GitHub Actions
Inactive
Send proxy_mode=replay in both dispatch payloads (the label preview and the merge-queue required gate) so the databricks-sql-nodejs PR gate runs the Node.js suite in REPLAY against the PR's driver commit — deterministic, credential-free, no live warehouse — instead of the live passthrough run it does today. Paired with the driver-test receiver change (databricks-driver-test#909) that adds proxy_mode=replay to databricks-sql-nodejs-integration-tests.yml and skips the recording-less reyden leg in replay. Both must merge for the gate to run replay; until #909 lands the receiver ignores proxy_mode (stays passthrough). Co-authored-by: Isaac Signed-off-by: Eric Wang <e.wang@databricks.com>
eric-wang-1990
temporarily deployed
to
azure-prod
July 24, 2026 02:04 — with
GitHub Actions
Inactive
eric-wang-1990
temporarily deployed
to
azure-prod
July 24, 2026 02:04 — with
GitHub Actions
Inactive
eric-wang-1990
temporarily deployed
to
azure-prod
July 24, 2026 02:04 — with
GitHub Actions
Inactive
eric-wang-1990
temporarily deployed
to
azure-prod
July 24, 2026 02:04 — with
GitHub Actions
Inactive
|
Node.js integration tests triggered. View workflow run. |
eric-wang-1990
temporarily deployed
to
azure-prod
July 24, 2026 07:07 — with
GitHub Actions
Inactive
eric-wang-1990
temporarily deployed
to
azure-prod
July 24, 2026 07:07 — with
GitHub Actions
Inactive
eric-wang-1990
temporarily deployed
to
azure-prod
July 24, 2026 22:00 — with
GitHub Actions
Inactive
jadewang-db
approved these changes
Jul 24, 2026
… (fork enqueue) `Node.js Integration Tests` is now a required status check. The PR-open placeholder was posted by an inline job via `github.token`, which 403s on fork PRs (read-only token), so fork PRs could never satisfy the required check and were stuck out of the merge queue. Replace the inline stub with a companion `skip-checks-reporter.yml` triggered by `workflow_run`. It runs in the base-repo context with a read-write token even for fork-triggered runs, so it posts `Node.js Integration Tests`=success on every PR head — fork or not — letting all PRs auto-enqueue with no label. The check is unpinned in the ruleset, so the github.token (github-actions) check satisfies it; no app token/secrets are needed in the reporter, and it never checks out or runs PR/fork content. The real suite still runs as the required gate on the merge_group commit (driver-test app) and as a label preview on internal PRs. Co-authored-by: Isaac Signed-off-by: eric-wang-1990 <115501094+eric-wang-1990@users.noreply.github.com>
eric-wang-1990
temporarily deployed
to
azure-prod
July 24, 2026 22:35 — with
GitHub Actions
Inactive
eric-wang-1990
temporarily deployed
to
azure-prod
July 24, 2026 22:35 — with
GitHub Actions
Inactive
eric-wang-1990
temporarily deployed
to
azure-prod
July 24, 2026 22:35 — with
GitHub Actions
Inactive
eric-wang-1990
temporarily deployed
to
azure-prod
July 24, 2026 22:35 — with
GitHub Actions
Inactive
Switch the skip-checks-reporter to mint the INTEGRATION_TEST_APP token (scoped to this repo) and post `Node.js Integration Tests` as the driver-test app, instead of github.token. This matches the ruleset pinning the required check to that app's integration id — a github.token (github-actions) check would not satisfy a pinned gate. Secrets are available because the reporter runs in the base-repo context via workflow_run, so this also works for fork PRs. Mirrors databricks-sql-go. Co-authored-by: Isaac Signed-off-by: eric-wang-1990 <115501094+eric-wang-1990@users.noreply.github.com>
eric-wang-1990
temporarily deployed
to
azure-prod
July 24, 2026 22:42 — with
GitHub Actions
Inactive
eric-wang-1990
had a problem deploying
to
azure-prod
July 24, 2026 22:42 — with
GitHub Actions
Failure
eric-wang-1990
had a problem deploying
to
azure-prod
July 24, 2026 22:42 — with
GitHub Actions
Failure
eric-wang-1990
temporarily deployed
to
azure-prod
July 24, 2026 22:42 — with
GitHub Actions
Inactive
Condense the explanatory comments on the e2e-test/coverage/codecov fork guards to one line each; logic unchanged. Co-authored-by: Isaac Signed-off-by: eric-wang-1990 <115501094+eric-wang-1990@users.noreply.github.com>
eric-wang-1990
temporarily deployed
to
azure-prod
July 24, 2026 23:08 — with
GitHub Actions
Inactive
eric-wang-1990
temporarily deployed
to
azure-prod
July 24, 2026 23:08 — with
GitHub Actions
Inactive
eric-wang-1990
temporarily deployed
to
azure-prod
July 24, 2026 23:08 — with
GitHub Actions
Inactive
eric-wang-1990
temporarily deployed
to
azure-prod
July 24, 2026 23:08 — with
GitHub Actions
Inactive
Rewrite the coverage gate from `!cancelled() && ... && e2e != 'failure'` to the positive `unit == success && (e2e == success || e2e == skipped)`. Same behavior — runs when e2e passed or was skipped (fork PRs), a real e2e failure still blocks — but reads directly and also treats a cancelled e2e as "don't run" rather than letting it through. Co-authored-by: Isaac Signed-off-by: eric-wang-1990 <115501094+eric-wang-1990@users.noreply.github.com>
eric-wang-1990
temporarily deployed
to
azure-prod
July 24, 2026 23:24 — with
GitHub Actions
Inactive
eric-wang-1990
temporarily deployed
to
azure-prod
July 24, 2026 23:24 — with
GitHub Actions
Inactive
eric-wang-1990
temporarily deployed
to
azure-prod
July 24, 2026 23:24 — with
GitHub Actions
Inactive
eric-wang-1990
temporarily deployed
to
azure-prod
July 24, 2026 23:24 — with
GitHub Actions
Inactive
`prettier . --check` (the lint job) covers .github; the new reporter used double-quoted `workflows:` which violates the repo's singleQuote rule. Reformat. Co-authored-by: Isaac Signed-off-by: eric-wang-1990 <115501094+eric-wang-1990@users.noreply.github.com>
eric-wang-1990
temporarily deployed
to
azure-prod
July 24, 2026 23:26 — with
GitHub Actions
Inactive
eric-wang-1990
temporarily deployed
to
azure-prod
July 24, 2026 23:26 — with
GitHub Actions
Inactive
eric-wang-1990
temporarily deployed
to
azure-prod
July 24, 2026 23:26 — with
GitHub Actions
Inactive
eric-wang-1990
temporarily deployed
to
azure-prod
July 24, 2026 23:26 — with
GitHub Actions
Inactive
|
Node.js integration tests triggered. View workflow runs. The result posts back here as the "Node.js Integration Tests" check. |
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.
Summary
Wires databricks-sql-nodejs into the multi-language coverage fan-out in
databricks/databricks-driver-test. When a PR merges tomainand touched driver source (a file underlib/), dispatch acoverage-fanoutrepository_dispatchto driver-test; itscoverage-fanout-tracker.ymlopens a tracking issue and runs the language-agnostic fan-out — a spec authored from this PR's diff, conformed as tests across every driver (csharp/python/go/nodejs/rust/kernel/jdbc).Same sender
adbc-drivers/databricksalready runs; this is one of a set of sibling PRs bringing the remaining driver repos onto the flow.What it does
closedto thepull_requesttrigger types; the newtrigger-coverage-fanoutjob gates ongithub.event.pull_request.merged == true.lib/): docs/CI/test-only merges don't kick off a full 7-leg fan-out.INTEGRATION_TEST_APP_ID/_PRIVATE_KEYApp token (scoped to driver-test) + the samepeter-evans/repository-dispatchpin adbc uses.skip-integration-tests-pr's guard to excludeclosedso it doesn't re-stamp a check on merged PRs.Test Plan
closedevent.coverage-fanoutdispatch + a new tracking issue indatabricks/databricks-driver-test.This pull request and its description were written by Isaac.