UiPath DevOps Scripts : CI CD Integration with UiPath Platform

Release Notes

Released Date 13/02/2023

  • Upgraded the scripts to use the official UiPath CLI
  • for self-hosted agents, add paramter to provide path of the UiPath CLI if available on the machine instead of auto downloading the scrip

Pack, analyze, deploy, run automations, tests & manage assets.

Scripts Demo - Youtube Video

Overview

More and more customers are requesting integrations of UiPath platform to other platforms like GitLab and Circle CI and UiPath is not able to create native plugins for all of them.

Until a generic solution is officially released, this unofficial library of DevOps PowerShell scripts will support customers to integrate CI/CD into their workflows and allow them to package, deploy and run automations and tests.

Scripts Repository: GitHub - UiPath-Services/UiPath-DevOps-Scripts
Marketplace Listing: UiPath DevOps Scripts - RPA Component | UiPath Marketplace | Overview

Prerequisite:

  • The provisioned vm or agent should be a window machine
  • Add a step in your CI/CD pipepline to download the descired scripts. (Downlod only the scripts you need, for example if you want to Pack an RPA project then download UiPathPack script) Use the scripts below as one step in your pipeline and give at any name (e.g. “Preparing Environment”)

It is recommended to download copy of the scripts from the scripts folder into your own repository

#Create scripts folder under C drive. (you can change the directory path ) New-Item -Path "C:\\" -ItemType "directory" -Name "scripts"; Invoke-WebRequest "https://github.com/UiPath-Services/UiPath-DevOps-Scripts/raw/main/scripts/UiPathPack.ps1" -OutFile "C:\\scripts\\UiPathPack.ps1"; Invoke-WebRequest "https://github.com/UiPath-Services/UiPath-DevOps-Scripts/raw/main/scripts/UiPathDeploy.ps1" -OutFile "C:\\scripts\\UiPathDeploy.ps1"; Invoke-WebRequest "https://github.com/UiPath-Services/UiPath-DevOps-Scripts/raw/main/scripts/UiPathJobRun.ps1" -OutFile "C:\\scripts\\UiPathJobRun.ps1"; Invoke-WebRequest "https://github.com/UiPath-Services/UiPath-DevOps-Scripts/raw/main/scripts/UiPathRunTest.ps1" -OutFile "C:\\scripts\\UiPathRunTest.ps1"; Invoke-WebRequest "https://github.com/UiPath-Services/UiPath-DevOps-Scripts/raw/main/scripts/UiPathManageAssets.ps1" -OutFile "C:\\scripts\\UiPathManageAssets.ps1"; Invoke-WebRequest "https://github.com/UiPath-Services/UiPath-DevOps-Scripts/raw/main/scripts/UiPathAnalyzeProject.ps1" -OutFile "C:\\scripts\\UiPathAnalyzeProject.ps1"; Invoke-WebRequest "https://github.com/UiPath-Services/UiPath-DevOps-Scripts/raw/main/scripts/UiPathCLIGeneric.ps1" -OutFile "C:\\scripts\\UiPathCLIGeneric.ps1";

Q: You can’t create directory outside the build/working directory of your CI/CD previsioned machine?
A: Some CI/CD tool, like gitlab, may not allow the creation of folder outside the build/working directory . For this you need to place the folder and scripts inside the working directory. In the above script you will need to replace “C:\” with the the CI/CD tool variable referencing the working directory.
for example,
GitLab $env:CI_PROJECT_DIR
GitHub Actions: ${{github.workspace}}
…etc

Powershell Scripts

Seven available scripts can be utilized

Script Description
UiPathPack Pack one or more projects into a package. Click on the name for detailed documentation
UiPathDeploy Deploy packages to an Orchestrator instance, optionally publishing them to a set of environments. Click on the name for detailed documentation
UiPathJobRun Trigger a job on Orchestrator. Click on the name for detailed documentation
UiPathRunTest Tests a given package or runs a test set. Click on the name for detailed documentation
UiPathManageAssets Manage UiPath orchestrator assets.
UiPathAnalyzeProject Check project(s) for workflow analyzer violations
UiPathCLIGeneric This script is designed for those who know how to work with uipcli.exe and would like to call the cli directly. This script will pass the provided parameters as is directly to uipcli.exe.

Pipelines Samples provided in the video

CircleCI sample
GitLab sample

Logging

Each script will log all output to its own *.log file and sometimes to the console.

Script Dependencies

The scripts will automatically download the dependencies during the runtime
UiPath CLI

  • Package Pack
  • Package Deploy
  • Job Run
  • Test Run
  • asset delete
  • asset deploy
  • package analyze
4 Likes

I’ve noticed the UiPath.CLI doesn’t seem to work with projects using Windows compatibility (Windows-legacy works fine). Do you know if there will be an update coming soon?

This was helpful… UiPath CLI

…I was able to get my Windows compatibility project to build (package). Below is the command that used after downloading the CLI and installing the .net core SDK dependencies:

C:\scripts\UiPath.CLI.Windows.22.10.8378.25430\tools\uipcli.exe package pack C:\Projects\TestUiPathCLI-WindowsCompatibility\project.json --output C:\Projects\TestUiPathCLI-WindowsCompatibility\package

Hope this helps others looking for the same.

2 Likes

@jjcrist How to reference C:\scripts\UiPath.CLI.Windows.22.10.8378.25430 as online url? I am using this https://www.myget.org/F/uipath-dev/api/v2/package/UiPath.CLI/1.0.7802.11617 in my scripts

Please use the compatibility matrix to find the right version for you:

Here is a direct link to the url I used to get the version I needed for my environment:
https://uipath.visualstudio.com/Public.Feeds/_artifacts/feed/UiPath-Official/NuGet/UiPath.CLI.Windows/overview/22.10.8417.12290

I downloaded this and changed the .nupkg extension to .zip and then I extracted it to my C:\scripts folder.

@jjcrist the scripts library is upgraded to use the official UiPath CLI which does support Windows projects

Hi Abdullah,

amazing work! This really gives everyone a headstart in terms of UiPath CICD pipelines.

When trying out your scripts, I have noticed an issue with the feed configuration of uipcli.exe. Perhaps you know the code of the CLI and can help us out? I’ve opened a separate topic for this:

Uipcli.exe built in nuget package sources lead to long execution times - Help / Something Else - UiPath Community Forum

P.S: Have you thought about open-sourcing uipcli.exe? It seems like the community could bring great benefits to the application!

How did you do this, using powershell?
May I please know, how you have done this?

@jjcrist : We use uipcli package pack inside a gitlab pipeline. the problem is with version 20.11.0 current projects can be packaged. But with the newest cli it tries to download missing packages from different feeds. But the missing package is already in the artifacts folder. Do you have any experience with that?