Skip to content

Make bundle command error more actionable if run without databricks.yml - #5953

Merged
janniklasrose merged 5 commits into
mainfrom
janniklasrose/bundle-warn-on-missing-databricks-yml
Jul 21, 2026
Merged

Make bundle command error more actionable if run without databricks.yml#5953
janniklasrose merged 5 commits into
mainfrom
janniklasrose/bundle-warn-on-missing-databricks-yml

Conversation

@janniklasrose

Copy link
Copy Markdown
Contributor

Add a hint to bundle commands to run bundle init or change directory since databricks.yml wasn't found.

@eng-dev-ecosystem-bot

eng-dev-ecosystem-bot commented Jul 17, 2026

Copy link
Copy Markdown
Collaborator

Integration test report

Commit: efe4304

Run: 29751707655

Env💚​RECOVERED🙈​SKIP✅​pass🙈​skipTime
💚​aws linux4422711293:35
💚​aws windows4422911273:38
💚​aws-ucws linux4431410466:25
💚​aws-ucws windows4431610445:19
💚​azure linux4422711283:30
💚​azure windows4422911263:32
💚​azure-ucws linux4431610435:18
💚​azure-ucws windows4431810414:35
💚​gcp linux4422611303:11
💚​gcp windows4422811283:42
8 interesting tests: 4 RECOVERED, 4 SKIP
Test Nameaws linuxaws windowsaws-ucws linuxaws-ucws windowsazure linuxazure windowsazure-ucws linuxazure-ucws windowsgcp linuxgcp windows
💚​TestAccept💚​R💚​R💚​R💚​R💚​R💚​R💚​R💚​R💚​R💚​R
🙈​TestAccept/bundle/invariant/no_drift🙈​S🙈​S🙈​S🙈​S🙈​S🙈​S🙈​S🙈​S🙈​S🙈​S
🙈​TestAccept/bundle/resources/vector_search_endpoints/drift/recreated_same_name🙈​S🙈​S🙈​S🙈​S🙈​S🙈​S🙈​S🙈​S🙈​S🙈​S
🙈​TestAccept/bundle/resources/vector_search_indexes/recreate/embedding_dimension🙈​S🙈​S🙈​S🙈​S🙈​S🙈​S🙈​S🙈​S🙈​S🙈​S
🙈​TestAccept/ssh/connection🙈​S🙈​S🙈​S🙈​S🙈​S🙈​S🙈​S🙈​S🙈​S🙈​S
💚​TestFetchRepositoryInfoAPI_FromRepo💚​R💚​R💚​R💚​R💚​R💚​R💚​R💚​R💚​R💚​R
💚​TestFetchRepositoryInfoAPI_FromRepo/root💚​R💚​R💚​R💚​R💚​R💚​R💚​R💚​R💚​R💚​R
💚​TestFetchRepositoryInfoAPI_FromRepo/subdir💚​R💚​R💚​R💚​R💚​R💚​R💚​R💚​R💚​R💚​R
Top 5 slowest tests (at least 2 minutes):
durationenvtestname
3:17gcp windowsTestAccept
3:13aws windowsTestAccept
3:07azure windowsTestAccept
2:59azure-ucws windowsTestAccept
2:55aws-ucws windowsTestAccept

Comment threadbundle/root.go Outdated
}

return "", fmt.Errorf(`unable to locate bundle root: %s not found`, config.FileNames[0])
return "", fmt.Errorf(`unable to locate bundle root: %s not found. Run 'databricks bundle init' to create a bundle, or run this command from a directory that already contains one`, config.FileNames[0])

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I wonder if we can use a diag here to make it render nicer.

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It already gets printed via logdiag.LogError inside the caller's err != nil but that lacks the Details field. Can do a follow-up to have bundle/root.go return diag.Diagnostics instead for richer errors

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Addressed in the current PR instead to make errors prettier. Please review 🙂

@lennartkats-dblennartkats-db left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice, thanks!

@janniklasrose
janniklasrose added this pull request to the merge queueJul 21, 2026
Merged via the queue into main with commit c8746beJul 21, 2026
28 checks passed
@janniklasrose
janniklasrose deleted the janniklasrose/bundle-warn-on-missing-databricks-yml branch July 21, 2026 20:43
@eng-dev-ecosystem-bot

Copy link
Copy Markdown
Collaborator

Integration test report

Commit: c8746be

Run: 29867025159

Env❌​FAIL🟨​KNOWN💚​RECOVERED🙈​SKIP✅​pass🙈​skipTime
❌​aws linux6423323458738:37
❌​aws windows58233234789117:40
❌​azure linux52033236290914:01
❌​azure windows48333234192717:43
❌​gcp linux44051243091528:23
❌​gcp windows43833237493326:02
653 interesting tests: 645 FAIL, 6 KNOWN, 2 SKIP
Test Nameaws linuxaws windowsazure linuxazure windowsgcp linuxgcp windows
🟨​TestAccept🟨​K🟨​K🟨​K🟨​K🟨​K🟨​K
❌​TestAccept/bundle/apps/compute_size❌​F❌​F✅​p❌​F✅​p✅​p
❌​TestAccept/bundle/apps/compute_size/DATABRICKS_BUNDLE_ENGINE=direct❌​F❌​F✅​p❌​F✅​p✅​p
❌​TestAccept/bundle/apps/compute_size/DATABRICKS_BUNDLE_ENGINE=terraform❌​F❌​F✅​p❌​F✅​p✅​p
❌​TestAccept/bundle/apps/job_permissions❌​F❌​F❌​F❌​F❌​F❌​F
❌​TestAccept/bundle/apps/job_permissions/DATABRICKS_BUNDLE_ENGINE=direct❌​F❌​F❌​F❌​F❌​F❌​F
❌​TestAccept/bundle/apps/job_permissions/DATABRICKS_BUNDLE_ENGINE=terraform❌​F❌​F❌​F❌​F❌​F❌​F
❌​TestAccept/bundle/config-remote-sync/cli_defaults❌​F🙈​s❌​F🙈​s❌​F🙈​s
❌​TestAccept/bundle/config-remote-sync/cli_defaults/DATABRICKS_BUNDLE_ENGINE=direct❌​F❌​F❌​F
❌​TestAccept/bundle/config-remote-sync/cli_defaults/DATABRICKS_BUNDLE_ENGINE=terraform❌​F❌​F❌​F
❌​TestAccept/bundle/config-remote-sync/config_edits❌​F🙈​s❌​F🙈​s❌​F🙈​s
❌​TestAccept/bundle/config-remote-sync/config_edits/DATABRICKS_BUNDLE_ENGINE=direct❌​F❌​F❌​F
❌​TestAccept/bundle/config-remote-sync/config_edits/DATABRICKS_BUNDLE_ENGINE=terraform❌​F❌​F❌​F
❌​TestAccept/bundle/config-remote-sync/dashboard_etag❌​F🙈​s❌​F🙈​s❌​F🙈​s
❌​TestAccept/bundle/config-remote-sync/dashboard_etag/DATABRICKS_BUNDLE_ENGINE=direct❌​F❌​F❌​F
❌​TestAccept/bundle/config-remote-sync/dashboard_etag/DATABRICKS_BUNDLE_ENGINE=terraform❌​F❌​F❌​F
❌​TestAccept/bundle/config-remote-sync/flushed_cache❌​F🙈​s❌​F🙈​s❌​F🙈​s
❌​TestAccept/bundle/config-remote-sync/flushed_cache/DATABRICKS_BUNDLE_ENGINE=direct❌​F❌​F❌​F
❌​TestAccept/bundle/config-remote-sync/flushed_cache/DATABRICKS_BUNDLE_ENGINE=terraform❌​F❌​F❌​F
❌​TestAccept/bundle/config-remote-sync/formatting_preserved❌​F🙈​s❌​F🙈​s❌​F🙈​s
❌​TestAccept/bundle/config-remote-sync/formatting_preserved/DATABRICKS_BUNDLE_ENGINE=direct❌​F❌​F❌​F
❌​TestAccept/bundle/config-remote-sync/formatting_preserved/DATABRICKS_BUNDLE_ENGINE=terraform❌​F❌​F❌​F
❌​TestAccept/bundle/config-remote-sync/job_fields❌​F🙈​s❌​F🙈​s❌​F🙈​s
❌​TestAccept/bundle/config-remote-sync/job_fields/DATABRICKS_BUNDLE_ENGINE=direct❌​F❌​F❌​F
❌​TestAccept/bundle/config-remote-sync/job_fields/DATABRICKS_BUNDLE_ENGINE=terraform❌​F❌​F❌​F
❌​TestAccept/bundle/config-remote-sync/job_multiple_tasks❌​F🙈​s❌​F🙈​s❌​F🙈​s
❌​TestAccept/bundle/config-remote-sync/job_multiple_tasks/DATABRICKS_BUNDLE_ENGINE=direct❌​F❌​F❌​F
❌​TestAccept/bundle/config-remote-sync/job_multiple_tasks/DATABRICKS_BUNDLE_ENGINE=terraform❌​F❌​F❌​F
❌​TestAccept/bundle/config-remote-sync/job_params_variables❌​F🙈​s❌​F🙈​s❌​F🙈​s
❌​TestAccept/bundle/config-remote-sync/job_params_variables/DATABRICKS_BUNDLE_ENGINE=direct❌​F❌​F❌​F
❌​TestAccept/bundle/config-remote-sync/job_params_variables/DATABRICKS_BUNDLE_ENGINE=terraform❌​F❌​F❌​F
❌​TestAccept/bundle/config-remote-sync/job_pipeline_task❌​F🙈​s❌​F🙈​s❌​F🙈​s
❌​TestAccept/bundle/config-remote-sync/job_pipeline_task/DATABRICKS_BUNDLE_ENGINE=direct❌​F❌​F❌​F
❌​TestAccept/bundle/config-remote-sync/job_pipeline_task/DATABRICKS_BUNDLE_ENGINE=terraform❌​F❌​F❌​F
❌​TestAccept/bundle/config-remote-sync/multiple_files❌​F🙈​s❌​F🙈​s❌​F🙈​s
❌​TestAccept/bundle/config-remote-sync/multiple_files/DATABRICKS_BUNDLE_ENGINE=direct❌​F❌​F❌​F
❌​TestAccept/bundle/config-remote-sync/multiple_files/DATABRICKS_BUNDLE_ENGINE=terraform❌​F❌​F❌​F
❌​TestAccept/bundle/config-remote-sync/multiple_resources❌​F🙈​s❌​F🙈​s❌​F🙈​s
❌​TestAccept/bundle/config-remote-sync/multiple_resources/DATABRICKS_BUNDLE_ENGINE=direct❌​F❌​F❌​F
❌​TestAccept/bundle/config-remote-sync/multiple_resources/DATABRICKS_BUNDLE_ENGINE=terraform❌​F❌​F❌​F
❌​TestAccept/bundle/config-remote-sync/output_json❌​F🙈​s❌​F🙈​s❌​F🙈​s
❌​TestAccept/bundle/config-remote-sync/output_json/DATABRICKS_BUNDLE_ENGINE=direct❌​F❌​F❌​F
❌​TestAccept/bundle/config-remote-sync/output_json/DATABRICKS_BUNDLE_ENGINE=terraform❌​F❌​F❌​F
❌​TestAccept/bundle/config-remote-sync/output_no_changes❌​F🙈​s❌​F🙈​s❌​F🙈​s
❌​TestAccept/bundle/config-remote-sync/output_no_changes/DATABRICKS_BUNDLE_ENGINE=direct❌​F❌​F❌​F
❌​TestAccept/bundle/config-remote-sync/output_no_changes/DATABRICKS_BUNDLE_ENGINE=terraform❌​F❌​F❌​F
❌​TestAccept/bundle/config-remote-sync/pipeline_fields❌​F🙈​s❌​F🙈​s❌​F🙈​s
❌​TestAccept/bundle/config-remote-sync/pipeline_fields/DATABRICKS_BUNDLE_ENGINE=direct❌​F❌​F❌​F
❌​TestAccept/bundle/config-remote-sync/pipeline_fields/DATABRICKS_BUNDLE_ENGINE=terraform❌​F❌​F❌​F
❌​TestAccept/bundle/config-remote-sync/policy_injected_cluster_fields❌​F🙈​s❌​F🙈​s❌​F🙈​s
❌​TestAccept/bundle/config-remote-sync/policy_injected_cluster_fields/DATABRICKS_BUNDLE_ENGINE=direct❌​F❌​F❌​F
❌​TestAccept/bundle/config-remote-sync/policy_injected_cluster_fields/DATABRICKS_BUNDLE_ENGINE=terraform❌​F❌​F❌​F
❌​TestAccept/bundle/config-remote-sync/resolve_variables❌​F🙈​s❌​F🙈​s❌​F🙈​s
❌​TestAccept/bundle/config-remote-sync/resolve_variables/DATABRICKS_BUNDLE_ENGINE=direct❌​F❌​F❌​F
❌​TestAccept/bundle/config-remote-sync/resolve_variables/DATABRICKS_BUNDLE_ENGINE=terraform❌​F❌​F❌​F
❌​TestAccept/bundle/config-remote-sync/select_basic❌​F🙈​s❌​F🙈​s❌​F🙈​s
❌​TestAccept/bundle/config-remote-sync/select_basic/DATABRICKS_BUNDLE_ENGINE=direct❌​F❌​F❌​F
❌​TestAccept/bundle/config-remote-sync/select_basic/DATABRICKS_BUNDLE_ENGINE=terraform❌​F❌​F❌​F
❌​TestAccept/bundle/config-remote-sync/select_multiple❌​F🙈​s❌​F🙈​s❌​F🙈​s
❌​TestAccept/bundle/config-remote-sync/select_multiple/DATABRICKS_BUNDLE_ENGINE=direct❌​F❌​F❌​F
❌​TestAccept/bundle/config-remote-sync/select_multiple/DATABRICKS_BUNDLE_ENGINE=terraform❌​F❌​F❌​F
❌​TestAccept/bundle/config-remote-sync/target_override❌​F🙈​s❌​F🙈​s❌​F🙈​s
❌​TestAccept/bundle/config-remote-sync/target_override/DATABRICKS_BUNDLE_ENGINE=direct❌​F❌​F❌​F
❌​TestAccept/bundle/config-remote-sync/target_override/DATABRICKS_BUNDLE_ENGINE=terraform❌​F❌​F❌​F
❌​TestAccept/bundle/config-remote-sync/task_rename_revert❌​F🙈​s❌​F🙈​s❌​F🙈​s
❌​TestAccept/bundle/config-remote-sync/task_rename_revert/DATABRICKS_BUNDLE_ENGINE=direct❌​F❌​F❌​F
❌​TestAccept/bundle/config-remote-sync/task_rename_revert/DATABRICKS_BUNDLE_ENGINE=terraform❌​F❌​F❌​F
❌​TestAccept/bundle/deploy/empty-bundle❌​F❌​F❌​F❌​F❌​F❌​F
❌​TestAccept/bundle/deploy/empty-bundle/DATABRICKS_BUNDLE_ENABLE_EXPERIMENTAL_YAML_SYNC=/DATABRICKS_BUNDLE_ENGINE=direct❌​F❌​F❌​F❌​F❌​F❌​F
❌​TestAccept/bundle/deploy/empty-bundle/DATABRICKS_BUNDLE_ENABLE_EXPERIMENTAL_YAML_SYNC=/DATABRICKS_BUNDLE_ENGINE=terraform❌​F❌​F❌​F❌​F❌​F❌​F
❌​TestAccept/bundle/deploy/empty-bundle/DATABRICKS_BUNDLE_ENABLE_EXPERIMENTAL_YAML_SYNC=true/DATABRICKS_BUNDLE_ENGINE=direct❌​F❌​F❌​F❌​F❌​F❌​F
❌​TestAccept/bundle/deploy/empty-bundle/DATABRICKS_BUNDLE_ENABLE_EXPERIMENTAL_YAML_SYNC=true/DATABRICKS_BUNDLE_ENGINE=terraform❌​F❌​F❌​F❌​F❌​F❌​F
❌​TestAccept/bundle/deploy/files/no-snapshot-sync❌​F❌​F❌​F❌​F❌​F❌​F
❌​TestAccept/bundle/deploy/files/no-snapshot-sync/DATABRICKS_BUNDLE_ENGINE=direct❌​F❌​F❌​F❌​F❌​F❌​F
❌​TestAccept/bundle/deploy/files/no-snapshot-sync/DATABRICKS_BUNDLE_ENGINE=terraform❌​F❌​F❌​F❌​F❌​F❌​F
❌​TestAccept/bundle/deploy/mlops-stacks❌​F❌​F❌​F❌​F❌​F❌​F
❌​TestAccept/bundle/deploy/mlops-stacks/DATABRICKS_BUNDLE_ENGINE=direct❌​F❌​F❌​F❌​F❌​F❌​F
❌​TestAccept/bundle/deploy/mlops-stacks/DATABRICKS_BUNDLE_ENGINE=terraform❌​F❌​F❌​F❌​F❌​F❌​F
❌​TestAccept/bundle/deploy/snapshot-comparison❌​F❌​F❌​F❌​F❌​F❌​F
❌​TestAccept/bundle/deploy/snapshot-comparison/DATABRICKS_BUNDLE_ENGINE=terraform❌​F❌​F❌​F❌​F❌​F❌​F
❌​TestAccept/bundle/deploy/spark-jar-task❌​F❌​F❌​F❌​F❌​F❌​F
❌​TestAccept/bundle/deploy/spark-jar-task/DATABRICKS_BUNDLE_ENGINE=direct❌​F❌​F❌​F❌​F❌​F❌​F
❌​TestAccept/bundle/deploy/spark-jar-task/DATABRICKS_BUNDLE_ENGINE=terraform❌​F❌​F❌​F❌​F❌​F❌​F
❌​TestAccept/bundle/deployment/bind/alert❌​F❌​F❌​F❌​F❌​F❌​F
❌​TestAccept/bundle/deployment/bind/alert/DATABRICKS_BUNDLE_ENGINE=direct❌​F❌​F❌​F❌​F❌​F❌​F
❌​TestAccept/bundle/deployment/bind/alert/DATABRICKS_BUNDLE_ENGINE=terraform❌​F❌​F❌​F❌​F❌​F❌​F
❌​TestAccept/bundle/deployment/bind/catalog❌​F❌​F❌​F❌​F❌​F❌​F
❌​TestAccept/bundle/deployment/bind/catalog/DATABRICKS_BUNDLE_ENGINE=direct❌​F❌​F❌​F❌​F❌​F❌​F
❌​TestAccept/bundle/deployment/bind/cluster❌​F❌​F❌​F❌​F❌​F❌​F
❌​TestAccept/bundle/deployment/bind/cluster/DATABRICKS_BUNDLE_ENGINE=direct❌​F❌​F❌​F❌​F❌​F❌​F
❌​TestAccept/bundle/deployment/bind/cluster/DATABRICKS_BUNDLE_ENGINE=terraform❌​F❌​F❌​F❌​F❌​F❌​F
❌​TestAccept/bundle/deployment/bind/dashboard❌​F❌​F❌​F❌​F❌​F❌​F
❌​TestAccept/bundle/deployment/bind/dashboard/DATABRICKS_BUNDLE_ENGINE=direct❌​F❌​F❌​F❌​F❌​F❌​F
❌​TestAccept/bundle/deployment/bind/dashboard/DATABRICKS_BUNDLE_ENGINE=terraform❌​F❌​F❌​F❌​F❌​F❌​F
❌​TestAccept/bundle/deployment/bind/dashboard/recreation❌​F❌​F❌​F❌​F❌​F❌​F
❌​TestAccept/bundle/deployment/bind/dashboard/recreation/DATABRICKS_BUNDLE_ENGINE=direct❌​F❌​F❌​F❌​F❌​F❌​F
❌​TestAccept/bundle/deployment/bind/dashboard/recreation/DATABRICKS_BUNDLE_ENGINE=terraform❌​F❌​F❌​F❌​F❌​F❌​F
❌​TestAccept/bundle/deployment/bind/experiment❌​F❌​F❌​F❌​F❌​F❌​F
❌​TestAccept/bundle/deployment/bind/experiment/DATABRICKS_BUNDLE_ENGINE=direct❌​F❌​F❌​F❌​F❌​F❌​F
❌​TestAccept/bundle/deployment/bind/experiment/DATABRICKS_BUNDLE_ENGINE=terraform❌​F❌​F❌​F❌​F❌​F❌​F
❌​TestAccept/bundle/deployment/bind/job/generate-and-bind❌​F❌​F❌​F❌​F❌​F❌​F
❌​TestAccept/bundle/deployment/bind/job/generate-and-bind/DATABRICKS_BUNDLE_ENGINE=direct❌​F❌​F❌​F❌​F❌​F❌​F
❌​TestAccept/bundle/deployment/bind/job/generate-and-bind/DATABRICKS_BUNDLE_ENGINE=terraform❌​F❌​F❌​F❌​F❌​F❌​F
❌​TestAccept/bundle/deployment/bind/job/job-abort-bind❌​F❌​F❌​F❌​F❌​F❌​F
❌​TestAccept/bundle/deployment/bind/job/job-abort-bind/DATABRICKS_BUNDLE_ENGINE=direct❌​F❌​F❌​F❌​F❌​F❌​F
❌​TestAccept/bundle/deployment/bind/job/job-abort-bind/DATABRICKS_BUNDLE_ENGINE=terraform❌​F❌​F❌​F❌​F❌​F❌​F
❌​TestAccept/bundle/deployment/bind/job/job-spark-python-task❌​F❌​F❌​F❌​F❌​F❌​F
❌​TestAccept/bundle/deployment/bind/job/job-spark-python-task/DATABRICKS_BUNDLE_ENGINE=direct❌​F❌​F❌​F❌​F❌​F❌​F
❌​TestAccept/bundle/deployment/bind/job/job-spark-python-task/DATABRICKS_BUNDLE_ENGINE=terraform❌​F❌​F❌​F❌​F❌​F❌​F
❌​TestAccept/bundle/deployment/bind/model-serving-endpoint❌​F❌​F❌​F❌​F❌​F❌​F
❌​TestAccept/bundle/deployment/bind/model-serving-endpoint/DATABRICKS_BUNDLE_ENGINE=direct❌​F❌​F❌​F❌​F❌​F❌​F
❌​TestAccept/bundle/deployment/bind/model-serving-endpoint/DATABRICKS_BUNDLE_ENGINE=terraform❌​F❌​F❌​F❌​F❌​F❌​F
❌​TestAccept/bundle/deployment/bind/pipelines/recreate❌​F❌​F❌​F❌​F❌​F❌​F
❌​TestAccept/bundle/deployment/bind/pipelines/recreate/DATABRICKS_BUNDLE_ENGINE=direct❌​F❌​F❌​F❌​F❌​F❌​F
❌​TestAccept/bundle/deployment/bind/pipelines/recreate/DATABRICKS_BUNDLE_ENGINE=terraform❌​F❌​F❌​F❌​F❌​F❌​F
❌​TestAccept/bundle/deployment/bind/registered-model❌​F❌​F❌​F❌​F❌​F❌​F
❌​TestAccept/bundle/deployment/bind/registered-model/DATABRICKS_BUNDLE_ENGINE=direct❌​F❌​F❌​F❌​F❌​F❌​F
❌​TestAccept/bundle/deployment/bind/registered-model/DATABRICKS_BUNDLE_ENGINE=terraform❌​F❌​F❌​F❌​F❌​F❌​F
❌​TestAccept/bundle/deployment/bind/schema❌​F❌​F❌​F❌​F❌​F❌​F
❌​TestAccept/bundle/deployment/bind/schema/DATABRICKS_BUNDLE_ENGINE=direct❌​F❌​F❌​F❌​F❌​F❌​F
❌​TestAccept/bundle/deployment/bind/schema/DATABRICKS_BUNDLE_ENGINE=terraform❌​F❌​F❌​F❌​F❌​F❌​F
❌​TestAccept/bundle/deployment/bind/secret-scope❌​F❌​F❌​F❌​F❌​F❌​F
❌​TestAccept/bundle/deployment/bind/secret-scope/DATABRICKS_BUNDLE_ENGINE=direct❌​F❌​F❌​F❌​F❌​F❌​F
❌​TestAccept/bundle/deployment/bind/secret-scope/DATABRICKS_BUNDLE_ENGINE=terraform❌​F❌​F❌​F❌​F❌​F❌​F
❌​TestAccept/bundle/deployment/bind/vector_search_endpoint❌​F❌​F❌​F❌​F❌​F❌​F
❌​TestAccept/bundle/deployment/bind/vector_search_endpoint/DATABRICKS_BUNDLE_ENGINE=direct❌​F❌​F❌​F❌​F❌​F❌​F
❌​TestAccept/bundle/deployment/bind/volume❌​F❌​F❌​F❌​F❌​F❌​F
❌​TestAccept/bundle/deployment/bind/volume/DATABRICKS_BUNDLE_ENGINE=direct❌​F❌​F❌​F❌​F❌​F❌​F
❌​TestAccept/bundle/deployment/bind/volume/DATABRICKS_BUNDLE_ENGINE=terraform❌​F❌​F❌​F❌​F❌​F❌​F
❌​TestAccept/bundle/deployment/unbind/grants❌​F❌​F❌​F❌​F❌​F❌​F
❌​TestAccept/bundle/deployment/unbind/grants/DATABRICKS_BUNDLE_ENGINE=direct❌​F❌​F❌​F❌​F❌​F❌​F
❌​TestAccept/bundle/deployment/unbind/grants/DATABRICKS_BUNDLE_ENGINE=terraform❌​F❌​F❌​F❌​F❌​F❌​F
❌​TestAccept/bundle/deployment/unbind/permissions❌​F❌​F❌​F❌​F❌​F❌​F
❌​TestAccept/bundle/deployment/unbind/permissions/DATABRICKS_BUNDLE_ENGINE=direct❌​F❌​F❌​F❌​F❌​F❌​F
❌​TestAccept/bundle/deployment/unbind/permissions/DATABRICKS_BUNDLE_ENGINE=terraform❌​F❌​F❌​F❌​F❌​F❌​F
❌​TestAccept/bundle/destroy/jobs-and-pipeline❌​F❌​F❌​F❌​F❌​F❌​F
❌​TestAccept/bundle/destroy/jobs-and-pipeline/DATABRICKS_BUNDLE_ENGINE=direct❌​F❌​F❌​F❌​F❌​F❌​F
❌​TestAccept/bundle/destroy/jobs-and-pipeline/DATABRICKS_BUNDLE_ENGINE=terraform❌​F❌​F❌​F❌​F❌​F❌​F
❌​TestAccept/bundle/generate/auto-bind❌​F❌​F❌​F❌​F❌​F❌​F
❌​TestAccept/bundle/generate/auto-bind/DATABRICKS_BUNDLE_ENGINE=terraform❌​F❌​F❌​F❌​F❌​F❌​F
❌​TestAccept/bundle/generate/pipeline_and_deploy❌​F❌​F❌​F❌​F❌​F❌​F
❌​TestAccept/bundle/generate/pipeline_and_deploy/DATABRICKS_BUNDLE_ENGINE=direct❌​F❌​F❌​F❌​F❌​F❌​F
❌​TestAccept/bundle/generate/pipeline_and_deploy/DATABRICKS_BUNDLE_ENGINE=terraform❌​F❌​F❌​F❌​F❌​F❌​F
❌​TestAccept/bundle/generate/python_job_and_deploy❌​F❌​F❌​F❌​F❌​F✅​p
❌​TestAccept/bundle/generate/python_job_and_deploy/DATABRICKS_BUNDLE_ENGINE=direct❌​F❌​F❌​F❌​F❌​F✅​p
❌​TestAccept/bundle/generate/python_job_and_deploy/DATABRICKS_BUNDLE_ENGINE=terraform❌​F❌​F❌​F❌​F❌​F✅​p
❌​TestAccept/bundle/invariant/continue_293❌​F❌​F❌​F❌​F❌​F❌​F
❌​TestAccept/bundle/invariant/continue_293/DATABRICKS_BUNDLE_ENGINE=direct/INPUT_CONFIG=app.yml.tmpl❌​F❌​F❌​F❌​F❌​F❌​F
❌​TestAccept/bundle/invariant/continue_293/DATABRICKS_BUNDLE_ENGINE=direct/INPUT_CONFIG=catalog.yml.tmpl❌​F❌​F❌​F❌​F❌​F❌​F
❌​TestAccept/bundle/invariant/continue_293/DATABRICKS_BUNDLE_ENGINE=direct/INPUT_CONFIG=cluster.yml.tmpl❌​F❌​F❌​F❌​F❌​F❌​F
❌​TestAccept/bundle/invariant/continue_293/DATABRICKS_BUNDLE_ENGINE=direct/INPUT_CONFIG=cluster_apply_policy_default_values.yml.tmpl❌​F❌​F❌​F❌​F❌​F❌​F
❌​TestAccept/bundle/invariant/continue_293/DATABRICKS_BUNDLE_ENGINE=direct/INPUT_CONFIG=dashboard.yml.tmpl❌​F❌​F❌​F❌​F❌​F❌​F
❌​TestAccept/bundle/invariant/continue_293/DATABRICKS_BUNDLE_ENGINE=direct/INPUT_CONFIG=experiment.yml.tmpl❌​F❌​F❌​F❌​F❌​F❌​F
❌​TestAccept/bundle/invariant/continue_293/DATABRICKS_BUNDLE_ENGINE=direct/INPUT_CONFIG=job.yml.tmpl❌​F❌​F❌​F❌​F❌​F❌​F
❌​TestAccept/bundle/invariant/continue_293/DATABRICKS_BUNDLE_ENGINE=direct/INPUT_CONFIG=job_apply_policy_default_values_for_each_task.yml.tmpl❌​F❌​F❌​F❌​F❌​F❌​F
❌​TestAccept/bundle/invariant/continue_293/DATABRICKS_BUNDLE_ENGINE=direct/INPUT_CONFIG=job_apply_policy_default_values_job_cluster.yml.tmpl❌​F❌​F❌​F❌​F❌​F❌​F
❌​TestAccept/bundle/invariant/continue_293/DATABRICKS_BUNDLE_ENGINE=direct/INPUT_CONFIG=job_apply_policy_default_values_task_cluster.yml.tmpl❌​F❌​F❌​F❌​F❌​F❌​F
❌​TestAccept/bundle/invariant/continue_293/DATABRICKS_BUNDLE_ENGINE=direct/INPUT_CONFIG=job_pydabs_10_tasks.yml.tmpl❌​F❌​F❌​F❌​F❌​F❌​F
❌​TestAccept/bundle/invariant/continue_293/DATABRICKS_BUNDLE_ENGINE=direct/INPUT_CONFIG=job_with_depends_on.yml.tmpl❌​F❌​F✅​p❌​F❌​F❌​F
❌​TestAccept/bundle/invariant/continue_293/DATABRICKS_BUNDLE_ENGINE=direct/INPUT_CONFIG=job_with_task.yml.tmpl❌​F❌​F❌​F❌​F❌​F❌​F
❌​TestAccept/bundle/invariant/continue_293/DATABRICKS_BUNDLE_ENGINE=direct/INPUT_CONFIG=model.yml.tmpl❌​F❌​F❌​F❌​F❌​F❌​F
❌​TestAccept/bundle/invariant/continue_293/DATABRICKS_BUNDLE_ENGINE=direct/INPUT_CONFIG=model_serving_endpoint.yml.tmpl❌​F❌​F❌​F❌​F❌​F❌​F
❌​TestAccept/bundle/invariant/continue_293/DATABRICKS_BUNDLE_ENGINE=direct/INPUT_CONFIG=pipeline.yml.tmpl❌​F❌​F❌​F❌​F❌​F❌​F
❌​TestAccept/bundle/invariant/continue_293/DATABRICKS_BUNDLE_ENGINE=direct/INPUT_CONFIG=pipeline_apply_policy_default_values.yml.tmpl❌​F❌​F❌​F❌​F❌​F❌​F
❌​TestAccept/bundle/invariant/continue_293/DATABRICKS_BUNDLE_ENGINE=direct/INPUT_CONFIG=registered_model.yml.tmpl❌​F❌​F❌​F❌​F❌​F❌​F
❌​TestAccept/bundle/invariant/continue_293/DATABRICKS_BUNDLE_ENGINE=direct/INPUT_CONFIG=schema.yml.tmpl❌​F❌​F✅​p❌​F✅​p❌​F
❌​TestAccept/bundle/invariant/continue_293/DATABRICKS_BUNDLE_ENGINE=direct/INPUT_CONFIG=schema_uppercase_name.yml.tmpl❌​F❌​F❌​F❌​F❌​F❌​F
❌​TestAccept/bundle/invariant/continue_293/DATABRICKS_BUNDLE_ENGINE=direct/INPUT_CONFIG=secret_scope.yml.tmpl❌​F❌​F❌​F❌​F❌​F❌​F
❌​TestAccept/bundle/invariant/continue_293/DATABRICKS_BUNDLE_ENGINE=direct/INPUT_CONFIG=secret_scope_default_backend_type.yml.tmpl❌​F❌​F❌​F❌​F❌​F❌​F
❌​TestAccept/bundle/invariant/continue_293/DATABRICKS_BUNDLE_ENGINE=direct/INPUT_CONFIG=sql_warehouse.yml.tmpl❌​F❌​F❌​F❌​F❌​F❌​F
❌​TestAccept/bundle/invariant/continue_293/DATABRICKS_BUNDLE_ENGINE=direct/INPUT_CONFIG=volume.yml.tmpl❌​F❌​F❌​F❌​F❌​F❌​F
❌​TestAccept/bundle/invariant/continue_293/DATABRICKS_BUNDLE_ENGINE=direct/INPUT_CONFIG=volume_uppercase_name.yml.tmpl❌​F❌​F❌​F❌​F❌​F❌​F
❌​TestAccept/bundle/invariant/migrate❌​F❌​F❌​F❌​F❌​F❌​F
❌​TestAccept/bundle/invariant/migrate/DATABRICKS_BUNDLE_ENGINE=direct/INPUT_CONFIG=app.yml.tmpl❌​F❌​F❌​F❌​F❌​F❌​F
❌​TestAccept/bundle/invariant/migrate/DATABRICKS_BUNDLE_ENGINE=direct/INPUT_CONFIG=cluster.yml.tmpl❌​F❌​F❌​F❌​F❌​F❌​F
❌​TestAccept/bundle/invariant/migrate/DATABRICKS_BUNDLE_ENGINE=direct/INPUT_CONFIG=cluster_apply_policy_default_values.yml.tmpl❌​F❌​F❌​F❌​F❌​F❌​F
❌​TestAccept/bundle/invariant/migrate/DATABRICKS_BUNDLE_ENGINE=direct/INPUT_CONFIG=dashboard.yml.tmpl❌​F❌​F❌​F❌​F❌​F❌​F
❌​TestAccept/bundle/invariant/migrate/DATABRICKS_BUNDLE_ENGINE=direct/INPUT_CONFIG=experiment.yml.tmpl❌​F❌​F❌​F❌​F❌​F❌​F
❌​TestAccept/bundle/invariant/migrate/DATABRICKS_BUNDLE_ENGINE=direct/INPUT_CONFIG=job.yml.tmpl❌​F❌​F❌​F❌​F❌​F❌​F
❌​TestAccept/bundle/invariant/migrate/DATABRICKS_BUNDLE_ENGINE=direct/INPUT_CONFIG=job_apply_policy_default_values_for_each_task.yml.tmpl❌​F❌​F❌​F❌​F❌​F❌​F
❌​TestAccept/bundle/invariant/migrate/DATABRICKS_BUNDLE_ENGINE=direct/INPUT_CONFIG=job_apply_policy_default_values_job_cluster.yml.tmpl❌​F❌​F❌​F❌​F❌​F❌​F
❌​TestAccept/bundle/invariant/migrate/DATABRICKS_BUNDLE_ENGINE=direct/INPUT_CONFIG=job_apply_policy_default_values_task_cluster.yml.tmpl❌​F❌​F❌​F❌​F❌​F❌​F
❌​TestAccept/bundle/invariant/migrate/DATABRICKS_BUNDLE_ENGINE=direct/INPUT_CONFIG=job_pydabs_10_tasks.yml.tmpl❌​F❌​F❌​F❌​F❌​F❌​F
❌​TestAccept/bundle/invariant/migrate/DATABRICKS_BUNDLE_ENGINE=direct/INPUT_CONFIG=job_with_depends_on.yml.tmpl❌​F❌​F❌​F❌​F❌​F❌​F
❌​TestAccept/bundle/invariant/migrate/DATABRICKS_BUNDLE_ENGINE=direct/INPUT_CONFIG=job_with_task.yml.tmpl❌​F❌​F❌​F❌​F❌​F❌​F
❌​TestAccept/bundle/invariant/migrate/DATABRICKS_BUNDLE_ENGINE=direct/INPUT_CONFIG=model.yml.tmpl❌​F❌​F❌​F❌​F❌​F❌​F
❌​TestAccept/bundle/invariant/migrate/DATABRICKS_BUNDLE_ENGINE=direct/INPUT_CONFIG=model_serving_endpoint.yml.tmpl❌​F❌​F❌​F❌​F❌​F❌​F
❌​TestAccept/bundle/invariant/migrate/DATABRICKS_BUNDLE_ENGINE=direct/INPUT_CONFIG=model_with_permissions.yml.tmpl❌​F❌​F❌​F❌​F❌​F❌​F
❌​TestAccept/bundle/invariant/migrate/DATABRICKS_BUNDLE_ENGINE=direct/INPUT_CONFIG=pipeline.yml.tmpl❌​F❌​F❌​F❌​F❌​F❌​F
❌​TestAccept/bundle/invariant/migrate/DATABRICKS_BUNDLE_ENGINE=direct/INPUT_CONFIG=pipeline_apply_policy_default_values.yml.tmpl❌​F❌​F❌​F❌​F❌​F❌​F
❌​TestAccept/bundle/invariant/migrate/DATABRICKS_BUNDLE_ENGINE=direct/INPUT_CONFIG=pipeline_config_dots.yml.tmpl❌​F❌​F❌​F❌​F❌​F❌​F
❌​TestAccept/bundle/invariant/migrate/DATABRICKS_BUNDLE_ENGINE=direct/INPUT_CONFIG=registered_model.yml.tmpl❌​F❌​F❌​F❌​F❌​F❌​F
❌​TestAccept/bundle/invariant/migrate/DATABRICKS_BUNDLE_ENGINE=direct/INPUT_CONFIG=schema.yml.tmpl❌​F❌​F❌​F❌​F❌​F❌​F
❌​TestAccept/bundle/invariant/migrate/DATABRICKS_BUNDLE_ENGINE=direct/INPUT_CONFIG=schema_uppercase_name.yml.tmpl❌​F❌​F❌​F❌​F❌​F❌​F
❌​TestAccept/bundle/invariant/migrate/DATABRICKS_BUNDLE_ENGINE=direct/INPUT_CONFIG=secret_scope.yml.tmpl❌​F❌​F❌​F❌​F❌​F❌​F
❌​TestAccept/bundle/invariant/migrate/DATABRICKS_BUNDLE_ENGINE=direct/INPUT_CONFIG=secret_scope_default_backend_type.yml.tmpl❌​F❌​F❌​F❌​F❌​F❌​F
❌​TestAccept/bundle/invariant/migrate/DATABRICKS_BUNDLE_ENGINE=direct/INPUT_CONFIG=volume.yml.tmpl❌​F❌​F❌​F❌​F❌​F❌​F
❌​TestAccept/bundle/invariant/migrate/DATABRICKS_BUNDLE_ENGINE=direct/INPUT_CONFIG=volume_path_job_ref.yml.tmpl❌​F❌​F❌​F❌​F❌​F❌​F
🟨​TestAccept/bundle/invariant/no_drift🟨​K🟨​K🟨​K🟨​K🟨​K🟨​K
❌​TestAccept/bundle/invariant/no_drift/DATABRICKS_BUNDLE_ENGINE=direct/INPUT_CONFIG=app.yml.tmpl/READPLAN=❌​F❌​F❌​F❌​F❌​F❌​F
❌​TestAccept/bundle/invariant/no_drift/DATABRICKS_BUNDLE_ENGINE=direct/INPUT_CONFIG=app.yml.tmpl/READPLAN=1❌​F❌​F❌​F❌​F❌​F❌​F
❌​TestAccept/bundle/invariant/no_drift/DATABRICKS_BUNDLE_ENGINE=direct/INPUT_CONFIG=catalog.yml.tmpl/READPLAN=❌​F❌​F❌​F❌​F❌​F❌​F
❌​TestAccept/bundle/invariant/no_drift/DATABRICKS_BUNDLE_ENGINE=direct/INPUT_CONFIG=catalog.yml.tmpl/READPLAN=1❌​F❌​F❌​F❌​F❌​F❌​F
❌​TestAccept/bundle/invariant/no_drift/DATABRICKS_BUNDLE_ENGINE=direct/INPUT_CONFIG=cluster.yml.tmpl/READPLAN=❌​F❌​F❌​F❌​F❌​F❌​F
❌​TestAccept/bundle/invariant/no_drift/DATABRICKS_BUNDLE_ENGINE=direct/INPUT_CONFIG=cluster.yml.tmpl/READPLAN=1❌​F❌​F❌​F❌​F❌​F❌​F
❌​TestAccept/bundle/invariant/no_drift/DATABRICKS_BUNDLE_ENGINE=direct/INPUT_CONFIG=cluster_apply_policy_default_values.yml.tmpl/READPLAN=❌​F❌​F❌​F❌​F❌​F❌​F
❌​TestAccept/bundle/invariant/no_drift/DATABRICKS_BUNDLE_ENGINE=direct/INPUT_CONFIG=cluster_apply_policy_default_values.yml.tmpl/READPLAN=1❌​F❌​F❌​F❌​F❌​F❌​F
❌​TestAccept/bundle/invariant/no_drift/DATABRICKS_BUNDLE_ENGINE=direct/INPUT_CONFIG=dashboard.yml.tmpl/READPLAN=❌​F❌​F❌​F❌​F❌​F❌​F
❌​TestAccept/bundle/invariant/no_drift/DATABRICKS_BUNDLE_ENGINE=direct/INPUT_CONFIG=dashboard.yml.tmpl/READPLAN=1❌​F❌​F❌​F❌​F❌​F❌​F
❌​TestAccept/bundle/invariant/no_drift/DATABRICKS_BUNDLE_ENGINE=direct/INPUT_CONFIG=experiment.yml.tmpl/READPLAN=❌​F❌​F❌​F❌​F❌​F❌​F
❌​TestAccept/bundle/invariant/no_drift/DATABRICKS_BUNDLE_ENGINE=direct/INPUT_CONFIG=experiment.yml.tmpl/READPLAN=1❌​F❌​F❌​F❌​F❌​F❌​F
❌​TestAccept/bundle/invariant/no_drift/DATABRICKS_BUNDLE_ENGINE=direct/INPUT_CONFIG=genie_space.yml.tmpl/READPLAN=❌​F❌​F❌​F❌​F❌​F❌​F
❌​TestAccept/bundle/invariant/no_drift/DATABRICKS_BUNDLE_ENGINE=direct/INPUT_CONFIG=genie_space.yml.tmpl/READPLAN=1❌​F❌​F❌​F❌​F❌​F❌​F
❌​TestAccept/bundle/invariant/no_drift/DATABRICKS_BUNDLE_ENGINE=direct/INPUT_CONFIG=job.yml.tmpl/READPLAN=❌​F❌​F❌​F❌​F❌​F❌​F
Top 7 slowest tests (at least 2 minutes):
durationenvtestname
2:50gcp windowsTestAccept/bundle/templates/default-python/integration_classic/DATABRICKS_BUNDLE_ENGINE=terraform/UV_PYTHON=3.12
2:39gcp windowsTestAccept/bundle/templates/default-python/combinations/serverless/DATABRICKS_BUNDLE_ENGINE=terraform/DLT=yes/NBOOK=yes/PY=yes/READPLAN=
2:31gcp windowsTestAccept/bundle/templates/default-python/integration_classic/DATABRICKS_BUNDLE_ENGINE=terraform/UV_PYTHON=3.9
2:22gcp windowsTestAccept/bundle/apps/compute_size/DATABRICKS_BUNDLE_ENGINE=terraform
2:13gcp windowsTestAccept/bundle/resources/dashboards/detect-change/DATABRICKS_BUNDLE_ENGINE=terraform
2:05gcp windowsTestAccept/bundle/templates/default-python/integration_classic/DATABRICKS_BUNDLE_ENGINE=terraform/UV_PYTHON=3.10
2:04gcp windowsTestAccept/bundle/templates/default-python/integration_classic/DATABRICKS_BUNDLE_ENGINE=terraform/UV_PYTHON=3.13
(439 table rows omitted to keep the report under 60000 bytes)

tanishgupta-db pushed a commit to tanishgupta-db/cli that referenced this pull request Jul 21, 2026
## Changes
- Slim down the "default-minimal" template to use during `databricks
bundle init` by parameterizing the underlying template to
python-specific vs generic content
- Create an alias "empty"
## Why
Related: databricks#5953
Make it easier to get started with bundles: Running `bundle generate`
requires a `databricks.yml`, and all the other existing templates
created by `bundle init` add way more than needed for the workflow of:
```sh
databricks bundle init empty
databricks bundle generate ...
```
## Tests
Updated tests for all three permutations of `default-minimal`
Manual:
```
% ./cli bundle init empty
Welcome to the minimal Declarative Automation Bundle template!
This template creates a minimal project structure without sample code, ideal for advanced users.
(For getting started with Python or SQL code, use the default-python or default-sql templates instead.)
Your workspace at https://dogfood.staging.databricks.com is used for initialization.
(See https://docs.databricks.com/dev-tools/cli/profiles.html for how to change your profile.)
Unique name for this project [my_project]:
Default catalog for any tables created by this project [main]:
Initial language for this project: skip
✨ Your new project has been created in the 'my_project' directory!
To get started, refer to the project README.md file and the documentation at https://docs.databricks.com/dev-tools/bundles/index.html.
% tree -a my_project
my_project
├── .gitignore
├── .vscode
│ ├── extensions.json
│ └── settings.json
├── databricks.yml
├── README.md
├── resources
└── src
4 directories, 5 files
```
Expected golden outputs:
[acceptance/bundle/templates/default-minimal/](https://github.com/databricks/cli/tree/janniklasrose/bundle-init-improvements/acceptance/bundle/templates/default-minimal)
deco-sdk-taggingBot added a commit that referenced this pull request Jul 22, 2026
## Release v1.9.0
### CLI
* `databricks auth profiles` no longer stalls on an unreachable workspace and instead fails validation after 5 seconds per host ([#5928](#5928)).
* Fixed `databricks fs rm -r` failing on UC Volumes backed by GCS when a directory becomes empty during recursive deletion ([#5958](#5958)).
* You can now ask questions about your data directly from the CLI with `databricks genie ask "..."`. Genie answers natural-language questions ("what were total sales last month?", "which tables are in the sales catalog?"), runs the query inside Databricks, and renders the answer in the terminal. This promotes the former `databricks experimental genie ask` command; the experimental alias still works but is deprecated and will be removed in a future release ([#6010](#6010)).
### Bundles
* `bundle validate` now reports a clear error when a `sql_warehouse` is missing a `name` (including whitespace-only names), and a warning when a grant is missing a `principal` ([#5818](#5818)).
* Bundle templates now scaffold an `AGENTS.md` that points coding agents at Databricks AI Tools, alongside a minimal `CLAUDE.md` that includes it via `@AGENTS.md` ([#5996](#5996)).
* `bundle generate job` can now download workspace files referenced by `spark_python_task`, rewriting them to a relative path like it already does for notebooks. This is opt-in via the `--download-spark-python-files` flag ([#5799](#5799)).
* Simplified the `default-minimal` bundle template and added an alias `databricks bundle init empty` ([#5899](#5899)).
* Add support for the `instance_pools` resource type in Declarative Automation Bundles. Instance pools are only supported in direct deployment mode.
* Do not emit "unknown field" warnings for YAML anchors grouped in a list or map, matching the existing suppression for standalone anchors ([#5975](#5975)).
* Provide an actionable error message if databricks.yml is missing or DATABRICKS_BUNDLE_ROOT is invalid ([#5953](#5953)).
### Dependency Updates
* Bump `github.com/databricks/databricks-sdk-go` from v0.154.0 to v0.160.0 ([#5982](#5982)).
* Bump Terraform provider from v1.121.0 to v1.122.0 ([#5977](#5977)).
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants

@janniklasrose@eng-dev-ecosystem-bot@pietern@lennartkats-db