Skip to content

[WIP] Add the testing property of pipelines to bundles - #7274

Draft
tharunbhuk-db wants to merge 30 commits into
databricks:mainfrom
tharunbhuk-db:tharun/pipelines-test-pr4-bundles
Draft

tharunbhuk-db wants to merge 30 commits into
databricks:mainfrom
tharunbhuk-db:tharun/pipelines-test-pr4-bundles

Conversation

@tharunbhuk-db

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

Copy link
Copy Markdown

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

Changes

  • Add resources.pipelines.<key>.testing, with the test sources and test-only dependencies that databricks pipelines test runs with.
  • Relative paths in testing are translated like libraries. bundle validate catches common mistakes in test dependencies, such as package names, URLs and a requirements file without -r.
  • Local wheels in test dependencies are uploaded like other libraries, and the same-name check covers them, so two wheels with one file name cannot overwrite each other.
  • bundle plan shows changes to testing made outside the bundle, and bundle deploy undoes them.
  • A local project folder after -e, such as -e ./project[test], now maps to its deployed folder instead of failing.

Why

A bundle needs to declare where a pipeline's tests and their dependencies live. The CLI uses its own types and raw calls for testing, because the Go SDK does not have the field yet. Depends on API support for testing on Create and Edit. Keep as draft until then.

Tests

  • Unit tests for path translation, the dependency checks and the read-back.
  • Acceptance tests in acceptance/bundle/resources/pipelines/testing*, acceptance/bundle/environments/editable-folder and acceptance/pipelines/test. The live test also installs a local test dependency.

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-pr4-bundles branch from cae44ca to a0679e5 Compare October 30, 2026 19:02
@tharunbhuk-db tharunbhuk-db changed the title Add the testing property of pipelines to bundles [WIP] Add the testing property of pipelines to bundles Oct 30, 2026
@tharunbhuk-db
tharunbhuk-db force-pushed the tharun/pipelines-test-pr4-bundles branch from a0679e5 to 4cab641 Compare October 31, 2026 19:59
@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: 7274
  • Commit SHA: 4cab64126e8cabc49e750b8cd4acd6756e25162b

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