Skip to content
Open
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
Expand Up @@ -2,5 +2,5 @@ bundle:
name: non_yaml_in_includes

include:
- test.py
- resources/*.yml
- "*.py"
9 changes: 7 additions & 2 deletions acceptance/bundle/includes/non_yaml_in_include/output.txt
Original file line number Diff line number Diff line change
@@ -1,10 +1,15 @@
Error: Files in the 'include' configuration section must be YAML or JSON files.
in databricks.yml:5:5
in databricks.yml:6:5

The file test.py in the 'include' configuration section is not a YAML or JSON file, and only such files are supported. To include files to sync, specify them in the 'sync.include' configuration section instead.

Error: Files in the 'include' configuration section must be YAML or JSON files.
in databricks.yml:6:5

The file test2.py in the 'include' configuration section is not a YAML or JSON file, and only such files are supported. To include files to sync, specify them in the 'sync.include' configuration section instead.

Name: non_yaml_in_includes

Found 1 error
Found 2 errors

Exit code: 1
1 change: 1 addition & 0 deletions acceptance/bundle/includes/non_yaml_in_include/test2.py
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
print("Hello again")
13 changes: 7 additions & 6 deletions bundle/config/loader/process_root_includes.go
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,7 @@ func (m *processRootIncludes) Apply(ctx context.Context, b *bundle.Bundle) diag.
// For each glob, find all files to load.
// Ordering of the list of globs is maintained in the output.
// For matches that appear in multiple globs, only the first is kept.
for _, entry := range b.Config.Include {
for entryIndex, entry := range b.Config.Include {
// Include paths must be relative.
if filepath.IsAbs(entry) {
return diag.Errorf("%s: includes must be relative paths", entry)
Expand All @@ -92,7 +92,7 @@ func (m *processRootIncludes) Apply(ctx context.Context, b *bundle.Bundle) diag.

// Filter matches to ones we haven't seen yet.
var includes []string
for i, match := range matches {
for _, match := range matches {
rel, err := filepath.Rel(b.BundleRootPath, match)
if err != nil {
return diag.FromErr(err)
Expand All @@ -103,10 +103,11 @@ func (m *processRootIncludes) Apply(ctx context.Context, b *bundle.Bundle) diag.
seen[rel] = true
if filepath.Ext(rel) != ".yaml" && filepath.Ext(rel) != ".yml" && filepath.Ext(rel) != ".json" {
diags = diags.Append(diag.Diagnostic{
Severity: diag.Error,
Summary: "Files in the 'include' configuration section must be YAML or JSON files.",
Detail: fmt.Sprintf("The file %s in the 'include' configuration section is not a YAML or JSON file, and only such files are supported. To include files to sync, specify them in the 'sync.include' configuration section instead.", rel),
Locations: b.Config.GetLocations(fmt.Sprintf("include[%d]", i)),
Severity: diag.Error,
Summary: "Files in the 'include' configuration section must be YAML or JSON files.",
Detail: fmt.Sprintf("The file %s in the 'include' configuration section is not a YAML or JSON file, and only such files are supported. To include files to sync, specify them in the 'sync.include' configuration section instead.", rel),
// The match's index within the glob is unrelated to the entry's position in the include list.
Locations: b.Config.GetLocations(fmt.Sprintf("include[%d]", entryIndex)),
})
continue
}
Expand Down
Loading