Asset Bundles + GitHub Actions: why does bundle deploy re-create UC schema and volume every run?

Ale_Armillotta
Valued Contributor II

Hi everyone,
I’m working with Databricks Asset Bundles and deploying via GitHub Actions (CI/CD). I’m seeing behavior I don’t fully understand.

On every pipeline run (fresh git checkout/pull and then databricks bundle deploy to the same target environment), the deploy tries to create again my Unity Catalog resources — specifically a schema and a volume. I’d expect the deployment to be mostly idempotent and only apply deltas, but it looks like it re-applies the “create” actions each time.

A few questions:

  • Is this expected behavior for Asset Bundles (i.e., deploy always “ensures” resources exist, so it may attempt creation every run)?

  • Does the bundle keep any state or resource tracking across runs, or is it purely declarative each time (especially in CI like GitHub Actions)?

  • Are there recommended patterns to avoid re-creating / re-attempting creation of UC schema/volume on every deploy (e.g., separating infra from app deploy, using mode: production, structuring targets differently, etc.)?

If useful, I can share:

  • a simplified databricks.yml snippet (resources + targets),

  • the relevant GitHub Actions step,

  • and the exact deploy logs/error message.

The strange thing is that also the documentation on databricks says that the resoruces into databricks.yml won't destroy the ones already created.

 

 

Thanks!