<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>DevOps &#8211; Sibeesh Passion</title>
	<atom:link href="https://sibeeshpassion.com/tag/devops/feed/" rel="self" type="application/rss+xml" />
	<link>https://sibeeshpassion.com</link>
	<description>My passion towards life</description>
	<lastBuildDate>Mon, 09 Mar 2020 15:59:44 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>

<image>
	<url>/wp-content/uploads/2017/04/Sibeesh_Passion_Logo_Small.png</url>
	<title>DevOps &#8211; Sibeesh Passion</title>
	<link>https://sibeeshpassion.com</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Move Azure DevOps Work Items From One Organization to Another</title>
		<link>https://sibeeshpassion.com/move-azure-devops-work-items-from-one-organization-to-another/</link>
					<comments>https://sibeeshpassion.com/move-azure-devops-work-items-from-one-organization-to-another/#disqus_thread</comments>
		
		<dc:creator><![CDATA[SibeeshVenu]]></dc:creator>
		<pubDate>Mon, 09 Mar 2020 15:45:27 +0000</pubDate>
				<category><![CDATA[Azure]]></category>
		<category><![CDATA[azure devops]]></category>
		<category><![CDATA[Azure DevOps]]></category>
		<category><![CDATA[azure scrum]]></category>
		<category><![CDATA[DevOps]]></category>
		<category><![CDATA[move workitems azure devops]]></category>
		<category><![CDATA[org to org work items transfer]]></category>
		<guid isPermaLink="false">https://sibeeshpassion.com/?p=14052</guid>

					<description><![CDATA[[toc] Introduction I understand that you need to move all of your Azure DevOps Work Items from one of your organization to another. And that is the reason why you are reading this article, no worries, you came to the right place. At the end of this article, I am sure that you will be able to achieve this. In my previous article, I had shown you how you can move your repository from one organization to another, if you have not read it, consider reading it. Move Work Items to Another DevOps As I mentioned in my previous post [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>[toc]</p>



<h2 class="wp-block-heading">Introduction</h2>



<p>I understand that you need to move all of your Azure DevOps Work Items from one of your organization to another. And that is the reason why you are reading this article, no worries, you came to the right place. At the end of this article, I am sure that you will be able to achieve this. In my previous article, <a href="https://medium.com/@sibeeshvenu/move-git-repositories-from-one-to-other-organization-in-azure-devops-d15ee4283dc9">I had shown you how you can move your repository from one organization to another</a>, if you have not read it, consider reading it. </p>



<h2 class="wp-block-heading">Move Work Items to Another DevOps </h2>



<p>As I mentioned in my previous post I had already set up a sample project in my source DevOps organization and another in my destination DevOps organization. Then I created a sample user and gave access to both projects.</p>



<h3 class="wp-block-heading">Check the DevOps Project Process</h3>



<p> Now before we start we need to make sure that both of the projects follow the same Process in the DevOps.</p>



<div class="wp-block-image"><figure class="aligncenter size-large"><img fetchpriority="high" decoding="async" width="1024" height="788" src="https://sibeeshpassion.com/wp-content/uploads/2020/03/DevOps-Process-Check-1024x788.png" alt="" class="wp-image-14053" srcset="/wp-content/uploads/2020/03/DevOps-Process-Check-1024x788.png 1024w, /wp-content/uploads/2020/03/DevOps-Process-Check-300x231.png 300w, /wp-content/uploads/2020/03/DevOps-Process-Check-768x591.png 768w, /wp-content/uploads/2020/03/DevOps-Process-Check-425x327.png 425w, /wp-content/uploads/2020/03/DevOps-Process-Check.png 1119w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption>DevOps Process Check</figcaption></figure></div>



<h3 class="wp-block-heading">Change the Project Process</h3>



<p>If the process of the two projects is different, then you will end up in many issues in the publishing steps, thus changing it to one is very important. To change, you need to have certain permissions as mentioned in <a href="https://docs.microsoft.com/en-us/azure/devops/organizations/settings/work/change-process-agile-to-scrum?view=azure-devops#prerequisites"><strong>this post</strong></a>. Once you have enough permission, go to your organization settings and click on the Process menu under Boards.</p>



<div class="wp-block-image"><figure class="aligncenter size-large"><img decoding="async" width="703" height="1024" src="https://sibeeshpassion.com/wp-content/uploads/2020/03/Organization-Process-Settings-703x1024.png" alt="" class="wp-image-14054" srcset="/wp-content/uploads/2020/03/Organization-Process-Settings-703x1024.png 703w, /wp-content/uploads/2020/03/Organization-Process-Settings-206x300.png 206w, /wp-content/uploads/2020/03/Organization-Process-Settings-768x1119.png 768w, /wp-content/uploads/2020/03/Organization-Process-Settings-377x550.png 377w, /wp-content/uploads/2020/03/Organization-Process-Settings.png 1011w" sizes="(max-width: 703px) 100vw, 703px" /><figcaption>Organization Process Settings</figcaption></figure></div>



<p>Now you should be able to select the projects which are assigned to each process, clicking the project number will redirect you to the list.</p>



<div class="wp-block-image"><figure class="aligncenter size-large"><img decoding="async" width="1024" height="182" src="https://sibeeshpassion.com/wp-content/uploads/2020/03/DevOps-Project-and-Process-1024x182.png" alt="" class="wp-image-14055" srcset="/wp-content/uploads/2020/03/DevOps-Project-and-Process-1024x182.png 1024w, /wp-content/uploads/2020/03/DevOps-Project-and-Process-300x53.png 300w, /wp-content/uploads/2020/03/DevOps-Project-and-Process-768x136.png 768w, /wp-content/uploads/2020/03/DevOps-Project-and-Process-1536x273.png 1536w, /wp-content/uploads/2020/03/DevOps-Project-and-Process-2048x364.png 2048w, /wp-content/uploads/2020/03/DevOps-Project-and-Process-425x76.png 425w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption>DevOps Project and Process</figcaption></figure></div>



<p>Now click on the three dots you see near to the project name and then click on the Change button.</p>



<div class="wp-block-image"><figure class="aligncenter size-large"><img decoding="async" width="1024" height="350" src="https://sibeeshpassion.com/wp-content/uploads/2020/03/Change-the-DevOps-Process-1024x350.png" alt="" class="wp-image-14056" srcset="/wp-content/uploads/2020/03/Change-the-DevOps-Process-1024x350.png 1024w, /wp-content/uploads/2020/03/Change-the-DevOps-Process-300x102.png 300w, /wp-content/uploads/2020/03/Change-the-DevOps-Process-768x262.png 768w, /wp-content/uploads/2020/03/Change-the-DevOps-Process-425x145.png 425w, /wp-content/uploads/2020/03/Change-the-DevOps-Process.png 1204w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption>Change the DevOps Process</figcaption></figure></div>



<p>Just select the process and click Save. And also make sure that you have enabled all the Backlog Navigation Levels. </p>



<div class="wp-block-image"><figure class="aligncenter size-large"><img decoding="async" width="1025" height="989" src="https://sibeeshpassion.com/wp-content/uploads/2020/03/Backlog-Navigation-Levels.png" alt="" class="wp-image-14058" srcset="/wp-content/uploads/2020/03/Backlog-Navigation-Levels.png 1025w, /wp-content/uploads/2020/03/Backlog-Navigation-Levels-300x289.png 300w, /wp-content/uploads/2020/03/Backlog-Navigation-Levels-768x741.png 768w, /wp-content/uploads/2020/03/Backlog-Navigation-Levels-425x410.png 425w" sizes="(max-width: 1025px) 100vw, 1025px" /><figcaption>Backlog Navigation Levels</figcaption></figure></div>



<p>You are done!.</p>



<h3 class="wp-block-heading">Create Query to Get the Work Items</h3>



<p>Now let&#8217;s say that I have below sample work items, and I need to create a query to get all these work items. </p>



<div class="wp-block-image"><figure class="aligncenter size-large"><img decoding="async" width="966" height="651" src="https://sibeeshpassion.com/wp-content/uploads/2020/03/Work-Items-in-Source-Organization.png" alt="" class="wp-image-14057" srcset="/wp-content/uploads/2020/03/Work-Items-in-Source-Organization.png 966w, /wp-content/uploads/2020/03/Work-Items-in-Source-Organization-300x202.png 300w, /wp-content/uploads/2020/03/Work-Items-in-Source-Organization-768x518.png 768w, /wp-content/uploads/2020/03/Work-Items-in-Source-Organization-425x286.png 425w" sizes="(max-width: 966px) 100vw, 966px" /><figcaption>Work Items in Source Organization</figcaption></figure></div>



<p>Click on the Queries menu on the left side and then click on the +New Query button. In the Type of Query button, click on the &#8220;Tree of work items&#8221; if you need the tree structure in the work items otherwise just click on &#8220;Flat list of work items&#8221;</p>



<div class="wp-block-image"><figure class="aligncenter size-large"><img decoding="async" width="1024" height="719" src="https://sibeeshpassion.com/wp-content/uploads/2020/03/Tree-of-Work-Items-1024x719.png" alt="" class="wp-image-14059" srcset="/wp-content/uploads/2020/03/Tree-of-Work-Items-1024x719.png 1024w, /wp-content/uploads/2020/03/Tree-of-Work-Items-300x211.png 300w, /wp-content/uploads/2020/03/Tree-of-Work-Items-768x539.png 768w, /wp-content/uploads/2020/03/Tree-of-Work-Items-425x298.png 425w, /wp-content/uploads/2020/03/Tree-of-Work-Items.png 1087w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption>Tree of Work Items</figcaption></figure></div>



<p>Change the <em>Type of tree</em> dropdown value to Parent/Child, and then run the query.</p>



<div class="wp-block-image"><figure class="aligncenter size-large"><img decoding="async" width="1024" height="990" src="https://sibeeshpassion.com/wp-content/uploads/2020/03/Parent-Child-Query-DevOps-1024x990.png" alt="" class="wp-image-14061" srcset="/wp-content/uploads/2020/03/Parent-Child-Query-DevOps-1024x990.png 1024w, /wp-content/uploads/2020/03/Parent-Child-Query-DevOps-300x290.png 300w, /wp-content/uploads/2020/03/Parent-Child-Query-DevOps-768x743.png 768w, /wp-content/uploads/2020/03/Parent-Child-Query-DevOps-425x411.png 425w, /wp-content/uploads/2020/03/Parent-Child-Query-DevOps.png 1096w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption>Parent-Child Query DevOps</figcaption></figure></div>



<p>Just save the query, we will be using that very soon.</p>



<div class="wp-block-image"><figure class="aligncenter size-large"><img decoding="async" width="918" height="557" src="https://sibeeshpassion.com/wp-content/uploads/2020/03/DevOps-Export-Query.png" alt="" class="wp-image-14060" srcset="/wp-content/uploads/2020/03/DevOps-Export-Query.png 918w, /wp-content/uploads/2020/03/DevOps-Export-Query-300x182.png 300w, /wp-content/uploads/2020/03/DevOps-Export-Query-768x466.png 768w, /wp-content/uploads/2020/03/DevOps-Export-Query-425x258.png 425w" sizes="(max-width: 918px) 100vw, 918px" /><figcaption>DevOps Export Query</figcaption></figure></div>



<h3 class="wp-block-heading">Install the Azure DevOps Office Integration Tool</h3>



<p>To download the tool, please visit <a href="https://visualstudio.microsoft.com/downloads/#other-family">here</a>. Once you install the same, you should see a Team tab in your Excel, yes, we are going to play with Excel now.</p>



<h3 class="wp-block-heading">Get Data From Azure DevOps in Excel</h3>



<p>Click on the Team button and then New List, you will see an option to select the server, or if you don&#8217;t have any you need to add it by clicking the servers button.</p>



<div class="wp-block-image"><figure class="aligncenter size-large"><img decoding="async" width="1024" height="857" src="https://sibeeshpassion.com/wp-content/uploads/2020/03/Connect-Azure-DevOps-from-Excel-1024x857.png" alt="" class="wp-image-14062" srcset="/wp-content/uploads/2020/03/Connect-Azure-DevOps-from-Excel-1024x857.png 1024w, /wp-content/uploads/2020/03/Connect-Azure-DevOps-from-Excel-300x251.png 300w, /wp-content/uploads/2020/03/Connect-Azure-DevOps-from-Excel-768x643.png 768w, /wp-content/uploads/2020/03/Connect-Azure-DevOps-from-Excel-425x356.png 425w, /wp-content/uploads/2020/03/Connect-Azure-DevOps-from-Excel.png 1408w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption>Connect Azure DevOps from Excel</figcaption></figure></div>



<p>Now add both Source and Destination DevOps servers.</p>



<div class="wp-block-image"><figure class="aligncenter size-large"><img decoding="async" width="1024" height="744" src="https://sibeeshpassion.com/wp-content/uploads/2020/03/Add-DevOps-Servers-in-Excel-1024x744.png" alt="" class="wp-image-14063" srcset="/wp-content/uploads/2020/03/Add-DevOps-Servers-in-Excel-1024x744.png 1024w, /wp-content/uploads/2020/03/Add-DevOps-Servers-in-Excel-300x218.png 300w, /wp-content/uploads/2020/03/Add-DevOps-Servers-in-Excel-768x558.png 768w, /wp-content/uploads/2020/03/Add-DevOps-Servers-in-Excel-315x230.png 315w, /wp-content/uploads/2020/03/Add-DevOps-Servers-in-Excel-425x309.png 425w, /wp-content/uploads/2020/03/Add-DevOps-Servers-in-Excel.png 1185w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption>Add DevOps Servers in Excel</figcaption></figure></div>



<p>Now it is time to connect our Source DevOps server.</p>



<div class="wp-block-image"><figure class="aligncenter size-large"><img decoding="async" width="1024" height="850" src="https://sibeeshpassion.com/wp-content/uploads/2020/03/Connect-DevOps-Server-1024x850.png" alt="" class="wp-image-14077" srcset="/wp-content/uploads/2020/03/Connect-DevOps-Server-1024x850.png 1024w, /wp-content/uploads/2020/03/Connect-DevOps-Server-300x249.png 300w, /wp-content/uploads/2020/03/Connect-DevOps-Server-768x637.png 768w, /wp-content/uploads/2020/03/Connect-DevOps-Server-425x353.png 425w, /wp-content/uploads/2020/03/Connect-DevOps-Server.png 1168w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption> Connect DevOps Server </figcaption></figure></div>



<p>Click on the New List under the Team tab, will give you an option to select the query that we created before, just select the same and press Ok.</p>



<div class="wp-block-image"><figure class="aligncenter size-large"><img decoding="async" width="921" height="645" src="https://sibeeshpassion.com/wp-content/uploads/2020/03/Select-DevOps-Query.png" alt="" class="wp-image-14065" srcset="/wp-content/uploads/2020/03/Select-DevOps-Query.png 921w, /wp-content/uploads/2020/03/Select-DevOps-Query-300x210.png 300w, /wp-content/uploads/2020/03/Select-DevOps-Query-768x538.png 768w, /wp-content/uploads/2020/03/Select-DevOps-Query-425x298.png 425w" sizes="(max-width: 921px) 100vw, 921px" /><figcaption>Select DevOps Query</figcaption></figure></div>



<p>This will fetch all the work items from your source DevOps. </p>



<div class="wp-block-image"><figure class="aligncenter size-large"><img decoding="async" width="1024" height="201" src="https://sibeeshpassion.com/wp-content/uploads/2020/03/DevOps-Work-Items-in-Excel-1024x201.png" alt="" class="wp-image-14066" srcset="/wp-content/uploads/2020/03/DevOps-Work-Items-in-Excel-1024x201.png 1024w, /wp-content/uploads/2020/03/DevOps-Work-Items-in-Excel-300x59.png 300w, /wp-content/uploads/2020/03/DevOps-Work-Items-in-Excel-768x151.png 768w, /wp-content/uploads/2020/03/DevOps-Work-Items-in-Excel-1536x302.png 1536w, /wp-content/uploads/2020/03/DevOps-Work-Items-in-Excel-425x84.png 425w, /wp-content/uploads/2020/03/DevOps-Work-Items-in-Excel.png 1840w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption>DevOps Work Items in Excel</figcaption></figure></div>



<p> Click on the Team button, select any columns in the excel sheet, click on the <em>Choose Column</em>. Select All Work Items Types in the dropdown and then move all the columns to the right side.</p>



<div class="wp-block-image"><figure class="aligncenter size-large"><img decoding="async" width="1024" height="856" src="https://sibeeshpassion.com/wp-content/uploads/2020/03/Show-all-the-Columns-1024x856.png" alt="" class="wp-image-14069" srcset="/wp-content/uploads/2020/03/Show-all-the-Columns-1024x856.png 1024w, /wp-content/uploads/2020/03/Show-all-the-Columns-300x251.png 300w, /wp-content/uploads/2020/03/Show-all-the-Columns-768x642.png 768w, /wp-content/uploads/2020/03/Show-all-the-Columns-425x355.png 425w, /wp-content/uploads/2020/03/Show-all-the-Columns.png 1492w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption>Show all the Columns</figcaption></figure></div>



<p>This will show all the columns in the excel sheet with data. Now it is time to publish these work items to our destination DevOps. </p>



<h3 class="wp-block-heading">Publish Work Items to Destination DevOps</h3>



<p>To do this, open another Excel then click on the New List button under the Team Tab. Now select the destination DevOps and connect. In the next Pop up, select the <em>Input List</em> option.</p>



<div class="wp-block-image"><figure class="aligncenter size-large"><img decoding="async" width="921" height="645" src="https://sibeeshpassion.com/wp-content/uploads/2020/03/Input-List.png" alt="" class="wp-image-14067" srcset="/wp-content/uploads/2020/03/Input-List.png 921w, /wp-content/uploads/2020/03/Input-List-300x210.png 300w, /wp-content/uploads/2020/03/Input-List-768x538.png 768w, /wp-content/uploads/2020/03/Input-List-425x298.png 425w" sizes="(max-width: 921px) 100vw, 921px" /><figcaption>Input List</figcaption></figure></div>



<p>You will be seeing some columns in the excel sheet now. Click the Team button and then <em>Add Tree Level</em>, this will make sure that we have the tree structure in our DEstination DevOps too. </p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>Please make sure that you are adding as many levels you have in your Source DevOps Excel sheet. In our case, it is 4.</p><cite>Tree Level</cite></blockquote>



<p>Now click on the Choose Columns and add all the columns as we did with the Source Excel Sheet. <strong>Please make sure that both Excel sheet columns are in the same order.</strong> You can order the fields in the order you wish. Once both excel sheet has the same order, then select the data from the source and then select the first data cell in the destination excel sheet and then press Enter. This is how the data looks like in the destination Excel.</p>



<div class="wp-block-image"><figure class="aligncenter size-large"><img decoding="async" width="1024" height="228" src="https://sibeeshpassion.com/wp-content/uploads/2020/03/Pasted-Data-1024x228.png" alt="" class="wp-image-14071" srcset="/wp-content/uploads/2020/03/Pasted-Data-1024x228.png 1024w, /wp-content/uploads/2020/03/Pasted-Data-300x67.png 300w, /wp-content/uploads/2020/03/Pasted-Data-768x171.png 768w, /wp-content/uploads/2020/03/Pasted-Data-1536x342.png 1536w, /wp-content/uploads/2020/03/Pasted-Data-425x95.png 425w, /wp-content/uploads/2020/03/Pasted-Data.png 1680w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption>Pasted Data</figcaption></figure></div>



<p>Please be noted that the above screenshot doesn&#8217;t include all the columns. In your case, it should be there in the excel sheet.</p>



<p>Now select any column in the Excel sheet and then click on the Publish button under the Team tab. By chance, if you are getting any errors you may have to manually review the same and assign the right values.</p>



<div class="wp-block-image"><figure class="aligncenter size-large"><img decoding="async" width="916" height="984" src="https://sibeeshpassion.com/wp-content/uploads/2020/03/Work-Item-Publishing-Errors.png" alt="" class="wp-image-14072" srcset="/wp-content/uploads/2020/03/Work-Item-Publishing-Errors.png 916w, /wp-content/uploads/2020/03/Work-Item-Publishing-Errors-279x300.png 279w, /wp-content/uploads/2020/03/Work-Item-Publishing-Errors-768x825.png 768w, /wp-content/uploads/2020/03/Work-Item-Publishing-Errors-425x457.png 425w" sizes="(max-width: 916px) 100vw, 916px" /><figcaption>Work Item Publishing Errors</figcaption></figure></div>



<p>If everything goes well, you should see all your work items in your destination Azure DevOps.</p>



<div class="wp-block-image"><figure class="aligncenter size-large"><img decoding="async" width="1024" height="830" src="https://sibeeshpassion.com/wp-content/uploads/2020/03/New-Work-Items-1024x830.png" alt="" class="wp-image-14073" srcset="/wp-content/uploads/2020/03/New-Work-Items-1024x830.png 1024w, /wp-content/uploads/2020/03/New-Work-Items-300x243.png 300w, /wp-content/uploads/2020/03/New-Work-Items-768x622.png 768w, /wp-content/uploads/2020/03/New-Work-Items-425x344.png 425w, /wp-content/uploads/2020/03/New-Work-Items.png 1191w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption>New Work Items</figcaption></figure></div>



<h2 class="wp-block-heading">Conclusion</h2>



<p>Thanks a lot for reading this article. I hope now you have learned about</p>



<ul class="wp-block-list"><li>how to use queries in Azure DevOps</li><li>how to use Azure DevOps integration tools for Office</li><li>how to change the project Process</li><li>how to move the work items from one DevOps to another</li></ul>



<p>If you have learned anything else from this article, please let me know in the comment section.</p>



<h2 class="wp-block-heading">Follow me</h2>



<p>If you like this article, consider following me, haha!.</p>



<ul class="wp-block-list"><li><a href="https://github.com/SibeeshVenu">GitHub</a></li><li><a href="https://medium.com/@sibeeshvenu">medium</a></li><li><a href="https://twitter.com/sibeeshvenu">Twitter</a></li></ul>



<h2 class="wp-block-heading">Your turn. What do you think?</h2>



<p>Thanks a lot for reading. Did I miss anything that you may think which is needed in this article? Could you find this post useful? Kindly do not forget to share your feedback.</p>



<p>Kindest Regards<br>Sibeesh Venu</p>
]]></content:encoded>
					
					<wfw:commentRss>https://sibeeshpassion.com/move-azure-devops-work-items-from-one-organization-to-another/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Azure Function Build and Release Pipeline in Azure DevOps CI CD</title>
		<link>https://sibeeshpassion.com/azure-function-build-and-release-pipeline-in-azure-devops-ci-cd/</link>
					<comments>https://sibeeshpassion.com/azure-function-build-and-release-pipeline-in-azure-devops-ci-cd/#disqus_thread</comments>
		
		<dc:creator><![CDATA[SibeeshVenu]]></dc:creator>
		<pubDate>Tue, 09 Jul 2019 11:10:48 +0000</pubDate>
				<category><![CDATA[Azure]]></category>
		<category><![CDATA[Azure DevOps]]></category>
		<category><![CDATA[Azure Function]]></category>
		<category><![CDATA[Build Pipeline]]></category>
		<category><![CDATA[CI and CD]]></category>
		<category><![CDATA[Continuous Deployment]]></category>
		<category><![CDATA[Continuous Integration]]></category>
		<category><![CDATA[DevOps]]></category>
		<category><![CDATA[Release Pipeline]]></category>
		<guid isPermaLink="false">https://sibeeshpassion.com/?p=13794</guid>

					<description><![CDATA[[toc] Introduction Playing with Azure Function is always a nice feeling, and it is very important to configure both build and release pipeline for all of your applications, Azure Functions are not different. In this article, we will see how we can create both build and release pipeline in Azure DevOps for our Azure Function application. I hope you will like it. Prerequisites You should have an Azure Function application to configure the build and release pipeline for the same. You can either create a new one in the Azure portal, or you can use any existing azure functions available [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>[toc]</p>



<h2 class="wp-block-heading">Introduction</h2>



<p>Playing with <a href="https://sibeeshpassion.com/tag/azure-function/">Azure Function</a> is always a nice feeling, and it is very important to configure both build and release pipeline for all of your applications, Azure Functions are not different. In this article, we will see how we can create both build and release pipeline in <a href="https://sibeeshpassion.com/tag/azure-devops/">Azure DevOps</a> for our Azure Function application. I hope you will like it.</p>



<h2 class="wp-block-heading">Prerequisites </h2>



<p>You should have an Azure Function application to configure the build and release pipeline for the same. You can either create a <a href="https://sibeeshpassion.com/azure-function-as-output-job-topology-of-an-azure-stream-analytics-job/#creating-an-azure-function-solution-and-function">new one in the Azure portal</a>, or you can use any existing azure functions available in internet, for example you can see one <a href="https://github.com/SibeeshVenu/Realtime-IoT-Device-Data-using-Azure-SignalR-and-Azure-Function-in-Angular">here</a>.</p>



<h2 class="wp-block-heading">Setting Build Pipeline for Azure Function</h2>



<p>Go to your Azure DevOps and click on Builds</p>



<figure class="wp-block-image"><img decoding="async" width="505" height="581" src="https://sibeeshpassion.com/wp-content/uploads/2019/07/Select-Build.png" alt="" class="wp-image-13795" srcset="/wp-content/uploads/2019/07/Select-Build.png 505w, /wp-content/uploads/2019/07/Select-Build-261x300.png 261w, /wp-content/uploads/2019/07/Select-Build-425x489.png 425w" sizes="(max-width: 505px) 100vw, 505px" /><figcaption>Select Builds</figcaption></figure>



<p>Now you should see an option to select where your code is available. You can choose accordingly.</p>



<figure class="wp-block-image"><img decoding="async" width="650" height="542" src="https://sibeeshpassion.com/wp-content/uploads/2019/07/Select-Code-Source.png" alt="" class="wp-image-13796" srcset="/wp-content/uploads/2019/07/Select-Code-Source.png 650w, /wp-content/uploads/2019/07/Select-Code-Source-300x250.png 300w, /wp-content/uploads/2019/07/Select-Code-Source-425x354.png 425w" sizes="(max-width: 650px) 100vw, 650px" /><figcaption>Select Code Source</figcaption></figure>



<p>As my project is in Azure repository, I will select that. Please be noted that I will be using the classic editor to create the pipeline now, so that I can show the steps with the screenshots. You should be able to see the final yml file at the end of the configuration.</p>



<p>Now you can select the template of your project, I will select .Net Core as the template as my Azure Function is in .Net Core.</p>



<figure class="wp-block-image"><img decoding="async" width="650" height="319" src="https://sibeeshpassion.com/wp-content/uploads/2019/07/Select-Template.png" alt="" class="wp-image-13797" srcset="/wp-content/uploads/2019/07/Select-Template.png 650w, /wp-content/uploads/2019/07/Select-Template-300x147.png 300w, /wp-content/uploads/2019/07/Select-Template-425x209.png 425w" sizes="(max-width: 650px) 100vw, 650px" /><figcaption>Asp.Net Core as Template</figcaption></figure>



<p>Now you can see that our Pipeline is created with some default tasks and settings as follows.</p>



<figure class="wp-block-image"><img decoding="async" width="650" height="586" src="https://sibeeshpassion.com/wp-content/uploads/2019/07/Pipeline-Tasks.png" alt="" class="wp-image-13824" srcset="/wp-content/uploads/2019/07/Pipeline-Tasks.png 650w, /wp-content/uploads/2019/07/Pipeline-Tasks-300x270.png 300w, /wp-content/uploads/2019/07/Pipeline-Tasks-425x383.png 425w" sizes="(max-width: 650px) 100vw, 650px" /><figcaption>Pipeline Taks</figcaption></figure>



<figure class="wp-block-image"><img decoding="async" width="650" height="428" src="https://sibeeshpassion.com/wp-content/uploads/2019/07/Pipeline-Settings.png" alt="" class="wp-image-13799" srcset="/wp-content/uploads/2019/07/Pipeline-Settings.png 650w, /wp-content/uploads/2019/07/Pipeline-Settings-300x198.png 300w, /wp-content/uploads/2019/07/Pipeline-Settings-425x280.png 425w" sizes="(max-width: 650px) 100vw, 650px" /><figcaption>Pipeline Settings for Azure Function</figcaption></figure>



<p>As everything is already created for us, let us save and queue the build. Please make sure that your source code branch is valid and you had verified the build. I forgot to do this, and I was getting the below error, as there was some issue with my code (there was an additional dot(.) in my code, I added it by mistake).</p>



<figure class="wp-block-image"><img decoding="async" width="650" height="696" src="https://sibeeshpassion.com/wp-content/uploads/2019/07/Initial-Build-Run-Error.png" alt="" class="wp-image-13800" srcset="/wp-content/uploads/2019/07/Initial-Build-Run-Error.png 650w, /wp-content/uploads/2019/07/Initial-Build-Run-Error-280x300.png 280w, /wp-content/uploads/2019/07/Initial-Build-Run-Error-425x455.png 425w" sizes="(max-width: 650px) 100vw, 650px" /><figcaption>Initial Build Error</figcaption></figure>



<p>So I edited my code and build, and then initiate a manual build again. But even after that I was getting an error as &#8220;No web project was found in the repository. Web projects are identified by presence of either a web.config file or wwwroot folder in the directory&#8221;.</p>



<figure class="wp-block-image"><img decoding="async" width="651" height="114" src="https://sibeeshpassion.com/wp-content/uploads/2019/07/Second-Build-Error.png" alt="" class="wp-image-13801" srcset="/wp-content/uploads/2019/07/Second-Build-Error.png 651w, /wp-content/uploads/2019/07/Second-Build-Error-300x53.png 300w, /wp-content/uploads/2019/07/Second-Build-Error-425x74.png 425w" sizes="(max-width: 651px) 100vw, 651px" /><figcaption>Second Build Error</figcaption></figure>



<p>The reason for this is, that by default the &#8220;Publish Web Projects&#8221; is enabled in the Publish task. As ours is not a web project, and if this option is enabled the Publish task will look for a web project in the repository and run the publish command. If we have a web.config file or a wwwroot folder in the directory, it is been treated as a web project. </p>



<p>We have to disable this option as it is not applicable for our project, as it is not a web project. To do so, please go to your Publish task.</p>



<figure class="wp-block-image"><img decoding="async" width="650" height="576" src="https://sibeeshpassion.com/wp-content/uploads/2019/07/All-Tasks.png" alt="" class="wp-image-13826" srcset="/wp-content/uploads/2019/07/All-Tasks.png 650w, /wp-content/uploads/2019/07/All-Tasks-300x266.png 300w, /wp-content/uploads/2019/07/All-Tasks-425x377.png 425w" sizes="(max-width: 650px) 100vw, 650px" /><figcaption>All Tasks</figcaption></figure>



<p>Now you should deselect the &#8220;Publish Web Projects&#8221; option.</p>



<figure class="wp-block-image"><img decoding="async" width="650" height="613" src="https://sibeeshpassion.com/wp-content/uploads/2019/07/Unselect-Publish-Web-Project-Option.png" alt="" class="wp-image-13803" srcset="/wp-content/uploads/2019/07/Unselect-Publish-Web-Project-Option.png 650w, /wp-content/uploads/2019/07/Unselect-Publish-Web-Project-Option-300x283.png 300w, /wp-content/uploads/2019/07/Unselect-Publish-Web-Project-Option-425x401.png 425w" sizes="(max-width: 650px) 100vw, 650px" /><figcaption>Deselect  Publish Web Projects </figcaption></figure>



<p>Now save your build configuration and queue a new build. If everything goes well, you should see that your build is successful.</p>



<figure class="wp-block-image"><img decoding="async" width="651" height="288" src="https://sibeeshpassion.com/wp-content/uploads/2019/07/Build-Success.png" alt="" class="wp-image-13804" srcset="/wp-content/uploads/2019/07/Build-Success.png 651w, /wp-content/uploads/2019/07/Build-Success-300x133.png 300w, /wp-content/uploads/2019/07/Build-Success-425x188.png 425w" sizes="(max-width: 651px) 100vw, 651px" /><figcaption>Build Success</figcaption></figure>



<p>If you wish to see the YAML code of a task, you should be able to see it if you click on &#8220;View YAML&#8221; link.</p>



<figure class="wp-block-image"><img decoding="async" width="1000" height="208" src="https://sibeeshpassion.com/wp-content/uploads/2019/07/View-YAML-of-one-Task.png" alt="" class="wp-image-13834" srcset="/wp-content/uploads/2019/07/View-YAML-of-one-Task.png 1000w, /wp-content/uploads/2019/07/View-YAML-of-one-Task-300x62.png 300w, /wp-content/uploads/2019/07/View-YAML-of-one-Task-768x160.png 768w, /wp-content/uploads/2019/07/View-YAML-of-one-Task-425x88.png 425w" sizes="(max-width: 1000px) 100vw, 1000px" /></figure>



<p>Please do not forget to enable if you need to trigger the build automatically when there is a check in happened in the repository.</p>



<figure class="wp-block-image"><img decoding="async" width="1004" height="97" src="https://sibeeshpassion.com/wp-content/uploads/2019/07/Enable-Disable-Continous-Integration.png" alt="" class="wp-image-13808" srcset="/wp-content/uploads/2019/07/Enable-Disable-Continous-Integration.png 1004w, /wp-content/uploads/2019/07/Enable-Disable-Continous-Integration-300x29.png 300w, /wp-content/uploads/2019/07/Enable-Disable-Continous-Integration-768x74.png 768w, /wp-content/uploads/2019/07/Enable-Disable-Continous-Integration-425x41.png 425w" sizes="(max-width: 1004px) 100vw, 1004px" /><figcaption>Enable or Disable Continuous Integration </figcaption></figure>



<h2 class="wp-block-heading">Setting Release Pipeline for Azure Function</h2>



<p>Now that we have got our build successful, let us go ahead and create a release pipeline for our Azure Function. But before we do that, we need to create a service connection in our Azure DevOps project. To create one, please go to your Azure DevOps projects settings -&gt; Pipelines -&gt; Service Connections. </p>



<figure class="wp-block-image"><img decoding="async" width="1000" height="690" src="https://sibeeshpassion.com/wp-content/uploads/2019/07/Azure-Resource-Manager-Connection.png" alt="" class="wp-image-13809" srcset="/wp-content/uploads/2019/07/Azure-Resource-Manager-Connection.png 1000w, /wp-content/uploads/2019/07/Azure-Resource-Manager-Connection-300x207.png 300w, /wp-content/uploads/2019/07/Azure-Resource-Manager-Connection-768x530.png 768w, /wp-content/uploads/2019/07/Azure-Resource-Manager-Connection-425x293.png 425w" sizes="(max-width: 1000px) 100vw, 1000px" /><figcaption>Azure Resource Manager Connection</figcaption></figure>



<p>Once it is created, you should see the same under your service connections slab. Now go to the Pipelines section of your Azure DevOps project and click on Releases and the click on New pipeline and select Azure App Service Deployment as the template.</p>



<figure class="wp-block-image"><img decoding="async" width="1024" height="370" src="https://sibeeshpassion.com/wp-content/uploads/2019/07/Azure-App-Service-Deployment-Task-1024x370.png" alt="" class="wp-image-13810" srcset="/wp-content/uploads/2019/07/Azure-App-Service-Deployment-Task-1024x370.png 1024w, /wp-content/uploads/2019/07/Azure-App-Service-Deployment-Task-300x108.png 300w, /wp-content/uploads/2019/07/Azure-App-Service-Deployment-Task-768x278.png 768w, /wp-content/uploads/2019/07/Azure-App-Service-Deployment-Task-425x154.png 425w, /wp-content/uploads/2019/07/Azure-App-Service-Deployment-Task.png 1176w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption>Azure App Service Deployment</figcaption></figure>



<p>You should see this task in the Task section of your pipeline. If you are unable to see the service connection that you had created on the right panel, just remove the task and add the same again and then check. Your task definition should be looking as below.</p>



<figure class="wp-block-image"><img decoding="async" width="677" height="1024" src="https://sibeeshpassion.com/wp-content/uploads/2019/07/Azure-App-Service-Deploy-Task-677x1024.png" alt="" class="wp-image-13811" srcset="/wp-content/uploads/2019/07/Azure-App-Service-Deploy-Task-677x1024.png 677w, /wp-content/uploads/2019/07/Azure-App-Service-Deploy-Task-198x300.png 198w, /wp-content/uploads/2019/07/Azure-App-Service-Deploy-Task-364x550.png 364w, /wp-content/uploads/2019/07/Azure-App-Service-Deploy-Task.png 746w" sizes="(max-width: 677px) 100vw, 677px" /><figcaption>Azure App Service Deploy Task</figcaption></figure>



<p>Once you are done, save your pipeline. And before you create a release, make sure that you had assigned the right build artifacts. Click on Add an artifact.</p>



<figure class="wp-block-image"><img decoding="async" width="1008" height="736" src="https://sibeeshpassion.com/wp-content/uploads/2019/07/Release-Pipeline.png" alt="" class="wp-image-13812" srcset="/wp-content/uploads/2019/07/Release-Pipeline.png 1008w, /wp-content/uploads/2019/07/Release-Pipeline-300x219.png 300w, /wp-content/uploads/2019/07/Release-Pipeline-768x561.png 768w, /wp-content/uploads/2019/07/Release-Pipeline-315x230.png 315w, /wp-content/uploads/2019/07/Release-Pipeline-425x310.png 425w" sizes="(max-width: 1008px) 100vw, 1008px" /><figcaption>Add an Artifact Option</figcaption></figure>



<p>Now you should set the artifacts properties.</p>



<figure class="wp-block-image"><img decoding="async" width="650" height="728" src="https://sibeeshpassion.com/wp-content/uploads/2019/07/Assign-Artifact-Properties.png" alt="" class="wp-image-13814" srcset="/wp-content/uploads/2019/07/Assign-Artifact-Properties.png 650w, /wp-content/uploads/2019/07/Assign-Artifact-Properties-268x300.png 268w, /wp-content/uploads/2019/07/Assign-Artifact-Properties-425x476.png 425w" sizes="(max-width: 650px) 100vw, 650px" /><figcaption>Assign Artifacts Properties </figcaption></figure>



<p>Click on Add and Save your pipeline and then queue a release by clicking on the button Create release. You may get the error &#8221; Error: More than one package matched with specified pattern: d:\a\r1\a\**\*.zip. Please restrain the search pattern&#8221; now.</p>



<figure class="wp-block-image"><img decoding="async" width="1000" height="221" src="https://sibeeshpassion.com/wp-content/uploads/2019/07/More-than-One-Package-Matched.png" alt="" class="wp-image-13836" srcset="/wp-content/uploads/2019/07/More-than-One-Package-Matched.png 1000w, /wp-content/uploads/2019/07/More-than-One-Package-Matched-300x66.png 300w, /wp-content/uploads/2019/07/More-than-One-Package-Matched-768x170.png 768w, /wp-content/uploads/2019/07/More-than-One-Package-Matched-425x94.png 425w" sizes="(max-width: 1000px) 100vw, 1000px" /><figcaption>Error</figcaption></figure>



<p> The reason behind this is, that your solution has many projects in it and each projects will be having its own zip folder in the artifacts, so to fix this we should specify our Azure Function Project in the Package section of our pipeline task.</p>



<p>Click on the Azure App service Deploy task and the go to the Package or Folder section and then click on the three dots.</p>



<figure class="wp-block-image"><img decoding="async" width="1000" height="145" src="https://sibeeshpassion.com/wp-content/uploads/2019/07/Package-or-Folder-Option.png" alt="" class="wp-image-13816" srcset="/wp-content/uploads/2019/07/Package-or-Folder-Option.png 1000w, /wp-content/uploads/2019/07/Package-or-Folder-Option-300x44.png 300w, /wp-content/uploads/2019/07/Package-or-Folder-Option-768x111.png 768w, /wp-content/uploads/2019/07/Package-or-Folder-Option-425x62.png 425w" sizes="(max-width: 1000px) 100vw, 1000px" /><figcaption>Package or Folder Option</figcaption></figure>



<p>Now you should have an option to select the right zip file.</p>



<figure class="wp-block-image"><img decoding="async" width="650" height="676" src="https://sibeeshpassion.com/wp-content/uploads/2019/07/Choose-the-Correct-zip.png" alt="" class="wp-image-13817" srcset="/wp-content/uploads/2019/07/Choose-the-Correct-zip.png 650w, /wp-content/uploads/2019/07/Choose-the-Correct-zip-288x300.png 288w, /wp-content/uploads/2019/07/Choose-the-Correct-zip-425x442.png 425w" sizes="(max-width: 650px) 100vw, 650px" /><figcaption>Choose the Right Zip File</figcaption></figure>



<p>Now Create the release again and you should see that the release is successful. You can also see my StackOverflow answer <a href="https://stackoverflow.com/questions/56950661/error-more-than-one-package-matched-with-specified-pattern-azure-function-relea/56950662#56950662">here</a>.</p>



<figure class="wp-block-image"><img decoding="async" width="650" height="295" src="https://sibeeshpassion.com/wp-content/uploads/2019/07/Release-Dev.png" alt="" class="wp-image-13818" srcset="/wp-content/uploads/2019/07/Release-Dev.png 650w, /wp-content/uploads/2019/07/Release-Dev-300x136.png 300w, /wp-content/uploads/2019/07/Release-Dev-420x190.png 420w, /wp-content/uploads/2019/07/Release-Dev-425x193.png 425w" sizes="(max-width: 650px) 100vw, 650px" /><figcaption>Release Dev</figcaption></figure>



<h2 class="wp-block-heading">Enabling Continuous Deployment</h2>



<p>If you wish you can always enable the continuous delivery or deployment. This will trigger whenever there is a build. To set up this, please go to your Release pipeline and click on the trigger.</p>



<figure class="wp-block-image"><img decoding="async" width="650" height="430" src="https://sibeeshpassion.com/wp-content/uploads/2019/07/Contnuous-Delivery-Trigger.png" alt="" class="wp-image-13821" srcset="/wp-content/uploads/2019/07/Contnuous-Delivery-Trigger.png 650w, /wp-content/uploads/2019/07/Contnuous-Delivery-Trigger-300x198.png 300w, /wp-content/uploads/2019/07/Contnuous-Delivery-Trigger-425x281.png 425w" sizes="(max-width: 650px) 100vw, 650px" /><figcaption>Continuous Deployment Trigger</figcaption></figure>



<p>Now you should see an option to enable the Continuous Deployment.</p>



<figure class="wp-block-image"><img decoding="async" width="650" height="499" src="https://sibeeshpassion.com/wp-content/uploads/2019/07/Continuous-Deployment-Trigger.png" alt="" class="wp-image-13822" srcset="/wp-content/uploads/2019/07/Continuous-Deployment-Trigger.png 650w, /wp-content/uploads/2019/07/Continuous-Deployment-Trigger-300x230.png 300w, /wp-content/uploads/2019/07/Continuous-Deployment-Trigger-425x326.png 425w" sizes="(max-width: 650px) 100vw, 650px" /><figcaption>Enable Continuous Deployment</figcaption></figure>



<p>Now all you have to is change something in the code, and not worry about the build and releases. How cool that is?</p>



<h2 class="wp-block-heading">Conclusion</h2>



<p>In this article, we have learned,</p>



<ul class="wp-block-list"><li>How to configure Build Pipeline Configuration for Azure Function in Azure DevOps</li><li> How to configure Release Pipeline Configuration for Azure Function in Azure DevOps </li><li>About fixing errors in Pipeline configurations in Azure DevOps</li><li>How to enable Continuous Delivery/Deployment in Azure DevOps</li><li>How to enable Continuous Integration in Azure DevOps</li></ul>



<p>Please let me know what else you had learned from this Article.</p>



<h2 class="wp-block-heading">Your turn. What do you think?</h2>



<p>Thanks a lot for reading. Did I miss anything that you may think which is needed in this article? Could you find this post as useful? Kindly do not forget to share me your feedback.</p>



<p>Kindest Regards<br>Sibeesh Venu</p>
]]></content:encoded>
					
					<wfw:commentRss>https://sibeeshpassion.com/azure-function-build-and-release-pipeline-in-azure-devops-ci-cd/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
