databricks-cli/bundle
shreyas-goenka 4e8e027380
Sort tasks by `task_key` before generating the Terraform configuration (#1776)
## Changes
Sort the tasks in the resultant `bundle.tf.json`. This is important
because configuration from one task can leak into another if the tasks
are not sorted.

For more details see:
1.
https://github.com/databricks/terraform-provider-databricks/issues/3951
2.
https://github.com/databricks/terraform-provider-databricks/issues/4011

## Tests
Unit test and manually.

For manual testing I used the following configuration:
```
resources:
  jobs:
    foo:
      tasks: 
        - task_key: task-Z
          notebook_task: 
            notebook_path: nb.py
            source: GIT
          existing_cluster_id: 0715-133738-ju0ma84z

        - task_key: task-1
          notebook_task: 
            notebook_path: ${workspace.file_path}/local.py
            source: WORKSPACE
          existing_cluster_id: 0715-133738-ju0ma84z
          depends_on: 
            - task_key: task-Z


      git_source: 
        git_provider: gitHub
        git_url: https://github.com/shreyas-goenka/job-source-tmp.git
        git_branch: main
```

Steps (1):
1. Deploy this bundle.
2. Comment out "source: GIT"
3. Deploy again

Before:
Deploying this bundle twice would fail. This is because the "source:
GIT" would carry over to the next deployment.

After:
There was no error on the subsequent deployment.

Steps (2):
1. Deploy once
2. Deploy again

Before:
Works correctly but leads to a update API call every time.

After:
No diff is detected by terraform.
2024-09-26 13:22:22 +00:00
..
artifacts Modify SetLocation test utility to take full locations as argument (#1788) 2024-09-25 16:13:48 +00:00
config Simplified isFullVariableOverrideDef implementation (#1791) 2024-09-26 12:55:07 +00:00
deploy Sort tasks by `task_key` before generating the Terraform configuration (#1776) 2024-09-26 13:22:22 +00:00
env Remove support for DATABRICKS_BUNDLE_INCLUDES (#1317) 2024-03-27 10:13:54 +00:00
internal Modify SetLocation test utility to take full locations as argument (#1788) 2024-09-25 16:13:48 +00:00
libraries Modify SetLocation test utility to take full locations as argument (#1788) 2024-09-25 16:13:48 +00:00
metadata Make `file_path` and `artifact_path` fields consistent with json tag (#987) 2023-11-15 13:37:26 +00:00
permissions Properly deal with nil values in `convert.FromTyped` (#1511) 2024-06-21 13:43:21 +00:00
phases Add verbose flag to the "bundle deploy" command (#1774) 2024-09-23 10:09:11 +00:00
python Consider serverless clusters as compatible for Python wheel tasks (#1733) 2024-08-29 12:47:44 +00:00
render Support multiple paths for diagnostics (#1616) 2024-07-25 15:16:27 +00:00
run Upgrade Go SDK to 0.44.0 (#1679) 2024-08-15 13:23:07 +00:00
schema Alias variables block in the `Target` struct (#1748) 2024-09-10 14:49:34 +00:00
scripts Print diagnostics in 'bundle deploy' (#1579) 2024-07-10 11:14:57 +00:00
tests Added support for creating all-purpose clusters (#1698) 2024-09-23 10:42:34 +00:00
bundle.go Add paths field to bundle sync configuration (#1694) 2024-08-21 15:33:25 +00:00
bundle_read_only.go Add paths field to bundle sync configuration (#1694) 2024-08-21 15:33:25 +00:00
bundle_test.go Update error checks that use the `os` package to use `errors.Is` (#1461) 2024-06-03 12:39:36 +00:00
context.go Rename variable `bundle -> b` (#989) 2023-11-15 14:03:36 +00:00
context_test.go Add command that writes the materialized bundle configuration to stdout (#95) 2022-11-21 15:39:53 +01:00
deferred.go Return `diag.Diagnostics` from mutators (#1305) 2024-03-25 14:18:47 +00:00
deferred_test.go Return `diag.Diagnostics` from mutators (#1305) 2024-03-25 14:18:47 +00:00
if.go Return early in bundle destroy if no deployment exists (#1581) 2024-07-09 15:08:38 +00:00
if_test.go Return early in bundle destroy if no deployment exists (#1581) 2024-07-09 15:08:38 +00:00
log_string.go Return `diag.Diagnostics` from mutators (#1305) 2024-03-25 14:18:47 +00:00
mutator.go Return `diag.Diagnostics` from mutators (#1305) 2024-03-25 14:18:47 +00:00
mutator_read_only.go Added validate mutator to surface additional bundle warnings (#1352) 2024-04-18 15:13:16 +00:00
mutator_test.go Return `diag.Diagnostics` from mutators (#1305) 2024-03-25 14:18:47 +00:00
parallel.go Added validate mutator to surface additional bundle warnings (#1352) 2024-04-18 15:13:16 +00:00
parallel_test.go Fix flaky tests for the parallel mutator (#1426) 2024-05-13 12:16:43 +00:00
root.go Move folders package into libs (#1184) 2024-02-07 16:33:18 +00:00
root_test.go Remove support for DATABRICKS_BUNDLE_INCLUDES (#1317) 2024-03-27 10:13:54 +00:00
seq.go Return `diag.Diagnostics` from mutators (#1305) 2024-03-25 14:18:47 +00:00
seq_test.go Return `diag.Diagnostics` from mutators (#1305) 2024-03-25 14:18:47 +00:00