mirror of https://github.com/databricks/cli.git
Merge remote-tracking branch 'origin' into set-config-used-bundle
This commit is contained in:
commit
bebbf4b767
|
@ -99,7 +99,7 @@ func TestAccept(t *testing.T) {
|
||||||
testName := strings.ReplaceAll(dir, "\\", "/")
|
testName := strings.ReplaceAll(dir, "\\", "/")
|
||||||
t.Run(testName, func(t *testing.T) {
|
t.Run(testName, func(t *testing.T) {
|
||||||
t.Parallel()
|
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()
|
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)
|
scriptContents := readMergedScriptContents(t, dir)
|
||||||
testutil.WriteFile(t, filepath.Join(tmpDir, EntryPointScript), scriptContents)
|
testutil.WriteFile(t, filepath.Join(tmpDir, EntryPointScript), scriptContents)
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,5 @@
|
||||||
|
bundle:
|
||||||
|
name: test-bundle
|
||||||
|
sync:
|
||||||
|
paths:
|
||||||
|
- ..
|
|
@ -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
|
|
@ -0,0 +1 @@
|
||||||
|
$CLI bundle validate
|
|
@ -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"
|
|
@ -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"
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,2 @@
|
||||||
|
echo /Workspace should be prepended on all paths, but it is not the case: #2181
|
||||||
|
$CLI bundle validate -o json
|
|
@ -4,6 +4,7 @@ import (
|
||||||
"encoding/json"
|
"encoding/json"
|
||||||
"fmt"
|
"fmt"
|
||||||
"regexp"
|
"regexp"
|
||||||
|
"slices"
|
||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
"github.com/databricks/cli/internal/testutil"
|
"github.com/databricks/cli/internal/testutil"
|
||||||
|
@ -31,6 +32,10 @@ type ReplacementsContext struct {
|
||||||
Repls []Replacement
|
Repls []Replacement
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (r *ReplacementsContext) Clone() ReplacementsContext {
|
||||||
|
return ReplacementsContext{Repls: slices.Clone(r.Repls)}
|
||||||
|
}
|
||||||
|
|
||||||
func (r *ReplacementsContext) Replace(s string) string {
|
func (r *ReplacementsContext) Replace(s string) string {
|
||||||
// QQQ Should probably only replace whole words
|
// QQQ Should probably only replace whole words
|
||||||
for _, repl := range r.Repls {
|
for _, repl := range r.Repls {
|
||||||
|
|
Loading…
Reference in New Issue