<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Databricks asset bundles CI/CD design for github actions in Data Engineering</title>
    <link>https://community.databricks.com/t5/data-engineering/databricks-asset-bundles-ci-cd-design-for-github-actions/m-p/137016#M50679</link>
    <description>&lt;P&gt;We are wanting to use Databricks asset bundles and deploy code changes and tests using github actions. We have seen lots of content online, but nothing concrete on how this is done at scale. So I'm wondering, if we have many changes and therefore many asset bundles as time goes on, how should it be structured within a github repo? Also, suppose we have a branch with many bundles on it, how would github actions dynamically know which bundle to deploy from a pull request for example?&lt;BR /&gt;&lt;BR /&gt;I've seen some example YAML such as those on &lt;A href="https://docs.databricks.com/aws/en/dev-tools/ci-cd/github" target="_blank"&gt;https://docs.databricks.com/aws/en/dev-tools/ci-cd/github&lt;/A&gt;&lt;BR /&gt;but not one that tells it the bundle (if there are many bundles on the same branch). I'm still learning about both asset bundles and github actions, so is there an example github repo somewhere that I could study that may have done CI/CD and give me a better idea of how to design it?&lt;/P&gt;</description>
    <pubDate>Fri, 31 Oct 2025 14:59:33 GMT</pubDate>
    <dc:creator>deano2025</dc:creator>
    <dc:date>2025-10-31T14:59:33Z</dc:date>
    <item>
      <title>Databricks asset bundles CI/CD design for github actions</title>
      <link>https://community.databricks.com/t5/data-engineering/databricks-asset-bundles-ci-cd-design-for-github-actions/m-p/137016#M50679</link>
      <description>&lt;P&gt;We are wanting to use Databricks asset bundles and deploy code changes and tests using github actions. We have seen lots of content online, but nothing concrete on how this is done at scale. So I'm wondering, if we have many changes and therefore many asset bundles as time goes on, how should it be structured within a github repo? Also, suppose we have a branch with many bundles on it, how would github actions dynamically know which bundle to deploy from a pull request for example?&lt;BR /&gt;&lt;BR /&gt;I've seen some example YAML such as those on &lt;A href="https://docs.databricks.com/aws/en/dev-tools/ci-cd/github" target="_blank"&gt;https://docs.databricks.com/aws/en/dev-tools/ci-cd/github&lt;/A&gt;&lt;BR /&gt;but not one that tells it the bundle (if there are many bundles on the same branch). I'm still learning about both asset bundles and github actions, so is there an example github repo somewhere that I could study that may have done CI/CD and give me a better idea of how to design it?&lt;/P&gt;</description>
      <pubDate>Fri, 31 Oct 2025 14:59:33 GMT</pubDate>
      <guid>https://community.databricks.com/t5/data-engineering/databricks-asset-bundles-ci-cd-design-for-github-actions/m-p/137016#M50679</guid>
      <dc:creator>deano2025</dc:creator>
      <dc:date>2025-10-31T14:59:33Z</dc:date>
    </item>
    <item>
      <title>Re: Databricks asset bundles CI/CD design for github actions</title>
      <link>https://community.databricks.com/t5/data-engineering/databricks-asset-bundles-ci-cd-design-for-github-actions/m-p/137414#M50739</link>
      <description>&lt;P&gt;Have you read about following approach before?&amp;nbsp;&lt;/P&gt;
&lt;P class="p1"&gt;&lt;SPAN class="s1"&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN class="s2"&gt;Repository Structure Options&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="p2"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class="p3"&gt;&lt;SPAN class="s1"&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN class="s3"&gt;1. &lt;/SPAN&gt;&lt;SPAN class="s2"&gt;Monorepo with Multiple Bundles&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="p2"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class="p4"&gt;&lt;SPAN class="s2"&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &lt;/SPAN&gt;repo-root/&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="p4"&gt;&lt;SPAN class="s2"&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &lt;/SPAN&gt;├── .github/&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="p4"&gt;&lt;SPAN class="s2"&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &lt;/SPAN&gt;│ &lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &lt;/SPAN&gt;└── workflows/&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="p4"&gt;&lt;SPAN class="s2"&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &lt;/SPAN&gt;│ &lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;├── bundle-ci.yml&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="p4"&gt;&lt;SPAN class="s2"&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &lt;/SPAN&gt;│ &lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;└── bundle-deploy.yml&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="p4"&gt;&lt;SPAN class="s2"&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &lt;/SPAN&gt;├── bundles/&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="p4"&gt;&lt;SPAN class="s2"&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &lt;/SPAN&gt;│ &lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &lt;/SPAN&gt;├── data-engineering/&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="p4"&gt;&lt;SPAN class="s2"&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &lt;/SPAN&gt;│ &lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &lt;/SPAN&gt;│ &lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &lt;/SPAN&gt;├── databricks.yml&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="p4"&gt;&lt;SPAN class="s2"&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &lt;/SPAN&gt;│ &lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &lt;/SPAN&gt;│ &lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &lt;/SPAN&gt;├── src/&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="p4"&gt;&lt;SPAN class="s2"&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &lt;/SPAN&gt;│ &lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &lt;/SPAN&gt;│ &lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &lt;/SPAN&gt;└── tests/&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="p4"&gt;&lt;SPAN class="s2"&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &lt;/SPAN&gt;│ &lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &lt;/SPAN&gt;├── ml-workflows/&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="p4"&gt;&lt;SPAN class="s2"&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &lt;/SPAN&gt;│ &lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &lt;/SPAN&gt;│ &lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &lt;/SPAN&gt;├── databricks.yml&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="p4"&gt;&lt;SPAN class="s2"&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &lt;/SPAN&gt;│ &lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &lt;/SPAN&gt;│ &lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &lt;/SPAN&gt;├── src/&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="p4"&gt;&lt;SPAN class="s2"&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &lt;/SPAN&gt;│ &lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &lt;/SPAN&gt;│ &lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &lt;/SPAN&gt;└── tests/&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="p4"&gt;&lt;SPAN class="s2"&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &lt;/SPAN&gt;│ &lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &lt;/SPAN&gt;└── analytics/&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="p4"&gt;&lt;SPAN class="s2"&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &lt;/SPAN&gt;│ &lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;├── databricks.yml&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="p4"&gt;&lt;SPAN class="s2"&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &lt;/SPAN&gt;│ &lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;├── src/&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="p4"&gt;&lt;SPAN class="s2"&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &lt;/SPAN&gt;│ &lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;└── tests/&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="p4"&gt;&lt;SPAN class="s2"&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &lt;/SPAN&gt;└── scripts/&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="p4"&gt;&lt;SPAN class="s2"&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;└── detect-changed-bundles.sh&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="p2"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class="p3"&gt;&lt;SPAN class="s1"&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN class="s3"&gt;2. &lt;/SPAN&gt;&lt;SPAN class="s2"&gt;Bundle-per-Directory with Shared Resources&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="p2"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class="p4"&gt;&lt;SPAN class="s2"&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &lt;/SPAN&gt;repo-root/&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="p4"&gt;&lt;SPAN class="s2"&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &lt;/SPAN&gt;├── .github/workflows/&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="p4"&gt;&lt;SPAN class="s2"&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &lt;/SPAN&gt;├── shared/&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="p4"&gt;&lt;SPAN class="s2"&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &lt;/SPAN&gt;│ &lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &lt;/SPAN&gt;├── libraries/&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="p4"&gt;&lt;SPAN class="s2"&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &lt;/SPAN&gt;│ &lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &lt;/SPAN&gt;└── configurations/&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="p4"&gt;&lt;SPAN class="s2"&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &lt;/SPAN&gt;├── bundle-1/&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="p4"&gt;&lt;SPAN class="s2"&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &lt;/SPAN&gt;│ &lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &lt;/SPAN&gt;└── databricks.yml&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="p4"&gt;&lt;SPAN class="s2"&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &lt;/SPAN&gt;├── bundle-2/&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="p4"&gt;&lt;SPAN class="s2"&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &lt;/SPAN&gt;│ &lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &lt;/SPAN&gt;└── databricks.yml&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="p4"&gt;&lt;SPAN class="s2"&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &lt;/SPAN&gt;└── bundle-3/&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="p4"&gt;&lt;SPAN class="s2"&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;└── databricks.yml&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="p2"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class="p1"&gt;&lt;SPAN class="s1"&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN class="s2"&gt;Dynamic Bundle Detection Strategy&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="p2"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class="p4"&gt;&lt;SPAN class="s2"&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &lt;/SPAN&gt;The key challenge you're facing is &lt;/SPAN&gt;&lt;SPAN class="s4"&gt;detecting which bundles changed in a PR&lt;/SPAN&gt;&lt;SPAN class="s2"&gt;. Here's a&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="p4"&gt;&lt;SPAN class="s2"&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &lt;/SPAN&gt;practical approach:&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="p2"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class="p5"&gt;&lt;SPAN class="s1"&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN class="s2"&gt;GitHub Actions Workflow with Dynamic Detection&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="p2"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class="p6"&gt;&lt;SPAN class="s1"&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN class="s5"&gt;name:&lt;/SPAN&gt; &lt;SPAN class="s2"&gt;Deploy&lt;/SPAN&gt; &lt;SPAN class="s2"&gt;Databricks&lt;/SPAN&gt; &lt;SPAN class="s2"&gt;Bundles&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="p2"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class="p7"&gt;&lt;SPAN class="s1"&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN class="s2"&gt;on:&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="p7"&gt;&lt;SPAN class="s1"&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN class="s2"&gt;pull_request:&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="p4"&gt;&lt;SPAN class="s2"&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN class="s5"&gt;branches:&lt;/SPAN&gt;&lt;SPAN class="s2"&gt; [&lt;/SPAN&gt;&lt;SPAN class="s6"&gt;main&lt;/SPAN&gt;&lt;SPAN class="s2"&gt;, &lt;/SPAN&gt;&lt;SPAN class="s6"&gt;develop&lt;/SPAN&gt;&lt;SPAN class="s2"&gt;]&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="p7"&gt;&lt;SPAN class="s1"&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN class="s2"&gt;push:&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="p4"&gt;&lt;SPAN class="s2"&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN class="s5"&gt;branches:&lt;/SPAN&gt;&lt;SPAN class="s2"&gt; [&lt;/SPAN&gt;&lt;SPAN class="s6"&gt;main&lt;/SPAN&gt;&lt;SPAN class="s2"&gt;, &lt;/SPAN&gt;&lt;SPAN class="s6"&gt;develop&lt;/SPAN&gt;&lt;SPAN class="s2"&gt;]&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="p2"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class="p7"&gt;&lt;SPAN class="s1"&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN class="s2"&gt;jobs:&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="p7"&gt;&lt;SPAN class="s1"&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN class="s2"&gt;detect-changed-bundles:&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="p6"&gt;&lt;SPAN class="s1"&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN class="s5"&gt;runs-on:&lt;/SPAN&gt; &lt;SPAN class="s2"&gt;ubuntu-latest&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="p7"&gt;&lt;SPAN class="s1"&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN class="s2"&gt;outputs:&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="p6"&gt;&lt;SPAN class="s1"&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN class="s5"&gt;bundles:&lt;/SPAN&gt; &lt;SPAN class="s2"&gt;${{&lt;/SPAN&gt; &lt;SPAN class="s2"&gt;steps.set-bundles.outputs.bundles&lt;/SPAN&gt; &lt;SPAN class="s2"&gt;}}&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="p6"&gt;&lt;SPAN class="s1"&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN class="s5"&gt;has-changes:&lt;/SPAN&gt; &lt;SPAN class="s2"&gt;${{&lt;/SPAN&gt; &lt;SPAN class="s2"&gt;steps.set-bundles.outputs.has-changes&lt;/SPAN&gt; &lt;SPAN class="s2"&gt;}}&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="p4"&gt;&lt;SPAN class="s2"&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN class="s5"&gt;steps:&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="p6"&gt;&lt;SPAN class="s1"&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;- &lt;/SPAN&gt;&lt;SPAN class="s5"&gt;uses:&lt;/SPAN&gt; &lt;SPAN class="s2"&gt;actions/checkout@v3&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="p4"&gt;&lt;SPAN class="s2"&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN class="s5"&gt;with:&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="p8"&gt;&lt;SPAN class="s1"&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN class="s5"&gt;fetch-depth:&lt;/SPAN&gt; &lt;SPAN class="s2"&gt;0&lt;/SPAN&gt;&lt;SPAN class="s1"&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN class="s2"&gt;# Important for git diff&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="p2"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class="p6"&gt;&lt;SPAN class="s1"&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;- &lt;/SPAN&gt;&lt;SPAN class="s5"&gt;name:&lt;/SPAN&gt; &lt;SPAN class="s2"&gt;Detect&lt;/SPAN&gt; &lt;SPAN class="s2"&gt;changed&lt;/SPAN&gt; &lt;SPAN class="s2"&gt;bundles&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="p4"&gt;&lt;SPAN class="s2"&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN class="s5"&gt;id:&lt;/SPAN&gt; &lt;SPAN class="s6"&gt;set-bundles&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="p4"&gt;&lt;SPAN class="s2"&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN class="s5"&gt;run:&lt;/SPAN&gt; &lt;SPAN class="s6"&gt;|&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="p6"&gt;&lt;SPAN class="s1"&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN class="s2"&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;# Get the base branch for comparison&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="p6"&gt;&lt;SPAN class="s1"&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN class="s2"&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;if [ "${{ github.event_name }}" == "pull_request" ]; then&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="p6"&gt;&lt;SPAN class="s1"&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN class="s2"&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;BASE_REF="${{ github.event.pull_request.base.sha }}"&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="p6"&gt;&lt;SPAN class="s1"&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN class="s2"&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;else&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="p6"&gt;&lt;SPAN class="s1"&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN class="s2"&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;BASE_REF="HEAD~1"&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="p6"&gt;&lt;SPAN class="s1"&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN class="s2"&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;fi&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="p2"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class="p8"&gt;&lt;SPAN class="s1"&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN class="s2"&gt;# Find all bundle directories (containing databricks.yml)&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="p6"&gt;&lt;SPAN class="s1"&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN class="s2"&gt;ALL_BUNDLES=$(find&lt;/SPAN&gt; &lt;SPAN class="s2"&gt;bundles&lt;/SPAN&gt; &lt;SPAN class="s2"&gt;-name&lt;/SPAN&gt; &lt;SPAN class="s2"&gt;"databricks.yml"&lt;/SPAN&gt; &lt;SPAN class="s2"&gt;-exec&lt;/SPAN&gt; &lt;SPAN class="s2"&gt;dirname&lt;/SPAN&gt;&lt;SPAN class="s1"&gt; {} &lt;/SPAN&gt;&lt;SPAN class="s2"&gt;\;&lt;/SPAN&gt; &lt;SPAN class="s2"&gt;|&lt;/SPAN&gt; &lt;SPAN class="s2"&gt;sort&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="p6"&gt;&lt;SPAN class="s1"&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN class="s2"&gt;-u)&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="p2"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class="p8"&gt;&lt;SPAN class="s1"&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN class="s2"&gt;# Detect which bundles have changes&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="p6"&gt;&lt;SPAN class="s1"&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN class="s2"&gt;CHANGED_BUNDLES=""&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="p6"&gt;&lt;SPAN class="s1"&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN class="s2"&gt;for&lt;/SPAN&gt; &lt;SPAN class="s2"&gt;bundle_dir&lt;/SPAN&gt; &lt;SPAN class="s2"&gt;in&lt;/SPAN&gt; &lt;SPAN class="s2"&gt;$ALL_BUNDLES;&lt;/SPAN&gt; &lt;SPAN class="s2"&gt;do&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="p6"&gt;&lt;SPAN class="s1"&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN class="s2"&gt;if&lt;/SPAN&gt; &lt;SPAN class="s2"&gt;git&lt;/SPAN&gt; &lt;SPAN class="s2"&gt;diff&lt;/SPAN&gt; &lt;SPAN class="s2"&gt;--name-only&lt;/SPAN&gt; &lt;SPAN class="s2"&gt;$BASE_REF&lt;/SPAN&gt; &lt;SPAN class="s2"&gt;HEAD&lt;/SPAN&gt; &lt;SPAN class="s2"&gt;|&lt;/SPAN&gt; &lt;SPAN class="s2"&gt;grep&lt;/SPAN&gt; &lt;SPAN class="s2"&gt;-q&lt;/SPAN&gt; &lt;SPAN class="s2"&gt;"^${bundle_dir}/";&lt;/SPAN&gt; &lt;SPAN class="s2"&gt;then&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="p6"&gt;&lt;SPAN class="s1"&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN class="s2"&gt;bundle_name=$(basename&lt;/SPAN&gt; &lt;SPAN class="s2"&gt;$bundle_dir)&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="p6"&gt;&lt;SPAN class="s1"&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN class="s2"&gt;CHANGED_BUNDLES="$CHANGED_BUNDLES\"$bundle_name\","&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="p4"&gt;&lt;SPAN class="s2"&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN class="s6"&gt;fi&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="p4"&gt;&lt;SPAN class="s2"&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN class="s6"&gt;done&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="p2"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class="p8"&gt;&lt;SPAN class="s1"&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN class="s2"&gt;# Format as JSON array for matrix strategy&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="p6"&gt;&lt;SPAN class="s1"&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN class="s2"&gt;if&lt;/SPAN&gt;&lt;SPAN class="s1"&gt; [ &lt;/SPAN&gt;&lt;SPAN class="s2"&gt;-n&lt;/SPAN&gt; &lt;SPAN class="s2"&gt;"$CHANGED_BUNDLES"&lt;/SPAN&gt;&lt;SPAN class="s1"&gt; ]&lt;/SPAN&gt;&lt;SPAN class="s2"&gt;;&lt;/SPAN&gt; &lt;SPAN class="s2"&gt;then&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="p6"&gt;&lt;SPAN class="s1"&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN class="s2"&gt;CHANGED_BUNDLES="[${CHANGED_BUNDLES%,}]"&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="p6"&gt;&lt;SPAN class="s1"&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN class="s2"&gt;echo&lt;/SPAN&gt; &lt;SPAN class="s2"&gt;"bundles=$CHANGED_BUNDLES"&lt;/SPAN&gt; &lt;SPAN class="s2"&gt;&amp;gt;&amp;gt;&lt;/SPAN&gt; &lt;SPAN class="s2"&gt;$GITHUB_OUTPUT&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="p6"&gt;&lt;SPAN class="s1"&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN class="s2"&gt;echo&lt;/SPAN&gt; &lt;SPAN class="s2"&gt;"has-changes=true"&lt;/SPAN&gt; &lt;SPAN class="s2"&gt;&amp;gt;&amp;gt;&lt;/SPAN&gt; &lt;SPAN class="s2"&gt;$GITHUB_OUTPUT&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="p4"&gt;&lt;SPAN class="s2"&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN class="s6"&gt;else&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="p6"&gt;&lt;SPAN class="s1"&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN class="s2"&gt;echo&lt;/SPAN&gt; &lt;SPAN class="s2"&gt;"bundles=[]"&lt;/SPAN&gt; &lt;SPAN class="s2"&gt;&amp;gt;&amp;gt;&lt;/SPAN&gt; &lt;SPAN class="s2"&gt;$GITHUB_OUTPUT&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="p6"&gt;&lt;SPAN class="s1"&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN class="s2"&gt;echo&lt;/SPAN&gt; &lt;SPAN class="s2"&gt;"has-changes=false"&lt;/SPAN&gt; &lt;SPAN class="s2"&gt;&amp;gt;&amp;gt;&lt;/SPAN&gt; &lt;SPAN class="s2"&gt;$GITHUB_OUTPUT&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="p4"&gt;&lt;SPAN class="s2"&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN class="s6"&gt;fi&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="p2"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class="p6"&gt;&lt;SPAN class="s1"&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN class="s2"&gt;echo&lt;/SPAN&gt; &lt;SPAN class="s2"&gt;"Changed bundles: $CHANGED_BUNDLES"&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="p2"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class="p7"&gt;&lt;SPAN class="s1"&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN class="s2"&gt;validate-bundles:&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="p6"&gt;&lt;SPAN class="s1"&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN class="s5"&gt;needs:&lt;/SPAN&gt; &lt;SPAN class="s2"&gt;detect-changed-bundles&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="p6"&gt;&lt;SPAN class="s1"&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN class="s5"&gt;if:&lt;/SPAN&gt; &lt;SPAN class="s2"&gt;needs.detect-changed-bundles.outputs.has-changes&lt;/SPAN&gt; &lt;SPAN class="s2"&gt;==&lt;/SPAN&gt; &lt;SPAN class="s2"&gt;'true'&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="p6"&gt;&lt;SPAN class="s1"&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN class="s5"&gt;runs-on:&lt;/SPAN&gt; &lt;SPAN class="s2"&gt;ubuntu-latest&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="p7"&gt;&lt;SPAN class="s1"&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN class="s2"&gt;strategy:&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="p4"&gt;&lt;SPAN class="s2"&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN class="s5"&gt;matrix:&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="p6"&gt;&lt;SPAN class="s1"&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN class="s5"&gt;bundle:&lt;/SPAN&gt; &lt;SPAN class="s2"&gt;${{&lt;/SPAN&gt; &lt;SPAN class="s2"&gt;fromJson(needs.detect-changed-bundles.outputs.bundles)&lt;/SPAN&gt; &lt;SPAN class="s2"&gt;}}&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="p4"&gt;&lt;SPAN class="s2"&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN class="s5"&gt;steps:&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="p6"&gt;&lt;SPAN class="s1"&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;- &lt;/SPAN&gt;&lt;SPAN class="s5"&gt;uses:&lt;/SPAN&gt; &lt;SPAN class="s2"&gt;actions/checkout@v3&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="p2"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class="p6"&gt;&lt;SPAN class="s1"&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;- &lt;/SPAN&gt;&lt;SPAN class="s5"&gt;name:&lt;/SPAN&gt; &lt;SPAN class="s2"&gt;Setup&lt;/SPAN&gt; &lt;SPAN class="s2"&gt;Databricks&lt;/SPAN&gt; &lt;SPAN class="s2"&gt;CLI&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="p6"&gt;&lt;SPAN class="s1"&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN class="s5"&gt;uses:&lt;/SPAN&gt; &lt;SPAN class="s2"&gt;databricks/setup-cli@main&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="p2"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class="p6"&gt;&lt;SPAN class="s1"&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;- &lt;/SPAN&gt;&lt;SPAN class="s5"&gt;name:&lt;/SPAN&gt; &lt;SPAN class="s2"&gt;Validate&lt;/SPAN&gt; &lt;SPAN class="s2"&gt;bundle&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="p4"&gt;&lt;SPAN class="s2"&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN class="s5"&gt;run:&lt;/SPAN&gt; &lt;SPAN class="s6"&gt;|&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="p6"&gt;&lt;SPAN class="s1"&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN class="s2"&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;cd bundles/${{ matrix.bundle }}&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="p6"&gt;&lt;SPAN class="s1"&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN class="s2"&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;databricks bundle validate -t dev&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="p4"&gt;&lt;SPAN class="s2"&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN class="s5"&gt;env:&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="p6"&gt;&lt;SPAN class="s1"&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN class="s5"&gt;DATABRICKS_HOST:&lt;/SPAN&gt; &lt;SPAN class="s2"&gt;${{&lt;/SPAN&gt; &lt;SPAN class="s2"&gt;secrets.DATABRICKS_HOST&lt;/SPAN&gt; &lt;SPAN class="s2"&gt;}}&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="p6"&gt;&lt;SPAN class="s1"&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN class="s5"&gt;DATABRICKS_TOKEN:&lt;/SPAN&gt; &lt;SPAN class="s2"&gt;${{&lt;/SPAN&gt; &lt;SPAN class="s2"&gt;secrets.DATABRICKS_TOKEN&lt;/SPAN&gt; &lt;SPAN class="s2"&gt;}}&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="p2"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class="p7"&gt;&lt;SPAN class="s1"&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN class="s2"&gt;deploy-bundles:&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="p6"&gt;&lt;SPAN class="s1"&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN class="s5"&gt;needs:&lt;/SPAN&gt;&lt;SPAN class="s1"&gt; [&lt;/SPAN&gt;&lt;SPAN class="s2"&gt;detect-changed-bundles&lt;/SPAN&gt;&lt;SPAN class="s1"&gt;, &lt;/SPAN&gt;&lt;SPAN class="s2"&gt;validate-bundles&lt;/SPAN&gt;&lt;SPAN class="s1"&gt;]&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="p6"&gt;&lt;SPAN class="s1"&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN class="s5"&gt;if:&lt;/SPAN&gt; &lt;SPAN class="s2"&gt;github.event_name&lt;/SPAN&gt; &lt;SPAN class="s2"&gt;==&lt;/SPAN&gt; &lt;SPAN class="s2"&gt;'push'&lt;/SPAN&gt; &lt;SPAN class="s2"&gt;&amp;amp;&amp;amp;&lt;/SPAN&gt; &lt;SPAN class="s2"&gt;needs.detect-changed-bundles.outputs.has-changes&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="p6"&gt;&lt;SPAN class="s1"&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN class="s2"&gt;==&lt;/SPAN&gt; &lt;SPAN class="s2"&gt;'true'&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="p6"&gt;&lt;SPAN class="s1"&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN class="s5"&gt;runs-on:&lt;/SPAN&gt; &lt;SPAN class="s2"&gt;ubuntu-latest&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="p7"&gt;&lt;SPAN class="s1"&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN class="s2"&gt;strategy:&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="p4"&gt;&lt;SPAN class="s2"&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN class="s5"&gt;matrix:&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="p6"&gt;&lt;SPAN class="s1"&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN class="s5"&gt;bundle:&lt;/SPAN&gt; &lt;SPAN class="s2"&gt;${{&lt;/SPAN&gt; &lt;SPAN class="s2"&gt;fromJson(needs.detect-changed-bundles.outputs.bundles)&lt;/SPAN&gt; &lt;SPAN class="s2"&gt;}}&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="p4"&gt;&lt;SPAN class="s2"&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN class="s5"&gt;steps:&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="p6"&gt;&lt;SPAN class="s1"&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;- &lt;/SPAN&gt;&lt;SPAN class="s5"&gt;uses:&lt;/SPAN&gt; &lt;SPAN class="s2"&gt;actions/checkout@v3&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="p2"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class="p6"&gt;&lt;SPAN class="s1"&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;- &lt;/SPAN&gt;&lt;SPAN class="s5"&gt;name:&lt;/SPAN&gt; &lt;SPAN class="s2"&gt;Setup&lt;/SPAN&gt; &lt;SPAN class="s2"&gt;Databricks&lt;/SPAN&gt; &lt;SPAN class="s2"&gt;CLI&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="p6"&gt;&lt;SPAN class="s1"&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN class="s5"&gt;uses:&lt;/SPAN&gt; &lt;SPAN class="s2"&gt;databricks/setup-cli@main&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="p2"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class="p4"&gt;&lt;SPAN class="s2"&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;- &lt;/SPAN&gt;&lt;SPAN class="s5"&gt;name:&lt;/SPAN&gt; &lt;SPAN class="s6"&gt;Deploy&lt;/SPAN&gt; &lt;SPAN class="s6"&gt;bundle&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="p4"&gt;&lt;SPAN class="s2"&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN class="s5"&gt;run:&lt;/SPAN&gt; &lt;SPAN class="s6"&gt;|&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="p6"&gt;&lt;SPAN class="s1"&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN class="s2"&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;cd bundles/${{ matrix.bundle }}&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="p6"&gt;&lt;SPAN class="s1"&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN class="s2"&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;databricks bundle deploy -t prod&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="p4"&gt;&lt;SPAN class="s2"&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN class="s5"&gt;env:&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="p6"&gt;&lt;SPAN class="s1"&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN class="s5"&gt;DATABRICKS_HOST:&lt;/SPAN&gt; &lt;SPAN class="s2"&gt;${{&lt;/SPAN&gt; &lt;SPAN class="s2"&gt;secrets.DATABRICKS_HOST&lt;/SPAN&gt; &lt;SPAN class="s2"&gt;}}&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="p6"&gt;&lt;SPAN class="s1"&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN class="s5"&gt;DATABRICKS_TOKEN:&lt;/SPAN&gt; &lt;SPAN class="s2"&gt;${{&lt;/SPAN&gt; &lt;SPAN class="s2"&gt;secrets.DATABRICKS_TOKEN&lt;/SPAN&gt; &lt;SPAN class="s2"&gt;}}&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="p2"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class="p1"&gt;&lt;SPAN class="s1"&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN class="s2"&gt;Alternative Approaches&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="p2"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class="p3"&gt;&lt;SPAN class="s1"&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN class="s3"&gt;1. &lt;/SPAN&gt;&lt;SPAN class="s2"&gt;Path Filters Approach&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="p2"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class="p7"&gt;&lt;SPAN class="s1"&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN class="s2"&gt;on:&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="p7"&gt;&lt;SPAN class="s1"&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN class="s2"&gt;pull_request:&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="p4"&gt;&lt;SPAN class="s2"&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN class="s5"&gt;paths:&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="p6"&gt;&lt;SPAN class="s1"&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;- &lt;/SPAN&gt;&lt;SPAN class="s2"&gt;'bundles/data-engineering/**'&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="p6"&gt;&lt;SPAN class="s1"&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;- &lt;/SPAN&gt;&lt;SPAN class="s2"&gt;'bundles/ml-workflows/**'&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="p2"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class="p7"&gt;&lt;SPAN class="s1"&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN class="s2"&gt;jobs:&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="p7"&gt;&lt;SPAN class="s1"&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN class="s2"&gt;deploy-data-engineering:&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="p6"&gt;&lt;SPAN class="s1"&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN class="s5"&gt;if:&lt;/SPAN&gt; &lt;SPAN class="s2"&gt;contains(github.event.pull_request.changed_files,&lt;/SPAN&gt; &lt;SPAN class="s2"&gt;'bundles/data-engineering/')&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="p8"&gt;&lt;SPAN class="s1"&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN class="s2"&gt;# ... deployment steps&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="p2"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class="p3"&gt;&lt;SPAN class="s1"&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN class="s3"&gt;2. &lt;/SPAN&gt;&lt;SPAN class="s2"&gt;Bundle Configuration File&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="p2"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class="p9"&gt;&lt;SPAN class="s1"&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &lt;/SPAN&gt;Create a &lt;/SPAN&gt;&lt;SPAN class="s2"&gt;bundles-config.json&lt;/SPAN&gt;&lt;SPAN class="s1"&gt;:&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="p4"&gt;&lt;SPAN class="s2"&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &lt;/SPAN&gt;{&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="p7"&gt;&lt;SPAN class="s1"&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN class="s2"&gt;"bundles"&lt;/SPAN&gt;&lt;SPAN class="s1"&gt;: [&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="p4"&gt;&lt;SPAN class="s2"&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;{&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="p6"&gt;&lt;SPAN class="s1"&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN class="s5"&gt;"name"&lt;/SPAN&gt;&lt;SPAN class="s1"&gt;: &lt;/SPAN&gt;&lt;SPAN class="s2"&gt;"data-engineering"&lt;/SPAN&gt;&lt;SPAN class="s1"&gt;,&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="p6"&gt;&lt;SPAN class="s1"&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN class="s5"&gt;"path"&lt;/SPAN&gt;&lt;SPAN class="s1"&gt;: &lt;/SPAN&gt;&lt;SPAN class="s2"&gt;"bundles/data-engineering"&lt;/SPAN&gt;&lt;SPAN class="s1"&gt;,&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="p4"&gt;&lt;SPAN class="s2"&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN class="s5"&gt;"target"&lt;/SPAN&gt;&lt;SPAN class="s2"&gt;: &lt;/SPAN&gt;&lt;SPAN class="s6"&gt;"prod"&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="p4"&gt;&lt;SPAN class="s2"&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;},&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="p4"&gt;&lt;SPAN class="s2"&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;{&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="p6"&gt;&lt;SPAN class="s1"&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN class="s5"&gt;"name"&lt;/SPAN&gt;&lt;SPAN class="s1"&gt;: &lt;/SPAN&gt;&lt;SPAN class="s2"&gt;"ml-workflows"&lt;/SPAN&gt;&lt;SPAN class="s1"&gt;,&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="p6"&gt;&lt;SPAN class="s1"&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN class="s5"&gt;"path"&lt;/SPAN&gt;&lt;SPAN class="s1"&gt;: &lt;/SPAN&gt;&lt;SPAN class="s2"&gt;"bundles/ml-workflows"&lt;/SPAN&gt;&lt;SPAN class="s1"&gt;,&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="p4"&gt;&lt;SPAN class="s2"&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN class="s5"&gt;"target"&lt;/SPAN&gt;&lt;SPAN class="s2"&gt;: &lt;/SPAN&gt;&lt;SPAN class="s6"&gt;"prod"&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="p4"&gt;&lt;SPAN class="s2"&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;}&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="p4"&gt;&lt;SPAN class="s2"&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;]&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="p4"&gt;&lt;SPAN class="s2"&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &lt;/SPAN&gt;}&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="p2"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class="p3"&gt;&lt;SPAN class="s1"&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN class="s3"&gt;3. &lt;/SPAN&gt;&lt;SPAN class="s2"&gt;Labels-Based Deployment (for PRs)&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="p2"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class="p7"&gt;&lt;SPAN class="s1"&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN class="s2"&gt;jobs:&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="p7"&gt;&lt;SPAN class="s1"&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN class="s2"&gt;deploy:&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="p6"&gt;&lt;SPAN class="s1"&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN class="s5"&gt;if:&lt;/SPAN&gt; &lt;SPAN class="s2"&gt;contains(github.event.pull_request.labels.*.name,&lt;/SPAN&gt; &lt;SPAN class="s2"&gt;'deploy:bundle-name')&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="p8"&gt;&lt;SPAN class="s1"&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN class="s2"&gt;# ... deployment steps&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Mon, 03 Nov 2025 15:09:20 GMT</pubDate>
      <guid>https://community.databricks.com/t5/data-engineering/databricks-asset-bundles-ci-cd-design-for-github-actions/m-p/137414#M50739</guid>
      <dc:creator>AbhaySingh</dc:creator>
      <dc:date>2025-11-03T15:09:20Z</dc:date>
    </item>
  </channel>
</rss>

