<?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>article CI/CD Integration with Databricks Workflows in Technical Blog</title>
    <link>https://community.databricks.com/t5/technical-blog/ci-cd-integration-with-databricks-workflows/ba-p/81821</link>
    <description>&lt;DIV class="page" title="Page 1"&gt;
&lt;DIV class="section"&gt;
&lt;DIV class="layoutArea"&gt;
&lt;DIV class="column"&gt;
&lt;P&gt;&lt;FONT size="5"&gt;&lt;U&gt;&lt;STRONG&gt;CICD with Databricks Asset Bundles, Workflows and Azure DevOps &lt;/STRONG&gt;&lt;/U&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;In this article you will learn how to set up Databricks Workflows with CI/CD. There are two essential components needed for a complete CI/CD setup of Workflow jobs. &lt;/SPAN&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;
&lt;P&gt;&lt;SPAN&gt;Databricks Asset Bundles (DABs): &lt;/SPAN&gt;&lt;SPAN&gt;&lt;A href="https://learn.microsoft.com/en-us/azure/databricks/dev-tools/bundles/" target="_blank" rel="noopener"&gt;https://learn.microsoft.com/en-us/azure/databricks/dev-tools/bundles/&lt;/A&gt; &lt;/SPAN&gt;&lt;/P&gt;
&lt;/LI&gt;
&lt;LI&gt;
&lt;P&gt;&lt;SPAN&gt;AzureDevOps pipeline.&lt;/SPAN&gt;&lt;/P&gt;
&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&lt;U&gt;&lt;STRONG&gt;&lt;SPAN&gt;Getting started with Databricks Asset Bundles&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/U&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;We can use Databricks Asset Bundle(DABs) with the Databricks CLI from any terminal to deploy Workflows. Please note that Databricks Asset Bundles (DABs) are available in the latest version of databricks-cli (v0.205.0 and above). The legacy version will not work. &lt;/SPAN&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;SPAN&gt;Installation of Databricks-cli in local terminal:&lt;/SPAN&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;SPAN&gt;Run the below commands to install databricks-cli in the local terminal:&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN&gt;For more details, follow the below link to install databrick cli(v0.205 and&amp;nbsp; above): &lt;A href="https://learn.microsoft.com/en-us/azure/databricks/dev-tools/cli/install#--curl-installation-for-linux-macos-and-windows" target="_blank" rel="noopener"&gt;https://learn.microsoft.com/en-us/azure/databricks/dev-tools/cli/install#--curl-installation-for-linux-macos-and-windows&lt;/A&gt;&lt;/SPAN&gt;&lt;LI-CODE lang="python"&gt;curl -fsSL https://raw.githubusercontent.com/databricks/setup-cli/main/install.sh | sh&lt;/LI-CODE&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;/LI&gt;
&lt;/UL&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;SPAN&gt;Authenticate your databricks cli to dev workspace(Using PAT):&lt;/SPAN&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;SPAN&gt;Follow the steps from the below link to authenticate local terminal to dev workspace using personal access token PAT: &lt;/SPAN&gt;&lt;A href="https://learn.microsoft.com/en-us/azure/databricks/dev-tools/cli/authentication#--azure-databricks-personal-access-token-authentication" target="_blank" rel="noopener"&gt;&lt;SPAN&gt;https://learn.microsoft.com/en-us/azure/databricks/dev-tools/cli/authentication#--azure-databricks-personal-access-token-authentication&lt;/SPAN&gt;&lt;/A&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;/LI&gt;
&lt;/UL&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;DIV class="page" title="Page 2"&gt;
&lt;DIV class="section"&gt;
&lt;DIV class="layoutArea"&gt;
&lt;DIV class="column"&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;SPAN&gt;Authenticate your databricks cli to dev workspace(Using Service principal):&lt;/SPAN&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;SPAN&gt;Follow the steps from the below link to authenticate local terminal to dev workspace using a Service principal: &lt;A href="https://learn.microsoft.com/en-us/azure/databricks/dev-tools/cli/authentication#--microsoft-entra-id-service-principal-authentication" target="_blank" rel="noopener"&gt;https://learn.microsoft.com/en-us/azure/databricks/dev-tools/cli/authentication#--microsoft-entra-id-service-principal-authentication&lt;/A&gt; &lt;/SPAN&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&lt;SPAN&gt;From your local terminal, run the following command:&lt;/SPAN&gt;&lt;/P&gt;
&lt;LI-CODE lang="python"&gt;databricks bundle init&lt;/LI-CODE&gt;
&lt;P&gt;&lt;SPAN&gt;When prompted, select Python project and provide a project name (e.g., &lt;/SPAN&gt;&lt;I&gt;&lt;SPAN&gt;demo_wf&lt;/SPAN&gt;&lt;/I&gt;&lt;SPAN&gt;). &lt;/SPAN&gt;&lt;SPAN&gt;After you complete the prompts, a folder will be generated with the project name containing all the components needed for a Workflow, as shown below.&lt;/SPAN&gt;&lt;/P&gt;
&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="SashankKotta_1-1723049093943.png" style="width: 624px;"&gt;&lt;img src="https://community.databricks.com/t5/image/serverpage/image-id/10207iA7C2D76E849C4477/image-dimensions/624x63?v=v2" width="624" height="63" role="button" title="SashankKotta_1-1723049093943.png" alt="SashankKotta_1-1723049093943.png" /&gt;&lt;/span&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;/DIV&gt;
&lt;DIV class="column"&gt;&lt;SPAN&gt;Next, navigate to the project directory.&lt;/SPAN&gt;&lt;LI-CODE lang="python"&gt;cd demo_wf&lt;/LI-CODE&gt;
&lt;P&gt;&lt;SPAN&gt;We need the notebooks in .ipynb format inside the &lt;/SPAN&gt;&lt;SPAN&gt;src &lt;/SPAN&gt;&lt;SPAN&gt;folder. These notebook files will be the respective tasks in the Workflow. We can also create DLT pipelines and libraries as individual tasks. &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;Inside the &lt;/SPAN&gt;&lt;SPAN&gt;resources &lt;/SPAN&gt;&lt;SPAN&gt;folder, we will have a YAML file called &lt;/SPAN&gt;&lt;SPAN&gt;&amp;lt;project_name&amp;gt;_job.yml &lt;/SPAN&gt;&lt;SPAN&gt;(in our case, &lt;/SPAN&gt;&lt;SPAN&gt;demo_wf_job.yml&lt;/SPAN&gt;&lt;SPAN&gt;). This file defines the task flow:&lt;/SPAN&gt;&lt;/P&gt;
&lt;LI-CODE lang="python"&gt;tasks:
  - task_key: task1
    job_cluster_key: job_cluster
    notebook_task:
      notebook_path: ../src/notebook_1.ipynb
  - task_key: task2
    job_cluster_key: job_cluster
    notebook_task:
      notebook_path: ../src/notebook_2.ipynb
    depends_on:
- task_key: task1&lt;/LI-CODE&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;DIV class="page" title="Page 3"&gt;
&lt;DIV class="section"&gt;
&lt;DIV class="layoutArea"&gt;
&lt;DIV class="column"&gt;
&lt;P&gt;&lt;SPAN&gt;After navigating to the project directory (&lt;/SPAN&gt;&lt;SPAN&gt;demo_wf&lt;/SPAN&gt;&lt;SPAN&gt;), run the following command to catch any syntax errors prior to deployment.&lt;/SPAN&gt;&lt;/P&gt;
&lt;LI-CODE lang="python"&gt;databricks bundle validate&lt;/LI-CODE&gt;
&lt;P&gt;&lt;SPAN&gt;Finally, run the command to deploy the Workflow in development mode.&lt;/SPAN&gt;&lt;/P&gt;
&lt;LI-CODE lang="python"&gt;databricks bundle deploy -t dev&lt;/LI-CODE&gt;
&lt;P&gt;&lt;SPAN&gt;At this point, you have a sample project with a Workflow deployed to your Databricks Workspace. &lt;/SPAN&gt;&lt;SPAN&gt;The same commands can be run from a build pipeline in Azure DevOps, and that will complete the CICD setup. &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;U&gt;&lt;STRONG&gt;Using DABs in Azure DevOps pipelines:&lt;/STRONG&gt;&lt;/U&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;To begin, we need an Azure virtual machine to run commands as an agent for our DevOps pipeline. Create a virtual machine in Azure, assign a Network security group, and set inbound rules to allow SSH (port 22) from your IP address so you can&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;connect using SSH and do the setup on this virtual machine. While creating the VM, we will be asked to download a .pem file - keep it safe as it is needed while connecting to the VM through an SSH.&lt;/SPAN&gt;&lt;/P&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;DIV class="page" title="Page 4"&gt;
&lt;DIV class="section"&gt;
&lt;DIV class="layoutArea"&gt;
&lt;DIV class="column"&gt;
&lt;P&gt;&lt;SPAN&gt;The next step is to install the databricks-cli on this VM and configure this machine as an agent for your Azure agent pool. If you have setup the inbound networking rules correctly, you can connect to the VM using the command:&lt;/SPAN&gt;&lt;/P&gt;
&lt;LI-CODE lang="python"&gt;ssh -i &amp;lt;path_to_pem&amp;gt;/&amp;lt;file_name&amp;gt;.pem &amp;lt;username&amp;gt;@&amp;lt;hostname&amp;gt;&lt;/LI-CODE&gt;
&lt;P&gt;&lt;SPAN&gt;Now install the databricks-cli:&lt;/SPAN&gt;&lt;/P&gt;
&lt;LI-CODE lang="python"&gt;curl -fsSL https://raw.githubusercontent.com/databricks/setup-cli/main/install.sh | sudo sh&lt;/LI-CODE&gt;
&lt;P&gt;&lt;SPAN&gt;If you get any errors concerning unzip, then please install unzip using the below commands and re-run the above curl command:&lt;/SPAN&gt;&lt;/P&gt;
&lt;LI-CODE lang="python"&gt;sudo apt update -y
sudo apt install unzip -y&lt;/LI-CODE&gt;
&lt;P&gt;&lt;SPAN&gt;Next, configure the VM to run as an agent in the Azure agent pool by following the steps below.&lt;/SPAN&gt;&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;&lt;STRONG style="font-family: inherit;"&gt;Create a Self-hosted Agent in Azure DevOps:&amp;nbsp;&lt;/STRONG&gt;To create a self-hosted agent, go to &lt;STRONG style="color: #1b3139; font-family: inherit;"&gt;Project Settings&lt;/STRONG&gt;&lt;SPAN&gt; (Bottom left) and select the &lt;/SPAN&gt;&lt;STRONG style="color: #1b3139; font-family: inherit;"&gt;Agent pools&lt;/STRONG&gt;&lt;SPAN&gt; option under the &lt;/SPAN&gt;&lt;STRONG style="color: #1b3139; font-family: inherit;"&gt;Pipelines&lt;/STRONG&gt;&lt;SPAN&gt; section. Press the &lt;/SPAN&gt;&lt;STRONG style="color: #1b3139; font-family: inherit;"&gt;Add pool&lt;/STRONG&gt;&lt;SPAN&gt; button and configure the agent:&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/OL&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;DIV class="page" title="Page 5"&gt;
&lt;DIV class="section"&gt;
&lt;DIV class="layoutArea"&gt;
&lt;DIV class="column"&gt;
&lt;OL&gt;
&lt;LI style="list-style-type: none;"&gt;
&lt;OL&gt;
&lt;UL&gt;
&lt;LI style="font-weight: 400;" aria-level="2"&gt;&lt;SPAN&gt;Select the &lt;/SPAN&gt;&lt;STRONG&gt;Pool type&lt;/STRONG&gt;&lt;SPAN&gt; as Self-hosted&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI style="font-weight: 400;" aria-level="2"&gt;&lt;SPAN&gt;Add a descriptive pool &lt;/SPAN&gt;&lt;STRONG&gt;Name&lt;/STRONG&gt;&lt;SPAN&gt; (in this example &lt;/SPAN&gt;&lt;SPAN&gt;my-demo-pool&lt;/SPAN&gt;&lt;SPAN&gt;)&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI style="font-weight: 400;" aria-level="2"&gt;&lt;SPAN&gt;Check the &lt;/SPAN&gt;&lt;STRONG&gt;Pipeline permissions&lt;/STRONG&gt;&lt;SPAN&gt; box so you do not need to grant permission manually&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI style="font-weight: 400;" aria-level="2"&gt;Click on the &lt;STRONG style="color: #1b3139; font-family: inherit;"&gt;Create&lt;/STRONG&gt;&lt;SPAN&gt; button&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI style="font-weight: 400;" aria-level="2"&gt;For more details, refer to the link: &lt;A style="font-family: inherit; background-color: #ffffff;" href="https://learn.microsoft.com/en-us/azure/devops/pipelines/agents/pools-queues?view=azure-devops&amp;amp;tabs=yaml%2Cbrowser" target="_blank" rel="noopener"&gt;&lt;SPAN&gt;Create or manage agent pool&lt;/SPAN&gt;&lt;/A&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;/OL&gt;
&lt;/LI&gt;
&lt;LI style="font-weight: 400;" aria-level="2"&gt;&lt;SPAN&gt;On the top-right corner, press the &lt;/SPAN&gt;&lt;SPAN&gt;New Agent &lt;/SPAN&gt;&lt;SPAN&gt;button. You can create&amp;nbsp;&lt;/SPAN&gt;Windows, macOS, and Linux agents. Based on your VM, select the appropriate OS, then follow the instructions; in our case, we used an Ubuntu image so that it will be a Linux agent.
&lt;UL&gt;
&lt;LI style="font-weight: 400;" aria-level="2"&gt;&lt;SPAN&gt;Connect to the VM using the SSH&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI style="font-weight: 400;" aria-level="2"&gt;Download the agent then extract it to a folder using the below linux commands in the VM terminal.&lt;LI-CODE lang="python"&gt;#Create a directory named myagent
mkdir myagent 

#Navigate to that agent.
cd myagent 

#Download the linux agent zip from the link given in the instructions using linux
wget https://vstsagentpackage.azureedge.net/agent/3.236.1/vsts-agent-linux-x64-3.236.1.tar.gz 

#Unzip the agent file from the downloaded zip
tar zxvf ~/Downloads/vsts-agent-linux-x64-3.236.1.tar.gz &lt;/LI-CODE&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN&gt;&lt;SPAN&gt;&lt;SPAN&gt;Configure the agent by running the config script in the VM terminal:&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;LI-CODE lang="python"&gt;./config.sh&lt;/LI-CODE&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;SPAN&gt;Fill in the following prompts: &lt;/SPAN&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;SPAN&gt;Server URL: Copy and paste the organization URL, which looks like the &lt;/SPAN&gt;&lt;SPAN&gt;following: &lt;/SPAN&gt;&lt;SPAN&gt;&lt;A href="https://dev.azure.com/" target="_blank" rel="noopener"&gt;https://dev.azure.com/&lt;/A&gt;&amp;lt;my-organization-name&amp;gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN&gt;Personal Access Token (PAT): Go to the Personal Access Tokens option&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;under the User Settings icon. Ensure you generate a PAT with Read &amp;amp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;manage access to the Agent pools.&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN&gt;Agent pool name: The newly created pool, which is the my-demo-pool &lt;/SPAN&gt;&lt;SPAN&gt;in our case &lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN&gt;Agent Name: Give a meaningful name or stay with the default &lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN&gt;Work folder: Press enter for the default &lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN&gt;Agent as Service: Press enter to use the default.&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;/LI&gt;
&lt;/UL&gt;
&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN&gt;Run the agent by executing the run script. &lt;/SPAN&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;LI-CODE lang="python"&gt;./run.sh&lt;/LI-CODE&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN&gt;Once done, you can see that the Agent is up and running under the Agents panel. The self-hosted agent is connected to Azure DevOps and listens for new jobs. &lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN&gt;For more details, refer to the link: &lt;/SPAN&gt;&lt;A href="https://learn.microsoft.com/en-us/azure/devops/pipelines/agents/linux-agent?view=azure-devops" target="_blank" rel="noopener"&gt;&lt;SPAN&gt;Self-hosted agent&lt;/SPAN&gt;&lt;/A&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN&gt;Now that the agent VM is configured, the next step is to create azure-pipelines.yml (DevOps &lt;/SPAN&gt;&lt;SPAN&gt;pipeline). Yaml should look like the one below. &lt;/SPAN&gt;&lt;/LI&gt;
&lt;/OL&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;DIV class="page" title="Page 6"&gt;
&lt;DIV class="section"&gt;
&lt;DIV class="layoutArea"&gt;
&lt;DIV class="column"&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;DIV class="page" title="Page 7"&gt;
&lt;DIV class="section"&gt;
&lt;DIV class="layoutArea"&gt;
&lt;DIV class="column"&gt;&lt;LI-CODE lang="python"&gt;# Starter pipeline
# Start with a minimal pipeline that you can customize to build and deploy your code.
# Add steps that build, run tests, deploy, and more:
# https://aka.ms/yaml
trigger:
- main
pool: my-demo-pool
steps:
- script: echo "Hello, world!"
  displayName: 'Run a one-line script'
- script: |
    echo Add other tasks to build, test, and deploy your project.
    echo See https://aka.ms/yaml
  displayName: 'Run a multi-line script'
- task: Bash@3
  inputs:
    targetType: 'inline'
    script: |
      # Write your commands here
      echo 'Hello world'

      touch ~/.databrickscfg
      echo "[DEFAULT]" &amp;gt; ~/.databrickscfg
      echo "host = &amp;lt;workspace_host_url&amp;gt;" &amp;gt;&amp;gt; ~/.databrickscfg
      echo "azure_workspace_resource_id = &amp;lt;Azure_sp_resource_id&amp;gt;" &amp;gt;&amp;gt; ~/.databrickscfg
      echo "azure_tenant_id = &amp;lt;tenant_id&amp;gt;" &amp;gt;&amp;gt; ~/.databrickscfg
      echo "azure_client_id = &amp;lt;spn_client_id&amp;gt;" &amp;gt;&amp;gt; ~/.databrickscfg
      echo "azure_client_secret =&amp;lt;client_secret&amp;gt;" &amp;gt;&amp;gt; ~/.databrickscfg
      cat ~/.databrickscfg

      databricks bundle validate
      databricks bundle deploy -t dev
&lt;/LI-CODE&gt;
&lt;P&gt;&lt;SPAN&gt;T&lt;/SPAN&gt;&lt;SPAN&gt;o ensure our CI/CD is working as expected, the VM Agent should be up and running under the Agents panel (Project settings &amp;gt; Agent pools &amp;gt; Agents tab). The folder structure in the main branch of Azure DevOps should look this:&lt;/SPAN&gt;&lt;/P&gt;
&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="SashankKotta_0-1723049447830.png" style="width: 656px;"&gt;&lt;img src="https://community.databricks.com/t5/image/serverpage/image-id/10209iA61E059FCE902E61/image-dimensions/656x328?v=v2" width="656" height="328" role="button" title="SashankKotta_0-1723049447830.png" alt="SashankKotta_0-1723049447830.png" /&gt;&lt;/span&gt;&lt;/DIV&gt;
&lt;DIV class="column"&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV class="column"&gt;&lt;SPAN&gt;Any changes to the Azure DevOps main branch should be deployed/reflected in the Workflow jobs of your Databricks Workspace.&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;DIV class="page" title="Page 8"&gt;
&lt;DIV class="section"&gt;
&lt;DIV class="layoutArea"&gt;
&lt;DIV class="column"&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="SashankKotta_2-1723049195748.png" style="width: 657px;"&gt;&lt;img src="https://community.databricks.com/t5/image/serverpage/image-id/10208iDD0FAFEA32A4C838/image-dimensions/657x269?v=v2" width="657" height="269" role="button" title="SashankKotta_2-1723049195748.png" alt="SashankKotta_2-1723049195748.png" /&gt;&lt;/span&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;DIV class="layoutArea"&gt;
&lt;DIV class="column"&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;U&gt;Conclusion:&lt;/U&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;In conclusion, setting up Databricks Workflows with CI/CD involves two key components: Databricks Asset Bundles (DABs) and an Azure DevOps pipeline. By using DABs with the Databricks CLI, you can easily deploy workflows from any terminal. Integrating this setup with Azure DevOps requires configuring a virtual machine as an agent, installing necessary tools, and creating a pipeline to automate deployments, ensuring seamless updates to your Databricks Workflows. &lt;/SPAN&gt;&lt;/P&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;DIV class="page" title="Page 9"&gt;&amp;nbsp;&lt;/DIV&gt;</description>
    <pubDate>Tue, 27 Aug 2024 12:50:07 GMT</pubDate>
    <dc:creator>SashankKotta</dc:creator>
    <dc:date>2024-08-27T12:50:07Z</dc:date>
    <item>
      <title>CI/CD Integration with Databricks Workflows</title>
      <link>https://community.databricks.com/t5/technical-blog/ci-cd-integration-with-databricks-workflows/ba-p/81821</link>
      <description>&lt;P&gt;CI/CD Integration with Databricks Workflows: A Practical Guide: This article provides a hands-on approach to setting up Databricks Workflows with CI/CD. It focuses on the use of Databricks Asset Bundles (DABs) and Azure DevOps pipeline, detailing the process of deploying workflows from any terminal and creating a pipeline for automated deployments.&lt;/P&gt;</description>
      <pubDate>Tue, 27 Aug 2024 12:50:07 GMT</pubDate>
      <guid>https://community.databricks.com/t5/technical-blog/ci-cd-integration-with-databricks-workflows/ba-p/81821</guid>
      <dc:creator>SashankKotta</dc:creator>
      <dc:date>2024-08-27T12:50:07Z</dc:date>
    </item>
    <item>
      <title>Re: CI/CD Integration with Databricks Workflows</title>
      <link>https://community.databricks.com/t5/technical-blog/ci-cd-integration-with-databricks-workflows/bc-p/84403#M256</link>
      <description>&lt;P&gt;&lt;a href="https://community.databricks.com/t5/user/viewprofilepage/user-id/108479"&gt;@SashankKotta&lt;/a&gt;&amp;nbsp; Awesome, thank you for sharing this !!!&lt;/P&gt;</description>
      <pubDate>Tue, 27 Aug 2024 13:37:14 GMT</pubDate>
      <guid>https://community.databricks.com/t5/technical-blog/ci-cd-integration-with-databricks-workflows/bc-p/84403#M256</guid>
      <dc:creator>Vishwajeet_Pol</dc:creator>
      <dc:date>2024-08-27T13:37:14Z</dc:date>
    </item>
    <item>
      <title>Re: CI/CD Integration with Databricks Workflows</title>
      <link>https://community.databricks.com/t5/technical-blog/ci-cd-integration-with-databricks-workflows/bc-p/89079#M266</link>
      <description>&lt;P&gt;&lt;a href="https://community.databricks.com/t5/user/viewprofilepage/user-id/108479"&gt;@SashankKotta&lt;/a&gt;&amp;nbsp;Thanks for sharing&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Sun, 08 Sep 2024 15:53:01 GMT</pubDate>
      <guid>https://community.databricks.com/t5/technical-blog/ci-cd-integration-with-databricks-workflows/bc-p/89079#M266</guid>
      <dc:creator>Ajay-Pandey</dc:creator>
      <dc:date>2024-09-08T15:53:01Z</dc:date>
    </item>
    <item>
      <title>Re: CI/CD Integration with Databricks Workflows</title>
      <link>https://community.databricks.com/t5/technical-blog/ci-cd-integration-with-databricks-workflows/bc-p/95393#M324</link>
      <description>&lt;P&gt;Thank for sharing the helpful instruction for ci/cd with azure databricks&amp;nbsp;&lt;a href="https://community.databricks.com/t5/user/viewprofilepage/user-id/108479"&gt;@SashankKotta&lt;/a&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 22 Oct 2024 02:16:07 GMT</pubDate>
      <guid>https://community.databricks.com/t5/technical-blog/ci-cd-integration-with-databricks-workflows/bc-p/95393#M324</guid>
      <dc:creator>prachy</dc:creator>
      <dc:date>2024-10-22T02:16:07Z</dc:date>
    </item>
    <item>
      <title>Re: CI/CD Integration with Databricks Workflows</title>
      <link>https://community.databricks.com/t5/technical-blog/ci-cd-integration-with-databricks-workflows/bc-p/96678#M341</link>
      <description>&lt;P&gt;&lt;a href="https://community.databricks.com/t5/user/viewprofilepage/user-id/108479"&gt;@SashankKotta&lt;/a&gt;&amp;nbsp;Thank you for sharing this. just wondering when we are deploying Databricks with standard deployment which has 2 VNets (VNet Injection) If we already have another VNet for&amp;nbsp;&lt;SPAN&gt;AzureDevOps pipeline, can we do VNet peering to Transit VNet to connect to compute workspace or any suggestions?&amp;nbsp;&lt;BR /&gt;ps. I am trying to do not creating new VM in Transit VNet to use the existing if it is possible.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Thank you&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Tue, 29 Oct 2024 16:11:45 GMT</pubDate>
      <guid>https://community.databricks.com/t5/technical-blog/ci-cd-integration-with-databricks-workflows/bc-p/96678#M341</guid>
      <dc:creator>prachy</dc:creator>
      <dc:date>2024-10-29T16:11:45Z</dc:date>
    </item>
    <item>
      <title>Re: CI/CD Integration with Databricks Workflows</title>
      <link>https://community.databricks.com/t5/technical-blog/ci-cd-integration-with-databricks-workflows/bc-p/96756#M343</link>
      <description>&lt;P&gt;How do I compose the DAB YAML ?&amp;nbsp; How do I know about the keys for the key-value pair ?&amp;nbsp; &amp;nbsp;Thanks&lt;/P&gt;</description>
      <pubDate>Wed, 30 Oct 2024 06:57:26 GMT</pubDate>
      <guid>https://community.databricks.com/t5/technical-blog/ci-cd-integration-with-databricks-workflows/bc-p/96756#M343</guid>
      <dc:creator>d_kabilan</dc:creator>
      <dc:date>2024-10-30T06:57:26Z</dc:date>
    </item>
  </channel>
</rss>

