Databricks DE Assoc · Domain 5 of 7

Databricks DE Assoc Domain 5: Implementing CI/CD

This 10% section has four objectives on shipping code: working with branches in Git folders, environment-specific bundle configuration, deploying bundles across dev, test and prod, and driving bundles with the Databricks CLI in automation.

Exam weight
10%
Official objectives
4
Estimated questions estimate
~5
Suggested study time estimate
6–8 hrs

About 12 min read Reviewed October 2026

Overview

Section 5 covers how data engineering code moves from a developer's branch to production. The first objective is Databricks Git folders, formerly called Repos: cloning a repository into the workspace, creating and switching branches, committing and pushing changes, and taking part in pull request reviews through the Git integration.

The other three objectives cover Declarative Automation Bundles, the new name for Databricks Asset Bundles. You need to understand how one databricks.yml project uses variables and per-target overrides so the same code deploys to dev, test and prod with different catalogs, compute or schedules. You also need to deploy bundles that package Lakeflow Jobs, Lakeflow Declarative Pipelines and other workspace assets, and to use the Databricks CLI commands that validate, deploy and run bundles from a CI/CD system.

How it's tested

Questions describe a team workflow or a deployment problem and ask for the correct Git folder action, bundle setting or CLI command. Some show a short databricks.yml fragment with targets and variables and ask what a deployment to a named target will produce.

  • Git folder action

    A developer needs to start a feature, save work or get changes reviewed, and you choose the branch, commit, push or pull request step.

  • Per-environment config

    Dev and prod need different catalogs or schedules, and you choose variables and target overrides over duplicated files.

  • CLI sequence

    A CI pipeline must check and ship a bundle, and you choose the right order of validate, deploy and run commands.

Reasoning it through

A team's job must write to the dev catalog in development and to the prod catalog in production. Copying the job YAML into two bundles would work but drifts over time. Declaring a catalog variable with a default and overriding it in the prod target lets one definition serve both, deployed with databricks bundle deploy -t prod, so that is the answer.

Objectives 4

Official objectives from the Databricks outline, in outline order.

5.1 Manage your code development workflow within the Databricks workspace UI, including creating and switching between branches in Databricks Git folders (formerly Databricks Repos), committing and pushing changes, and creating pull requests using Databricks Git integrationDay-to-day Git work from inside the workspace.
What it means
A Git folder is a workspace folder linked to a remote repository on providers such as GitHub, GitLab, Azure DevOps or Bitbucket. Developers clone the repository into their own folder, work on a branch and use the Git dialog to commit, push and pull without leaving Databricks.
What to understand
Configure Git credentials, such as a personal access token or a provider app, under user settings. From the Git dialog you can create a branch, switch branches, see changed files, write a commit message, commit and push, and pull remote changes. Merge conflicts can be resolved in the UI. Pull requests are opened and reviewed on the Git provider side through its integration, and merging there is the usual gate to production. Each developer should use a personal Git folder rather than editing a shared one, and production jobs should reference a fixed branch or tag.
How it shows up
Expect questions on the correct order of branch, commit, push and pull request steps and where reviews happen.
Common confusion
Editing directly on the main branch in a shared Git folder used by production jobs.
5.2 Understand environment-specific configuration using Declarative Automation Bundle (formerly Databricks Asset Bundles) variables and overrides while promoting the same codebase across dev, test, and prod targetsVariables and target overrides that let one bundle serve every environment.
What it means
A bundle is defined by a databricks.yml file. Top-level settings describe resources once, and a targets section defines environments such as dev, test and prod. Variables hold values that differ between targets, and target blocks override settings where needed.
What to understand
Declare variables with a description and default, then reference them as ${var.name} in resource definitions. Each target can set its own variable values, workspace host, root path and run-as identity, and can override resource fields such as cluster size or schedule. Values can also come from the command line with --var or from BUNDLE_VAR_ environment variables in CI. mode: development prefixes resource names with the user's name and pauses schedules, while mode: production applies stricter checks. Lookup variables can resolve an object's ID by name, such as a cluster or warehouse.
How it shows up
Questions ask how to change a catalog, cluster or schedule per environment without duplicating code.
Common confusion
Keeping separate copies of databricks.yml for each environment.
5.3 Deploy Declarative Automation Bundles (formerly Databricks Asset Bundles) to package, configure, and promote Lakeflow Jobs, Lakeflow Declarative Pipelines, and other workspace assets across dev, test, and prod environmentsPackaging jobs, pipelines and code into a bundle and promoting it.
What it means
Bundles treat workspace assets as code. A single project can define Lakeflow Jobs, Lakeflow Declarative Pipelines, dashboards and other resources together with the notebooks, Python files and wheels they use. Deploying the bundle to a target creates or updates those assets in that workspace.
What to understand
Resources go under a resources key or in included YAML files, and artifacts describe build steps such as a Python wheel. A deployment uploads files to the target's root path and creates or updates each resource, keeping state so later deploys update rather than duplicate. Promotion means deploying the same commit to test and then prod, normally from a CI pipeline after a merge. Production targets usually run as a service principal so jobs do not depend on a person's account. bundle destroy removes resources a bundle created.
How it shows up
Scenario items ask how to move a tested job and pipeline from dev to prod consistently.
Common confusion
Exporting a job's JSON from dev and importing it by hand into prod.
5.4 Understand the Databricks CLI to validate, deploy, and manage Declarative Automation Bundles (formerly Databricks Asset Bundles) and other workspace assets in automated CI/CD workflowsCLI commands for bundles and workspace automation.
What it means
The Databricks CLI is a command-line tool for the Databricks REST APIs. Its bundle commands handle the full bundle lifecycle, and other command groups manage jobs, workspace files, secrets and more, which makes it the usual tool in a CI/CD system.
What to understand
Common bundle commands are databricks bundle init to start from a template, validate to check configuration, deploy -t <target> to push changes, run to start a job or pipeline, summary to list deployed resources and destroy to remove them. In CI, authenticate with OAuth machine-to-machine credentials for a service principal through environment variables such as DATABRICKS_HOST, DATABRICKS_CLIENT_ID and DATABRICKS_CLIENT_SECRET rather than a personal token. A typical pipeline runs validate on pull requests, then deploy to test, tests, and deploy to prod after approval.
How it shows up
Expect questions on command order and on secure authentication from automation.
Common confusion
Running deploy before validate, or using a developer's personal token in CI.

High-yield concepts

The terms, rules and formulas this domain turns into questions most often.

  • Git folder

    Workspace folder linked to a remote Git repository.

    Remember
    Formerly called Repos.
    Tested as
    Version control items.
    Trap
    Thinking it only supports GitHub.
  • databricks.yml

    Root configuration file of a bundle.

    Remember
    Holds bundle name, includes, variables and targets.
    Tested as
    Bundle structure items.
    Trap
    Placing settings only in the UI.
  • Targets

    Named environments such as dev and prod.

    Remember
    Each can override settings.
    Tested as
    Promotion questions.
    Trap
    Creating separate bundles per environment.
  • ${var.name}

    Reference to a bundle variable.

    Remember
    Values set per target, by --var or env vars.
    Tested as
    Per-environment config.
    Trap
    Hard-coding catalog names.
  • Development mode

    Target mode for personal dev deployments.

    Remember
    Prefixes names and pauses schedules.
    Tested as
    Avoiding collisions.
    Trap
    Expecting dev schedules to run.
  • bundle validate

    Checks bundle configuration.

    Remember
    Run before deploy in CI.
    Tested as
    CLI order questions.
    Trap
    Skipping it and failing at deploy time.
  • bundle deploy -t

    Deploys the bundle to a named target.

    Remember
    Creates or updates resources.
    Tested as
    Deployment items.
    Trap
    Forgetting the target flag.
  • Service principal auth

    OAuth M2M credentials for automation.

    Remember
    Production runs should not use a personal identity.
    Tested as
    CI security items.
    Trap
    Using a personal access token in pipelines.

Side by side

Concepts candidates mix up, compared on the point that decides the answer.

Old and current names

ConceptMeaningKey differenceCommon trap
Repos to Git folders Workspace Git integration. Same capability, new name. Treating them as different features.
Asset Bundles to Declarative Automation Bundles Infrastructure-as-code for workspace assets. Same databricks.yml approach. Assuming older bundle docs are invalid.
Workflows to Lakeflow Jobs Built-in orchestrator. Same jobs features under a new brand. Thinking jobs must be rebuilt.

Bundle CLI commands

ConceptMeaningKey differenceCommon trap
validate Checks configuration and variables. No changes made. Skipping it in CI.
deploy Uploads files and updates resources. Changes a target workspace. Expecting it to start a run.
run Starts a job or pipeline from the bundle. Executes a deployed resource. Running before deploying changes.
destroy Removes bundle-created resources. Cleans up a target. Running it against prod by mistake.

Exam traps

Each trap is an answer that looks right. Learn the clue that should change your mind.

  1. Manual promotion

    What candidates pick
    Export job JSON from dev and import into prod
    Why it looks right
    It is quick for a single job.
    Why it's wrong
    Manual copies drift and are not reviewed; deploying one bundle to each target keeps environments consistent.

    Clue to watch for Repeatable or consistent promotion.

  2. Personal token in CI

    What candidates pick
    Store a developer's personal access token as a CI secret
    Why it looks right
    It works immediately.
    Why it's wrong
    CI pipelines should sign in as a service principal using OAuth, so deployments never hinge on one employee's account.

    Clue to watch for Automated pipeline or production.

  3. Separate bundle per environment

    What candidates pick
    Three databricks.yml files for dev, test and prod
    Why it looks right
    It keeps environments clearly separate.
    Why it's wrong
    One bundle with targets and variables shares definitions and avoids divergence.

    Clue to watch for Same codebase across environments.

  4. Deploy means run

    What candidates pick
    databricks bundle deploy to start the job
    Why it looks right
    Deploy sounds like it executes the job.
    Why it's wrong
    Deploy only creates or updates resources; bundle run or the job's trigger starts execution.

    Clue to watch for Need to execute after deployment.

  5. Pull requests inside the workspace

    What candidates pick
    Approve and merge the PR in the Git folder
    Why it looks right
    The Git dialog handles commits and branches.
    Why it's wrong
    Reviews and merges happen in the Git provider; the Git folder is where you branch, commit and push.

    Clue to watch for Review or approval step.

Answer framework

Follow these steps for Git folder and bundle deployment questions in Section 5.

  1. Decide whether the question is about developer workflow in Git folders or about deploying assets with bundles and the CLI.
  2. For developer workflow, work on a personal Git folder and feature branch, commit and push, then review through a pull request.
  3. For configuration, put shared definitions at the top of databricks.yml and use variables and target overrides for values that differ by environment.
  4. For deployment, run validate, then deploy to the named target, then run or let triggers start the resources.
  5. For automation, authenticate the CLI as a service principal with OAuth credentials and promote the same commit through test before prod.

Practice question

A data engineer maintains one Declarative Automation Bundle with dev and prod targets. The job must read from the dev_sales catalog in dev and the sales catalog in prod without duplicating the job definition. What should the engineer do?

Choose one answer

Want more like this? The Databricks DE Assoc practice test has questions for every domain.

Checklist

0 of 11

Tick each one you can do without notes. Your ticks stay in this browser.

Study strategy

Spend six to eight hours here, split between Git folders and bundles. Connect a personal repository to a Git folder, create a feature branch, change a notebook, commit and push, then open and merge a pull request in your Git provider. Pull the merged main branch back into the workspace so the full loop is familiar.

Next, install the Databricks CLI and run databricks bundle init with the default Python template. Read the generated databricks.yml and identify the bundle, include, resources and targets sections. Add a variable for a catalog name, set it differently in dev and prod targets, run validate, and deploy to dev. Look at the deployed job's name to see the development prefix and paused schedule. Then run the job with bundle run.

If you can, wire a simple CI workflow that validates on pull requests and deploys to a test target on merge using service principal credentials. Even without CI, rehearse the command sequence and the reason for each step, since most questions in this section test that order.

FAQ

What portion of the exam is Implementing CI/CD?

Implementing CI/CD is Section 5 and carries 10% of the exam, about 5 of the 45 scored questions, across four official objectives on Git folders, bundles and the CLI.

Are Declarative Automation Bundles different from Databricks Asset Bundles?

They are the same feature under a new name. The current guide prints the new name with the old one in brackets, so older bundle tutorials still teach the right concepts.

Do I need to know a specific CI tool?

No. The guide focuses on the Databricks CLI and bundles. Any CI system, such as GitHub Actions or Azure DevOps, simply runs the same CLI commands.

Can bundles deploy Lakeflow pipelines?

Yes. Bundles can define Lakeflow Declarative Pipelines alongside jobs, notebooks and other assets, and deploy them together to each target.

What does development mode do?

It prefixes deployed resource names with your user name, pauses schedules and triggers, and allows faster iteration, so several developers can deploy without collisions.

Should production jobs use Git folders directly?

Production jobs should use code deployed by a bundle or a job's Git source pinned to a branch or tag, not a developer's personal Git folder.

Other Data & Analytics certifications

Where the same subject shows up in other exams. Cards marked "Same subject" open the matching domain.

Test your Domain 5 knowledge

Check your grasp of Git folder workflow, bundle variables, target overrides and CLI deployment order in exam-style questions.

Keep going