- Overview
- UiPath CLI
- About UiPath CLI
- Downloading UiPath CLI
- Compatibility matrix
- Running UiPath CLI
- Managing NuGet feeds
- Packing projects into a package
- Analyzing a project
- Deploying a package to Orchestrator
- Running a job inside Orchestrator
- Testing a package or running a test set
- Testing multiple packages
- Deploying assets to Orchestrator
- Deleting assets from Orchestrator
- Running tasks using JSON configuration
- Restoring automation dependencies
- Troubleshooting UiPath CLI
- Azure DevOps extension
- Jenkins plugin

CI/CD integrations user guide
Restoring and Analyzing Solutions
Before packaging a solution, you typically restore its dependencies and validate it against governance rules. These operations run locally and do not require Orchestrator authentication.
Restoring dependencies
The restore command downloads all required activity packages and project dependencies to a local folder.
Command syntax
uipcli solution restore <solution-path> [options]uipcli solution restore <solution-path> [options]Parameters:
| Parameter | Description | Required |
|---|---|---|
<solution-path> | Path to Solution folder or .uipx file | Yes |
--restoreFolder | Local path where dependencies are restored | No |
--traceLevel | Logging level: Verbose, Information, Warning | No |
Example
uipcli solution restore C:\Solutions\MySolution \ --restoreFolder C:\Work\Output \ --traceLevel Verboseuipcli solution restore C:\Solutions\MySolution \ --restoreFolder C:\Work\Output \ --traceLevel VerboseUsing custom NuGet feeds
If your solution depends on activities from custom feeds (including Orchestrator feeds), you can provide a nuget.config file in the solution directory or specify feeds using the library Orchestrator parameters:
uipcli solution restore C:\Solutions\MySolution \ -A myorg \ -I 12345678-xxxx-xxxx-xxxx-xxxxxxxxxxxx \ -S **** \ --libraryOrchestratorApplicationScope "OR.Folders OR.Settings.Read" \ --libraryOrchestratorTenant DefaultTenant \ --libraryOrchestratorUrl https://cloud.uipath.com/ \ --libraryOrchestratorFolder MyFolder \ --traceLevel Verboseuipcli solution restore C:\Solutions\MySolution \ -A myorg \ -I 12345678-xxxx-xxxx-xxxx-xxxxxxxxxxxx \ -S **** \ --libraryOrchestratorApplicationScope "OR.Folders OR.Settings.Read" \ --libraryOrchestratorTenant DefaultTenant \ --libraryOrchestratorUrl https://cloud.uipath.com/ \ --libraryOrchestratorFolder MyFolder \ --traceLevel VerboseSee Managing NuGet feeds for more details on configuring activity sources.
Performance considerations
NuGet restore is often the slowest step in solution packaging. Every restore operation must resolve both direct and transitive dependencies.
To improve restore performance:
- Cache the NuGet global package folder between pipeline runs:
- Windows:
%UserProfile%\.nuget\packages - Linux/macOS:
~/.nuget/packages
- Windows:
- Use a trimmed
nuget.configwith only reachable feeds:- Remove slow or unreachable feeds from the configuration.
- Order feeds by reliability and speed.
- Use self-hosted agents if persistent caching is required.
Refer to the Managing NuGet feeds documentation for caching examples in Azure DevOps and other CI/CD platforms.
Analyzing a solution
The analyze command validates the solution against Workflow Analyzer rules and governance policies.
Command syntax
uipcli solution analyze <solution-path> [options]uipcli solution analyze <solution-path> [options]Parameters:
| Parameter | Description | Required |
|---|---|---|
<solution-path> | Path to Solution folder or .uipx file | Yes |
--governanceFilePath | Path to governance policy JSON file | No |
--resultPath | Path where analysis results JSON will be saved | No |
--analyzerTraceLevel | Analyzer logging level: Warning, Information, Verbose | No |
--traceLevel | CLI logging level | No |
Example
uipcli solution analyze C:\Solutions\MySolution \ --governanceFilePath C:\Policies\uipath.policy.Production.json \ --resultPath C:\Output\analyze.json \ --analyzerTraceLevel Warning \ --traceLevel Informationuipcli solution analyze C:\Solutions\MySolution \ --governanceFilePath C:\Policies\uipath.policy.Production.json \ --resultPath C:\Output\analyze.json \ --analyzerTraceLevel Warning \ --traceLevel InformationGovernance policies
Governance policies define rules that must be met before a solution can be packaged and deployed. These typically include:
- Code quality standards
- Naming conventions
- Security checks
- Performance thresholds
Policy files are JSON documents that configure Workflow Analyzer rules. You can:
- Create policies in Studio
- Export them from Orchestrator
- Version control them alongside your Solution code
Using analysis results in CI/CD
The analysis results JSON can be parsed by your pipeline to:
- Fail the build if critical violations are found
- Generate compliance reports
- Gate deployments to production environments
Typical workflow
A common CI/CD pattern combines restore and analyze before packaging:
# 1. Restore dependenciesuipcli solution restore C:\Solutions\MySolution \ --restoreFolder C:\Output\Dependencies \ --traceLevel Information# 2. Analyze against governance rulesuipcli solution analyze C:\Solutions\MySolution \ --governanceFilePath C:\Policies\production.json \ --resultPath C:\Output\analysis.json \ --analyzerTraceLevel Warning# 3. Check analysis results# 4. Continue to packaging...# 1. Restore dependenciesuipcli solution restore C:\Solutions\MySolution \ --restoreFolder C:\Output\Dependencies \ --traceLevel Information# 2. Analyze against governance rulesuipcli solution analyze C:\Solutions\MySolution \ --governanceFilePath C:\Policies\production.json \ --resultPath C:\Output\analysis.json \ --analyzerTraceLevel Warning# 3. Check analysis results# 4. Continue to packaging...This ensures that only validated, compliant solutions proceed to packaging and deployment.