Merge remote-tracking branch 'origin' into set-config-used-bundle

This commit is contained in:
Shreyas Goenka 2025-01-21 15:48:29 +01:00
commit bebbf4b767
No known key found for this signature in database
GPG Key ID: 92A07DF49CCB0622
8 changed files with 123 additions and 1 deletions

View File

@ -99,7 +99,7 @@ func TestAccept(t *testing.T) {
testName := strings.ReplaceAll(dir, "\\", "/")
t.Run(testName, func(t *testing.T) {
t.Parallel()
runTest(t, dir, coverDir, repls)
runTest(t, dir, coverDir, repls.Clone())
})
}
}
@ -137,6 +137,13 @@ func runTest(t *testing.T, dir, coverDir string, repls testdiff.ReplacementsCont
tmpDir = t.TempDir()
}
repls.Set("/private"+tmpDir, "$TMPDIR")
repls.Set("/private"+filepath.Dir(tmpDir), "$TMPPARENT")
repls.Set("/private"+filepath.Dir(filepath.Dir(tmpDir)), "$TMPGPARENT")
repls.Set(tmpDir, "$TMPDIR")
repls.Set(filepath.Dir(tmpDir), "$TMPPARENT")
repls.Set(filepath.Dir(filepath.Dir(tmpDir)), "$TMPGPARENT")
scriptContents := readMergedScriptContents(t, dir)
testutil.WriteFile(t, filepath.Join(tmpDir, EntryPointScript), scriptContents)

View File

@ -0,0 +1,5 @@
bundle:
name: test-bundle
sync:
paths:
- ..

View File

@ -0,0 +1,11 @@
Error: path "$TMPPARENT" is not within repository root "$TMPDIR"
Name: test-bundle
Target: default
Workspace:
User: $USERNAME
Path: /Workspace/Users/$USERNAME/.bundle/test-bundle/default
Found 1 error
Exit code: 1

View File

@ -0,0 +1 @@
$CLI bundle validate

View File

@ -0,0 +1,24 @@
workspace:
profile: profile_name
root_path: ${var.workspace_root}/path/to/root
variables:
workspace_root:
description: "root directory in the Databricks workspace to store the asset bundle and associated artifacts"
default: /Users/${workspace.current_user.userName}
targets:
dev:
default: true
prod:
variables:
workspace_root: /Shared
resources:
jobs:
my_job:
tasks:
- existing_cluster_id: 500
python_wheel_task:
named_parameters:
conf-file: "${workspace.file_path}/path/to/config.yaml"

View File

@ -0,0 +1,67 @@
/Workspace should be prepended on all paths, but it is not the case:
{
"bundle": {
"environment": "dev",
"git": {
"bundle_root_path": ".",
"inferred": true
},
"target": "dev",
"terraform": {
"exec_path": "$TMPHOME"
}
},
"resources": {
"jobs": {
"my_job": {
"deployment": {
"kind": "BUNDLE",
"metadata_file_path": "/Users/$USERNAME/path/to/root/state/metadata.json"
},
"edit_mode": "UI_LOCKED",
"format": "MULTI_TASK",
"permissions": [],
"queue": {
"enabled": true
},
"tags": {},
"tasks": [
{
"existing_cluster_id": "500",
"python_wheel_task": {
"named_parameters": {
"conf-file": "/Users/$USERNAME/path/to/root/files/path/to/config.yaml"
}
},
"task_key": ""
}
]
}
}
},
"sync": {
"paths": [
"."
]
},
"targets": null,
"variables": {
"workspace_root": {
"default": "/Users/$USERNAME",
"description": "root directory in the Databricks workspace to store the asset bundle and associated artifacts",
"value": "/Users/$USERNAME"
}
},
"workspace": {
"artifact_path": "/Users/$USERNAME/path/to/root/artifacts",
"current_user": {
"short_name": "$USERNAME",
"userName": "$USERNAME"
},
"file_path": "/Users/$USERNAME/path/to/root/files",
"profile": "profile_name",
"resource_path": "/Users/$USERNAME/path/to/root/resources",
"root_path": "/Users/$USERNAME/path/to/root",
"state_path": "/Users/$USERNAME/path/to/root/state"
}
}

View File

@ -0,0 +1,2 @@
echo /Workspace should be prepended on all paths, but it is not the case: #2181
$CLI bundle validate -o json

View File

@ -4,6 +4,7 @@ import (
"encoding/json"
"fmt"
"regexp"
"slices"
"strings"
"github.com/databricks/cli/internal/testutil"
@ -31,6 +32,10 @@ type ReplacementsContext struct {
Repls []Replacement
}
func (r *ReplacementsContext) Clone() ReplacementsContext {
return ReplacementsContext{Repls: slices.Clone(r.Repls)}
}
func (r *ReplacementsContext) Replace(s string) string {
// QQQ Should probably only replace whole words
for _, repl := range r.Repls {