- Overview
 - UiPath CLI
- About UiPath CLI
 - Downloading UiPath CLI
 - Compatibility matrix
 - Running UiPath CLI
 - Managing NuGet feeds
 - About UiPath CLI tasks
 - 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
Deploying a package to Orchestrator
Prerequisites:
- Create a package.
 - Run the CLI 
exe(for Windows) ordll(for Linux) file. - Add the required Orchestrator API access application scopes.
 
To deploy a package to Orchestrator, take the following steps:
- Run the 
packagetask, usinguipcli package. You can notice a list of the available sub-tasks. - Specify the required parameters and run the 
deploysub-task. The following table describes the required parameters. 
| Parameter | Description | |||||||||
|---|---|---|---|---|---|---|---|---|---|---|
-c, or --createProcess | The default value is  When set to  When set to   | |||||||||
--processNames | Optionally provide a .csv file with custom names for the processes to be created/updated. The following is an example of how the .csv structure must look. The column names/headers PackageName, EntryPointName, and ProcessName are required! 
  | |||||||||
--processName | Optionally provide a custom name for the process to be updated/created. | |||||||||
--ignoreLibraryDeployConflict | Ignore the conflict when deploying a library package with the same version as an existing one. By default, deployment fails if a library with the same version already exists in the Orchestrator instance. | |||||||||
-e, or --environments (for Classic folders) | A list of environments where you want to deploy the package, separated by commas. If the environment doesn’t belong to the default folder, prefix the environment with the folder name. For example: AccountingTeam\TestEnvironment.  | |||||||||
-h, or --entryPointsPath | Defines the specific entry points to create or update the process. This is the file path of the entry point, starting from the root of the project. For Classic folders, only one entry point can be specified per environment.  | |||||||||
-u, or --username (Required for Basic Authentication) | The username used for authenticating to Orchestrator. Must be paired with the corresponding password. | |||||||||
-p, or --password (Required for Basic Authentication) | The password used for authenticating to Orchestrator. Must be paired with the corresponding username. | |||||||||
-t, or --token (Required for token-based authentication) | The OAuth2 refresh token used for authenticating to Orchestrator. Must be paired with Account Name and Client ID. | |||||||||
-a, or --accountName (Required for  token-based authentication ) | The Orchestrator CloudRPA account name. Must be paired with the OAuth2 refresh token and Client ID. | |||||||||
-A, or --accountForApp | The Orchestrator CloudRPA account name (organization name). Must be paired with Application ID, Application Secret, and Application scope for external application authentication. | |||||||||
-I, or --applicationId (Required for external application authentication) | The external Application ID. Must be paired with Application Account, Application Secret, and Application scope. | |||||||||
-S, or --applicationSecret (Required for external application authentication) | The external Application Secret. Must be paired with Application Account, Application ID, and Application scope. | |||||||||
--applicationScope (Required for external application authentication) | The list of application scopes, separated by single spaces. Must be paired with Application Account, Application ID, and Application Secret. | |||||||||
-o, or --organizationUnit (Required) | The name of the Orchestrator folder (organization unit). To input subfolders, include both the parent and subfolder name. For example:   | |||||||||
-l, or --language | The language used in the Orchestrator user interface. | |||||||||
-y, or --disableTelemetry | Disable telemetry data. | |||||||||
--traceLevel | Display the trace of the events. | |||||||||
--identityUrl (Required for PaaS or MSI deployments) | The URL of your identity server. | |||||||||
Package(s) Path (pos. 0) (Required) | The path to a package file, or the path to a folder containing multiple packages. | |||||||||
Orchestrator URL (pos. 1) (Required) | The URL of the Orchestrator instance. | |||||||||
Orchestrator Tenant (pos. 2) 
  | The tenant of the Orchestrator instance where you want to delete a machine. | 
The uipcli creates a process with a default entry point if you do not specify one. If the entry point is specified, a process with that entry point is created and _{entryPoint} is appended to the process name. Additionally, all processes associated with the package.Id are updated to the latest version, regardless of whether the process was created manually or from a pipeline.
Usage:
uipcli package deploy <packages_path> <orchestrator_url> <orchestrator_tenant> [-u <orchestrator_user> -p <orchestrator_pass>] [-t <auth_token> -a <account_name>] [-A <organization_name> -I <application_id> -S <application_secret> --applicationScope <application_scope>] [-o <folder_name>] [-c <false|true>] [-e <environment_list>] [-l <language>] [--ignoreLibraryDeployConflict] [--entryPointsPath <entry_points_path_list>]  [--traceLevel <None|Critical|Error|Warning|Information|Verbose>] [--identityUrl <identityUrl>]uipcli package deploy <packages_path> <orchestrator_url> <orchestrator_tenant> [-u <orchestrator_user> -p <orchestrator_pass>] [-t <auth_token> -a <account_name>] [-A <organization_name> -I <application_id> -S <application_secret> --applicationScope <application_scope>] [-o <folder_name>] [-c <false|true>] [-e <environment_list>] [-l <language>] [--ignoreLibraryDeployConflict] [--entryPointsPath <entry_points_path_list>]  [--traceLevel <None|Critical|Error|Warning|Information|Verbose>] [--identityUrl <identityUrl>]Minimal command examples:
uipcli package deploy "C:\userprofile\AutomationPackages" "https://orch-23-10-paas.cloudapp.azure.com/" "TenantName" -u "orchestratorUsername" -p "********" -o "FolderName" --traceLevel Information --entryPointsPath "Main.xaml"uipcli package deploy "C:\userprofile\AutomationPackage.1.0.171447983.nupkg" "https://orch-23-10-paas.cloudapp.azure.com/" "TenantName" -I "76000552-3e4f-4590-9317-cdb420001f1d" -S "********" --applicationScope "OR.Folders OR.BackgroundTasks OR.TestSets OR.TestSetExecutions OR.TestSetSchedules OR.Settings.Read OR.Robots.Read OR.Machines.Read OR.Execution OR.Assets OR.Users.Read OR.Jobs OR.Monitoring" --identityUrl "https://orch-23-10-paas.cloudapp.azure.com/identity" -o "FolderName" --traceLevel Information --entryPointsPath "Main.xaml"nuipcli package deploy "C:\userprofile\AutomationPackage.1.0.171447983.nupkg" "https://automation-suite.base.url.com/" "TenantName" -A "organizationName" -I "3f6239b9-e0e8-465e-a429-d9ffd1d9e57a" -S "********" --applicationScope "OR.Folders OR.BackgroundTasks OR.TestSets OR.TestSetExecutions OR.TestSetSchedules OR.Settings.Read OR.Robots.Read OR.Machines.Read OR.Execution OR.Assets OR.Users.Read OR.Jobs OR.Monitoring" -o "FolderName" --traceLevel Information --entryPointsPath "Main.xaml"uipcli package deploy "C:\userprofile\AutomationPackage.1.0.171447983.nupkg" "https://cloud.uipath.com/" "TenantName" -A "organizationName" -I "becc663c-8f1e-409a-a75f-c00330d80bc8" -S "********" --applicationScope "OR.Folders OR.BackgroundTasks OR.TestSets OR.TestSetExecutions OR.TestSetSchedules OR.Settings.Read OR.Robots.Read OR.Machines.Read OR.Execution OR.Assets OR.Users.Read OR.Jobs OR.Monitoring" -o "FolderName" --traceLevel Information --processNames "C:\userprofile\processNames.csv"uipcli package deploy "C:\userprofile\AutomationPackage.1.0.171447983.nupkg" "https://cloud.uipath.com/" "TenantName" -A "organizationName" -I "becc663c-8f1e-409a-a75f-c00330d80bc8" -S "********" --applicationScope "OR.Folders OR.BackgroundTasks OR.TestSets OR.TestSetExecutions OR.TestSetSchedules OR.Settings.Read OR.Robots.Read OR.Machines.Read OR.Execution OR.Assets OR.Users.Read OR.Jobs OR.Monitoring" -o "FolderName" --traceLevel Information --entryPointsPath "Main.xaml" --processName "MyProcessName"