2. 2
Satish Prasad, Holds Master Degree from NIT Kurukshetra. He
has 12+ years of experience in IT Development & Maintenance
ranging in Data analytics, Datawarehouse, ETL, Production
support & Robotics Process Automation.
• Trained many professionals on RPA Automation tools Such as
UiPath, Robot Framework.
• Currently working as an RPA Solution Architect in Leading
IT MNC in Delhi NCR.
• Actively contribute to #UiPath Community through various
programs.
• Owns RPABOTSWORLD.COM Blog that has established
itself as an indispensable resource for robotics process
automation education and community building.
• https://www.linkedin.com/in/prasad-satish/
Introduction
3. 3
Agenda
In this demo, you will learn how to create a how Build the first pipeline to package UiPath project
01
02
03
04
Introduction to Azure DevOps and CI/CD Pipelines for
UiPath Development
Setting up Azure DevOps for UiPath Projects
Automated Testing and Quality Assurance for UiPath RPA
Solutions
Continuous Deployment Strategies for UiPath Workflows
05 Best Practices /Q&A /Closing Remarks
4. 4
What's CI/CD…
DevOps is a mindset, a way of working for an organization so that new features reach to
the users as quickly as possible and smoothly too.
5. 5
Why Azure Pipelines ?
Agents
Conditions
Trigger
Expressions
Jobs
Stages
Step
Task
Azure Continuously build, test, and deploy to any platform and
cloud
Any language, platform, and cloud -Build, test, and deploy Node.js,
Python, Java, PHP, Ruby, Go, C/C++, C#, Android, and iOS apps.
Run in parallel on Linux, macOS, and Windows. Deploy to cloud
providers like Azure, AWS, and GCP.
Native container support - Deploy containers to independent hosts
or Kubernetes.
Advanced workflows and features- Easy build chaining and multi-
phased builds. Support for YAML, test integration, release gates,
reporting, and more.
Extensible- Use a range of build, test, and deployment tasks built by
the community – hundreds of extensions from Slack to SonarCloud.
You can even deploy from other CI systems, like Jenkins. Webhooks
and REST APIs help you integrate.
Free, to you from Azure Pipelines - Free cloud-hosted builds for
public and private repositories.
6. 6
Building and Packaging UiPath Projects in Azure
DevOps
This is not production ready example-
This is just to show case example.
7. 7
1. Orchestrator Service Connection (based on
the tenant)
2. To add variables to store client id/user
key/folders name etc.
3. You can use starter template if you don’t wish
to create from scratch.
Prerequisites – For Build Agent
Windows 7, 8.1, or 10 (if using a client
OS)
Windows 2008 R2 SP1 or higher (if using
a server OS)
PowerShell 3.0or higher
.NET Framework6.2 or higher
Prerequisites – Azure DevOps
Your project source code in a version control
system. Azure pipelines can integrate with
GitHub, TFVC, Bitbucket Cloud, Azure Repos
Git and SVN
An Azure DevOps organization. If you don’t
have one, you can create one for free.
You need to have Windows-Based Build Agent
as now its only Support Windows Agent.
Create azure-pipelines.yml in project folder
How to Set Up Azure DevOps?
8. 8
UiPath Integration for Azure DevOps
About UiPath Azure extension tasks –
1. UiPathRunJob - starts an already deployed process on an
Orchestrator instance.
2. UiPath Manage Assets-Enables you to deploy, update or delete
assets on an Orchestrator instance. In order to deploy assets
you must describe them in a CSV file
3. UiPath Install Platform- The UiPathInstallPlatform has a
prepackaged tool that all the other UiPath tasks are using.
4. UiPath Pack – Enables you to package an existing UiPath
project into a NuGet package.
5. UiPath Deploy - lets you deploy a UiPath NuGet package onto
UiPath Orchestrator.
6. UiPath Run test - Runs an existing test set on Orchestrator, or
packages, deploys and runs test cases as a transient test set in
one go, by specifying the path to a UiPath test project.
For the UiPathDeploy
and UiPathTest tasks
you will need to first
create a Service
Connection.
https://marketplace.visualstudio.com/items?itemName=uipath.vsts-uipath-package
11. 11
Working Azure Pipelines With UiPath
Recap
Your Takeaways
If you follow the instructions in this demo, you’ve an entire
CI/CD pipeline from scratch in Azure DevOps. You should
now have a good idea of what this process entails.
Azure Pipelines can go much deeper than what we did in
this Project, but you should now have some foundational
knowledge of the entire process.
Continuous Integration (CI)
Continuous integration (CI) is the practice used by development teams to simplify the testing and building of code. CI helps to catch bugs or problems early in the development cycle, which makes them easier and faster to fix. Automated tests and builds are run as part of the CI process.
The process can run on a set schedule, whenever code is pushed, or both. Items known as artefacts are produced from CI systems. They’re used by the continuous delivery release pipelines to drive automatic deployments.
Continuous Delivery (CD)
Continuous delivery (CD) is a process by which code is built, tested, and deployed to one or more test and production stages. Deploying and testing in multiple stages helps drive quality.
Continuous integration systems produce deployable artifacts which are used in CD to release new versions and fixes to existing systems. This process ensures that errors are caught often and early.
Let’s quickly discuss the key concepts used in the azure pipeline.
An Agent is computing infrastructure with installed agent software that runs one job at a time. You can treat the agent as executor which actually performs the jobs as instructed by the pipeline stages. Your agent must have the capability to perform a certain action. In our example, UiPath must be installed on an agent to perform build/test.
A trigger tells a Pipeline to run. In the above example, It’s the setup that tells when the pipeline needs to be run. You can configure a pipeline to run when you publish your UiPath Projects to Git or Repo you are using. This can be also configured to run at scheduled times or upon completion of another build.
A Stage is a logical grouping of Jobs in the pipeline and each stage can have one or more jobs that run on Further your job can contain one or more step(task/script)
A Step can be a task or script and is the smallest building block of a pipeline. For example, you are creating a pipeline which consists of build and test steps both. Your step can be either a ‘task’ [Custom Code] Or Script written in PowerShell or Shell Script. For example, there is a task, that task has got five different stages, and each stage has got some steps. All the steps in phase one have to be completed, to mark the latter stage to be complete.
CI/CD in Context of RPA Tool UiPath
Although many organizations have started implementing a Digital Workforce into their business operations – only a few are fully in control of their RPA bots.
Very few COE has already implemented the CI/CD (Continuous Integration, Continuous Delivery) pipeline that allows you to automate your robot delivery process.
A typical pipeline for UiPath can be –
The pipeline will initiate the build from your version control system.
The pipeline will also perform the creation of various assets, config replacement, creating initial folders etc.
The pipelines will publish the package to Orchestrator.
It can further include workflow analyzer to code review, approval workflow, integration with ITIL tools such as(service now) for change board approvals.
It can be further improved to Run test cases from Orchestrator.
Task execution must be perfomed on a Windows-based build agent
Orchestrator instance (basic, federated or cloud authentication are supported)
Testing features require Orchestrator version 20.4 or newer
When using an on-premise Orchestrator under HTTPS, make sure to import the SSL Certificate so that the HTTPS calls to Orchestrator can be trusted
You can skip this slide and move directly to the demo, if needed but make sure you have filled in the previous slide in which you explain the purpose and steps of the demo.
To add an Orchestrator Service Connection (based on the tenant)
In the Azure DevOps project, click on Project Settings on the bottom left of the page.
Click on Service connections under Pipelines.
On the top right of the page, click New service connection.
Choose UiPath Orchestrator Connection as the type and click next.
For on-premise Orchestrators, you will be using Basic Authentication with a username and password. Specify the Orchestrator URL and tenant as well.
Name the connection (it is a good idea to include the environment and tenant in the name) then click save.
To add variables to store client id/user key etc.
In the Azure DevOps project, click on Project Settings on the bottom left of the page.
Click on Library under Pipelines.
On the top of the page, click + Variable Group. for this example, we have given group name as “UiPath”
You can now add all the variables you need inside the pipeline. (for our use case we need Orchastarator API Details so so that we can publish the package to the different environment )
For reusability, you should create different groups for different environment and projects. this will help to restrict the usages.
You can skip this slide and move directly to the demo, if needed but make sure you have filled in the previous slide in which you explain the purpose and steps of the demo.