Skip to content

[WIP] Wait for and print the results of databricks pipelines test - #7272

Draft
tharunbhuk-db wants to merge 22 commits into
databricks:mainfrom
tharunbhuk-db:tharun/pipelines-test-pr2-output
Draft

tharunbhuk-db wants to merge 22 commits into
databricks:mainfrom
tharunbhuk-db:tharun/pipelines-test-pr2-output

Conversation

@tharunbhuk-db

@tharunbhuk-db tharunbhuk-db commented Oct 30, 2026 •

Copy link
Copy Markdown

Stack 2/4: #7271 command · #7272 output · #7273 JUnit · #7274 bundles. Builds on #7271.
This PR's changes: tharunbhuk-db/cli@tharun/pipelines-test-pr1-command...tharun/pipelines-test-pr2-output
Design doc: https://docs.google.com/document/d/1atW-JG_hQu-G-YX-m1M7OodNZdH7LMc9H7CBlQAv5gw/edit

Changes

  • Wait for the test-only update, and print each test case as it finishes, the failure details and a summary line. Test IDs are shown in the shortest form that selects the test again.
  • --no-wait, --resume <update-id> and --timeout. A timeout or Ctrl+C ends only the local wait and prints the --resume command. --resume rejects a value that is not an update ID, and an update that the service reports is not a test update.
  • Exit code 0 only for a complete, passing run. Otherwise exit code 1, with RUN INCOMPLETE: <reason> when results are missing.

Why

CI needs the results in the log, and an exit code that fails the build when a test fails. The events are read with a raw call, because the Go SDK does not have their test fields yet, and its iterator repeats order_by with page_token, which the service rejects.

Tests

  • Unit tests for the event reader, the completeness check, the output, the exit-code rules and the fake service.
  • Acceptance tests in acceptance/pipelines/test/{results,run-control,many-cases,pipeline-id,selection,immutable,arguments}.

This pull request and its description were written by Isaac.

tharunbhuk-db and others added 4 commits October 30, 2026 18:22
Submits a test-only pipeline update with optional test selections and
pytest arguments. Relative selections resolve to deployed workspace
paths through the bundle sync root, or against the pipeline's root_path
when the pipeline is identified with --pipeline-id. Only -k and -m are
accepted in --pytest-arg.

Co-authored-by: Isaac <no-reply@databricks.com>
Cover each rejected pytest option with a unit test, and add an acceptance
case for `--pytest-arg VALUE`, which keeps commas and spaces.

Co-authored-by: Isaac <no-reply@databricks.com>
The service names a test case relative to pytest's rootdir: the deepest
folder that holds the pipeline's root_path and every test source, or,
without a root_path, the folder of every test source. A test ID copied
from the results now runs that test again in any project layout.

A relative selection that exists locally still maps to its deployed
path. Any other relative selection resolves against that folder, which
the command reads from the deployed pipeline. With --pipeline-id, all
relative selections resolve against it.

Co-authored-by: Isaac <no-reply@databricks.com>
…nd preview

A local test path mapped to workspace.file_path in every sync mode. A
source-linked deployment runs the source files, so a local path now maps
under the sync root, as TranslatePaths maps resource paths. An immutable
deployment runs a snapshot whose path the command does not know, so a
local path is an error there that points to test IDs and workspace
paths, which still work.

The folder of test IDs is read once, and only when a selection is a
relative path. Paths in errors use forward slashes. The Short text
starts with *Preview*, like other preview commands.

Tests: the option list covers each rejected form once, and a folder test
source without root_path has its parent as the folder of test IDs, as
the service computes it.

Co-authored-by: Isaac <no-reply@databricks.com>
Co-authored-by: Isaac <no-reply@databricks.com>
@github-actions

Copy link
Copy Markdown
Contributor

Thanks for the contribution! This pull request was opened from a fork.

If you're a member of the Databricks organization, please request access to the cli-contrib team and open your pull request from a branch in this repository instead of a fork — fork PRs don't run integration tests automatically and have reduced CI access.

If you're an external contributor, no action is needed; a maintainer will review your pull request.

@github-actions github-actions Bot added the DABs DABs related issues label Oct 30, 2026
@tharunbhuk-db
tharunbhuk-db force-pushed the tharun/pipelines-test-pr2-output branch from 4e3b1bb to 562d106 Compare October 30, 2026 19:02
@tharunbhuk-db tharunbhuk-db changed the title Wait for and print the results of databricks pipelines test [WIP] Wait for and print the results of databricks pipelines test Oct 30, 2026
@tharunbhuk-db
tharunbhuk-db force-pushed the tharun/pipelines-test-pr2-output branch from 562d106 to 3ecf053 Compare October 31, 2026 18:39
@github-actions

Copy link
Copy Markdown
Contributor

An authorized user can trigger integration tests manually by following the instructions below:

Trigger:
go/deco-tests-run/cli

Inputs:

  • PR number: 7272
  • Commit SHA: 6cba663cbd7a11f08bfec2bde1114b6b6d062bde

Checks will be approved automatically on success.

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

DABs DABs related issues

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant