Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -1,8 +1,15 @@

>>> [CLI] bundle validate
Error: failed to load [TEST_TMP_DIR]/databricks.yml: yaml ([TEST_TMP_DIR]/databricks.yml:11:11): map merge requires map or sequence of maps as the value


Found 1 error

Exit code: 1
>>> [CLI] bundle validate -t dev
Name: test-bundle
Target: dev
Workspace:
User: [USERNAME]
Path: /Workspace/Users/[USERNAME]/.bundle/test-bundle/dev

Validation OK!

>>> [CLI] bundle validate -t dev -o json
{
"default": "overridden",
"value": "overridden"
}
Original file line number Diff line number Diff line change
@@ -1,2 +1,3 @@
# An inline mapping as the value of '<<' in target variables.
errcode trace $CLI bundle validate
trace $CLI bundle validate -t dev
trace $CLI bundle validate -t dev -o json | jq .variables.x

This file was deleted.

2 changes: 1 addition & 1 deletion libs/dyn/yamlloader/loader.go
Original file line number Diff line number Diff line change
Expand Up @@ -169,7 +169,7 @@ func (d *loader) loadMapping(node *yaml.Node, loc diag.Location) (dyn.Value, err
switch merge.Kind {
case yaml.SequenceNode:
mnodes = merge.Content
case yaml.AliasNode:
case yaml.MappingNode, yaml.AliasNode:
mnodes = []*yaml.Node{merge}
default:
return dyn.NilValue, merr
Expand Down
9 changes: 9 additions & 0 deletions libs/dyn/yamlloader/yaml_anchor_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -138,3 +138,12 @@ func TestYAMLAnchor10(t *testing.T) {
assert.Equal(t, 1, self.Get("use1").Get("value").AsAny())
assert.Equal(t, 1, self.Get("use2").Get("value").AsAny())
}

func TestYAMLInlineMapMerge(t *testing.T) {
input := "target:\n <<: {x: inherited, y: merged}\n x: local\n"
value, err := yamlloader.LoadYAML("inline.yml", bytes.NewBufferString(input))
require.NoError(t, err)

assert.Equal(t, "local", value.Get("target").Get("x").AsAny())
assert.Equal(t, "merged", value.Get("target").Get("y").AsAny())
}
Loading