Configure Databricks CI/CD integration with GitHub Actions and Asset Bundles.
Use when setting up automated testing, configuring CI pipelines,
or integrating Databricks deployments into your build process.
Trigger with phrases like "databricks CI", "databricks GitHub Actions",
"databricks automated tests", "CI databricks", "databricks pipeline".
Configure Databricks CI/CD integration with GitHub Actions and Asset Bundles.
Use when setting up automated testing, configuring CI pipelines,
or integrating Databricks deployments into your build process.
Trigger with phrases like "databricks CI", "databricks GitHub Actions",
"databricks automated tests", "CI databricks", "databricks pipeline".
Automate Databricks deployments with Declarative Automation Bundles (DABs) and GitHub Actions. Covers bundle validation, unit testing PySpark transforms locally, deploying to staging on PR, production on merge, and integration testing against live workspaces. Uses databricks/setup-cli action and OAuth M2M for secure CI auth.
Prerequisites
Databricks workspace with service principal (OAuth M2M)
Eliminate long-lived secrets by using GitHub OIDC federation with Databricks.
# In GitHub Actions — no client_secret neededjobs:deploy:permissions:id-token:write# Required for OIDCcontents:readsteps:-uses:actions/checkout@v4-uses:databricks/setup-cli@main-name:DeploywithOIDCenv:DATABRICKS_HOST:${{secrets.DATABRICKS_HOST}}DATABRICKS_CLIENT_ID:${{secrets.DATABRICKS_CLIENT_ID}}# No DATABRICKS_CLIENT_SECRET — uses GitHub OIDC tokenARM_USE_OIDC:truerun:databricksbundledeploy-tprod
Output
CI workflow validating bundles and running unit tests on every PR
Staging deployment with integration tests before merge
Production deployment on merge to main with approval gate
Concurrency control preventing parallel deployments
Error Handling
Issue
Cause
Solution
Bundle validation fails
Invalid YAML or missing variables
Run databricks bundle validate locally first
Auth error in CI
Client secret expired
Regenerate OAuth secret or switch to OIDC
Integration test timeout
Cluster cold start
Use instance pools or increase timeout
Deploy conflict
Concurrent CI runs
Use concurrency group in GitHub Actions
PySpark import error
Missing pyspark in CI
Add to pip install step
Examples
Local Validation Before Push
# Validate and dry-run before committing
databricks bundle validate -t staging
databricks bundle deploy -t staging --dry-run
pytest tests/unit/ -v
Branch-Based Development Targets
# databricks.yml — auto-name resources per developertargets:dev:default:truemode:development# In dev mode, resources auto-prefixed with [dev username]workspace:root_path:/Users/${workspace.current_user.userName}/.bundle/${bundle.name}/dev