Skip to content

Commit 85d8570

Browse files
Merge branch 'main' into template-ipykernel-conftest
2 parents c3fb66d + fe1b364 commit 85d8570

File tree

719 files changed

+12721
-7112
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

719 files changed

+12721
-7112
lines changed

.codegen/_openapi_sha

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
8f5eedbc991c4f04ce1284406577b0c92d59a224
1+
e1ea3f5ba0bc5b53be94f56535a67ba701a52a52

.gitattributes

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -168,6 +168,7 @@ cmd/workspace/volumes/volumes.go linguist-generated=true
168168
cmd/workspace/warehouses/warehouses.go linguist-generated=true
169169
cmd/workspace/workspace-bindings/workspace-bindings.go linguist-generated=true
170170
cmd/workspace/workspace-conf/workspace-conf.go linguist-generated=true
171+
cmd/workspace/workspace-entity-tag-assignments/workspace-entity-tag-assignments.go linguist-generated=true
171172
cmd/workspace/workspace-iam-v2/workspace-iam-v2.go linguist-generated=true
172173
cmd/workspace/workspace-settings-v2/workspace-settings-v2.go linguist-generated=true
173174
cmd/workspace/workspace/workspace.go linguist-generated=true

.github/workflows/push.yml

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -271,8 +271,14 @@ jobs:
271271
make test-pipelines
272272
273273
# This job groups the result of all the above test jobs.
274-
# If any of them failed, this job will be skipped.
275274
# It is a required check, so it blocks auto-merge and the merge queue.
275+
#
276+
# We use `if: always()` to ensure this job runs even when dependencies are skipped.
277+
# Without it, GitHub Actions skips jobs whose dependencies are skipped, which would
278+
# incorrectly block the merge queue when optional test jobs don't run.
279+
#
280+
# The step checks `contains(needs.*.result, 'failure')` to fail if any dependency failed.
281+
# Reference: https://github.com/orgs/community/discussions/25970
276282
test-result:
277283
needs:
278284
- test
@@ -281,11 +287,17 @@ jobs:
281287
- test-exp-ssh
282288
- test-pipelines
283289

290+
if: ${{ always() }}
284291
name: test-result
285292
runs-on: ubuntu-latest
286293

287294
steps:
288-
- run: echo "All tests passed ✅"
295+
- run: |
296+
if [[ "${{ contains(needs.*.result, 'failure') }}" == "true" ]]; then
297+
echo "One or more required jobs failed ❌"
298+
exit 1
299+
fi
300+
echo "All tests passed ✅"
289301
290302
validate-generated-is-up-to-date:
291303
needs: cleanups

.release_metadata.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
{
2-
"timestamp": "2025-12-04 14:52:16+0000"
2+
"timestamp": "2025-12-18 13:04:36+0000"
33
}

.wsignore

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@ python/docs/images/databricks-logo.svg
1111
**/*.zip
1212
**/*.whl
1313
**/*.png
14-
**/*.tgz
1514

1615
# new lines are recorded differently on windows and unix.
1716
# In unix: "raw_body": "hello, world\n"

CHANGELOG.md

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,35 @@
11
# Version changelog
22

3+
## Release v0.281.0 (2025-12-18)
4+
5+
### CLI
6+
* Fix lakeview publish to default `embed_credentials` to false ([#4066](https://github.com/databricks/cli/pull/4066))
7+
8+
### Bundles
9+
* Add support for configurable catalog/schema for dashboards ([#4130](https://github.com/databricks/cli/pull/4130))
10+
* Pass SYSTEM\_ACCESSTOKEN from env to the Terraform provider ([#4135](https://github.com/databricks/cli/pull/4135))
11+
* `bundle deployment migrate`: when running `bundle plan` propagate `-var` arguments.
12+
* engine/direct: New option --plan to `bundle deploy` to deploy previously saved plan (saved plan with `bundle plan -o json`) ([#4134](https://github.com/databricks/cli/pull/4134))
13+
* engine/direct: Fix dependency-ordered deletion by persisting depends\_on in state ([#4105](https://github.com/databricks/cli/pull/4105))
14+
15+
### Dependency updates
16+
* Upgrade Go SDK to 0.94.0 ([#4148](https://github.com/databricks/cli/pull/4148))
17+
* Upgrade Terraform provider to 1.100.0 ([#4150](https://github.com/databricks/cli/pull/4150))
18+
19+
20+
## Release v0.280.0 (2025-12-10)
21+
22+
### Bundles
23+
* Fixed changing the source for the SQL task from GIT to WORKSPACE ([#4114](https://github.com/databricks/cli/pull/4114))
24+
* `bundle deployment migrate` will now run a plan before migration to check if deployment was done ([#4088](https://github.com/databricks/cli/pull/4088))
25+
* engine/direct: Increase "serial" in state file after every deployment ([#4115](https://github.com/databricks/cli/pull/4115))
26+
27+
### Dependency updates
28+
29+
* Upgrade Go SDK to 0.93.0 ([#4112](https://github.com/databricks/cli/pull/4112))
30+
* Bump Go toolchain to 1.25.5.
31+
32+
333
## Release v0.279.0 (2025-12-04)
434

535
### Notable Changes

Makefile

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,10 @@ test-update:
8787
test-update-templates:
8888
-go test ./acceptance -run '^TestAccept/bundle/templates' -update -timeout=${LOCAL_TIMEOUT}
8989

90+
# Regenerate out.test.toml files without running tests
91+
generate-out-test-toml:
92+
go test ./acceptance -run '^TestAccept$$' -only-out-test-toml -timeout=${LOCAL_TIMEOUT}
93+
9094
# Updates acceptance test output (integration tests, requires access)
9195
test-update-aws:
9296
deco env run -i -n aws-prod-ucws -- go test ./acceptance -run ^TestAccept$$ -update -timeout=1h -skiplocal -v
@@ -167,7 +171,7 @@ generate:
167171
$(GENKIT_BINARY) update-sdk
168172

169173

170-
.PHONY: lint lintfull tidy lintcheck fmt fmtfull test test-unit test-acc test-slow test-slow-unit test-slow-acc cover showcover build snapshot snapshot-release schema integration integration-short acc-cover acc-showcover docs ws wsfix links checks test-update test-update-templates test-update-aws test-update-all generate-validation
174+
.PHONY: lint lintfull tidy lintcheck fmt fmtfull test test-unit test-acc test-slow test-slow-unit test-slow-acc cover showcover build snapshot snapshot-release schema integration integration-short acc-cover acc-showcover docs ws wsfix links checks test-update test-update-templates generate-out-test-toml test-update-aws test-update-all generate-validation
171175

172176
test-exp-aitools:
173177
make test TEST_PACKAGES="./experimental/aitools/..." ACCEPTANCE_TEST_FILTER="TestAccept/idontexistyet/aitools"

NEXT_CHANGELOG.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,11 @@
11
# NEXT CHANGELOG
22

3-
## Release v0.280.0
3+
## Release v0.282.0
44

55
### Notable Changes
66

77
### CLI
8+
* Skip non-exportable objects (e.g., `MLFLOW_EXPERIMENT`) during `workspace export-dir` instead of failing ([#4081](https://github.com/databricks/cli/issues/4081))
89

910
### Bundles
1011
* Add `ipykernel` to the `default` template to enable Databricks Connect notebooks in Cursor/VS Code ([#4164](https://github.com/databricks/cli/pull/4164))

acceptance/acceptance_test.go

Lines changed: 34 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,7 @@ var (
4848
UseVersion string
4949
WorkspaceTmpDir bool
5050
TerraformDir string
51+
OnlyOutTestToml bool
5152
)
5253

5354
// In order to debug CLI running under acceptance test, search for TestInprocessMode and update
@@ -78,6 +79,7 @@ func init() {
7879
// creates these symlinks when a file_mirror is used for a provider (in .terraformrc). This flag
7980
// allows us to download the provider to the workspace file system on DBR enabling DBR integration testing.
8081
flag.StringVar(&TerraformDir, "terraform-dir", "", "Directory to download the terraform provider to")
82+
flag.BoolVar(&OnlyOutTestToml, "only-out-test-toml", false, "Only regenerate out.test.toml files without running tests")
8183
}
8284

8385
const (
@@ -307,14 +309,19 @@ func testAccept(t *testing.T, inprocessMode bool, singleTest string) int {
307309
config, configPath := internal.LoadConfig(t, dir)
308310
skipReason := getSkipReason(&config, configPath)
309311

310-
if testdiff.OverwriteMode {
312+
if testdiff.OverwriteMode || OnlyOutTestToml {
311313
// Generate materialized config for this test
312314
// We do this before skipping the test, so the configs are generated for all tests.
313315
materializedConfig, err := internal.GenerateMaterializedConfig(config)
314316
require.NoError(t, err)
315317
testutil.WriteFile(t, filepath.Join(dir, internal.MaterializedConfigFile), materializedConfig)
316318
}
317319

320+
// If only regenerating out.test.toml, skip the actual test execution
321+
if OnlyOutTestToml {
322+
t.Skip("Skipping test execution (only regenerating out.test.toml)")
323+
}
324+
318325
if skipReason != "" {
319326
skippedDirs += 1
320327
t.Skip(skipReason)
@@ -329,7 +336,7 @@ func testAccept(t *testing.T, inprocessMode bool, singleTest string) int {
329336
if testdiff.OverwriteMode && len(expanded) > 1 {
330337
// All variants of the test are producing the same output,
331338
// there is no need to run the concurrently when updating.
332-
// Exception: if EnvVaryOutput is configured with multiple values, we must
339+
// Exception: if EnvVaryOutput is configured, we must
333340
// run all variants to record variant-specific outputs.
334341
if config.EnvVaryOutput == nil || len(config.EnvMatrix[*config.EnvVaryOutput]) <= 1 {
335342
expanded = expanded[0:1]
@@ -344,6 +351,9 @@ func testAccept(t *testing.T, inprocessMode bool, singleTest string) int {
344351
runTest(t, dir, 0, coverDir, repls.Clone(), config, expanded[0], envFilters)
345352
} else {
346353
for ind, envset := range expanded {
354+
if forbiddenEnvSet(envset) {
355+
continue
356+
}
347357
envname := strings.Join(envset, "/")
348358
t.Run(envname, func(t *testing.T) {
349359
if !inprocessMode {
@@ -361,6 +371,23 @@ func testAccept(t *testing.T, inprocessMode bool, singleTest string) int {
361371
return selectedDirs - skippedDirs
362372
}
363373

374+
func forbiddenEnvSet(envset []string) bool {
375+
hasTerraform := false
376+
hasReadplan := false
377+
378+
for _, pair := range envset {
379+
if pair == "DATABRICKS_BUNDLE_ENGINE=terraform" {
380+
hasTerraform = true
381+
}
382+
if pair == "READPLAN=1" {
383+
hasReadplan = true
384+
}
385+
}
386+
387+
// Do not run terraform tests with --plan option:
388+
return hasTerraform && hasReadplan
389+
}
390+
364391
func getEnvFilters(t *testing.T) []string {
365392
envFilterValue := os.Getenv(EnvFilterVar)
366393
if envFilterValue == "" {
@@ -628,6 +655,11 @@ func runTest(t *testing.T,
628655
cmd.Env = append(cmd.Env, "GOCOVERDIR="+coverDir)
629656
}
630657

658+
// Set unique cache folder for this test to avoid race conditions between parallel tests
659+
// Use test temp directory to avoid polluting user's cache
660+
uniqueCacheDir := filepath.Join(t.TempDir(), ".cache")
661+
cmd.Env = append(cmd.Env, "DATABRICKS_CACHE_DIR="+uniqueCacheDir)
662+
631663
for _, key := range utils.SortedKeys(config.Env) {
632664
if hasKey(customEnv, key) {
633665
// We want EnvMatrix to take precedence.

acceptance/bundle/artifacts/whl_dynamic/out.plan_create.direct.json

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
11
{
2+
"plan_version": 1,
3+
"cli_version": "[DEV_VERSION]",
24
"plan": {
35
"resources.jobs.test_job": {
46
"action": "create",

0 commit comments

Comments
 (0)