- 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
Deploying and Activating Solutions
After uploading a solution package to Solutions, you can deploy it to a target folder and activate it to make it operational.
Deployment workflow
Deploying a solution is a two-step process:
- Deploy: Create a deployment configuration and associate the package with a target folder.
- Activate: Make the deployment live and operational.
This separation allows you to prepare deployments in advance and activate them during maintenance windows or after manual approval.
Deploying a solution
The deploy command creates a deployment of a solution package in a specific environment.
Command syntax
uipcli solution deploy <package-name> [options]uipcli solution deploy <package-name> [options]Parameters:
| Parameter | Description | Required |
|---|---|---|
<package-name> | Name of the uploaded package | Yes |
-v or --version | Package version to deploy | Yes |
-d or --deploymentName | Name for this deployment | Yes |
-f or --deploymentFolderName | Target folder name in Orchestrator | Yes |
-U | Orchestrator URL | Yes |
-T | Tenant name | Yes |
-A | Organization name | Yes |
-I | External App ID | Yes |
-S | External App secret | Yes |
--applicationScope | Required scopes | Yes |
--deploymentParentFolder | Parent folder name in Orchestrator where the solution will be deployed (if omitted solutuion will be deployed under Tenant) | No |
--configPath | Local path to solution configuration file; needed in scenarios with overwriting bindings | No |
--traceLevel | Logging level | No |
Authentication
See Authentication and scopes for required scopes and External App setup.
Example
uipcli solution deploy MySolution \ -v 1.2.3 \ -d MySolution-Prod-v1.2.3 \ -f Production \ -U https://cloud.uipath.com/ \ -T DefaultTenant \ -A myorg \ -I 12345678-xxxx-xxxx-xxxx-xxxxxxxxxxxx \ -S **** \ --applicationScope "AutomationSolutions Solutions.Deployments Solutions.Deployments.Read Solutions.Deployments.Write Solutions.Packages Solutions.Packages.Read Solutions.Packages.Write" \ --traceLevel Informationuipcli solution deploy MySolution \ -v 1.2.3 \ -d MySolution-Prod-v1.2.3 \ -f Production \ -U https://cloud.uipath.com/ \ -T DefaultTenant \ -A myorg \ -I 12345678-xxxx-xxxx-xxxx-xxxxxxxxxxxx \ -S **** \ --applicationScope "AutomationSolutions Solutions.Deployments Solutions.Deployments.Read Solutions.Deployments.Write Solutions.Packages Solutions.Packages.Read Solutions.Packages.Write" \ --traceLevel InformationDeployment naming conventions
Choose meaningful deployment names that include:
- Solution name
- Environment identifier
- Version or date
Examples:
MySolution-Dev-v1.2.3MySolution-Test-2025-01-15MySolution-Prod-Release-1.2.3InvoiceProcessing-Production-v2.0.0MySolution-Dev-v1.2.3MySolution-Test-2025-01-15MySolution-Prod-Release-1.2.3InvoiceProcessing-Production-v2.0.0This makes it easier to track and manage deployments across environments.
What happens during deployment
When you run the deploy command:
- The package is validated in Solutions.
- A deployment configuration is created.
- The deployment is associated with the target folder.
- Environment-specific bindings are initialized.
- The deployment is prepared but not yet active.
The Solution does not start executing processes until you activate it.
Activating a deployment
The deploy-activate command makes a deployment live and operational.
Command syntax
uipcli solution deploy-activate <deployment-name> [options]uipcli solution deploy-activate <deployment-name> [options]Parameters:
| Parameter | Description | Required |
|---|---|---|
<deployment-name> | Name of the deployment to activate | Yes |
-U | Orchestrator URL | Yes |
-T | Tenant name | Yes |
-A | Organization name | Yes |
-I | External App ID | Yes |
-S | External App secret | Yes |
--applicationScope | Required scopes | Yes |
--traceLevel | Logging level | No |
Authentication
See Authentication and scopes for required scopes and External App setup.
Example
uipcli solution deploy-activate MySolution-Prod-v1.2.3 \ -U https://cloud.uipath.com/ \ -T DefaultTenant \ -A myorg \ -I 12345678-xxxx-xxxx-xxxx-xxxxxxxxxxxx \ -S **** \ --applicationScope "AutomationSolutions Solutions.Deployments Solutions.Deployments.Read Solutions.Deployments.Write Solutions.Packages Solutions.Packages.Read Solutions.Packages.Write" \ --traceLevel Informationuipcli solution deploy-activate MySolution-Prod-v1.2.3 \ -U https://cloud.uipath.com/ \ -T DefaultTenant \ -A myorg \ -I 12345678-xxxx-xxxx-xxxx-xxxxxxxxxxxx \ -S **** \ --applicationScope "AutomationSolutions Solutions.Deployments Solutions.Deployments.Read Solutions.Deployments.Write Solutions.Packages Solutions.Packages.Read Solutions.Packages.Write" \ --traceLevel InformationWhat happens during activation
When you activate a deployment:
- The deployment becomes the active version in the target folder.
- Triggers are activated.
- Any previously active deployment in the same folder is deactivated.
CI/CD pipeline integration
Complete deployment workflow
steps: # 1. Pack the Solution - name: Pack Solution run: | uipcli solution pack ./MySolution \ --output ./packages \ --version "1.0.${{ github.run_number }}" # 2. Upload to Solutions Management - name: Upload Package run: | uipcli solution upload-package ./packages/MySolution.1.0.${{ github.run_number }}.zip \ -U ${{ secrets.ORCHESTRATOR_URL }} \ -T ${{ secrets.ORCHESTRATOR_TENANT }} \ -A ${{ secrets.ORG_NAME }} \ -I ${{ secrets.EXTERNAL_APP_ID }} \ -S ${{ secrets.EXTERNAL_APP_SECRET }} \ --applicationScope "AutomationSolutions Solutions.Packages Solutions.Packages.Write" # 3. Deploy to target environment - name: Deploy Solution run: | uipcli solution deploy MySolution \ -v "1.0.${{ github.run_number }}" \ -d "MySolution-Prod-v1.0.${{ github.run_number }}" \ -f Production \ -U ${{ secrets.ORCHESTRATOR_URL }} \ -T ${{ secrets.ORCHESTRATOR_TENANT }} \ -A ${{ secrets.ORG_NAME }} \ -I ${{ secrets.EXTERNAL_APP_ID }} \ -S ${{ secrets.EXTERNAL_APP_SECRET }} \ --applicationScope "AutomationSolutions Solutions.Deployments Solutions.Deployments.Read Solutions.Deployments.Write Solutions.Packages Solutions.Packages.Read Solutions.Packages.Write" # 4. Activate the deployment - name: Activate Deployment run: | uipcli solution deploy-activate "MySolution-Prod-v1.0.${{ github.run_number }}" \ -U ${{ secrets.ORCHESTRATOR_URL }} \ -T ${{ secrets.ORCHESTRATOR_TENANT }} \ -A ${{ secrets.ORG_NAME }} \ -I ${{ secrets.EXTERNAL_APP_ID }} \ -S ${{ secrets.EXTERNAL_APP_SECRET }} \ --applicationScope "AutomationSolutions Solutions.Deployments Solutions.Deployments.Read Solutions.Deployments.Write Solutions.Packages Solutions.Packages.Read Solutions.Packages.Write"steps: # 1. Pack the Solution - name: Pack Solution run: | uipcli solution pack ./MySolution \ --output ./packages \ --version "1.0.${{ github.run_number }}" # 2. Upload to Solutions Management - name: Upload Package run: | uipcli solution upload-package ./packages/MySolution.1.0.${{ github.run_number }}.zip \ -U ${{ secrets.ORCHESTRATOR_URL }} \ -T ${{ secrets.ORCHESTRATOR_TENANT }} \ -A ${{ secrets.ORG_NAME }} \ -I ${{ secrets.EXTERNAL_APP_ID }} \ -S ${{ secrets.EXTERNAL_APP_SECRET }} \ --applicationScope "AutomationSolutions Solutions.Packages Solutions.Packages.Write" # 3. Deploy to target environment - name: Deploy Solution run: | uipcli solution deploy MySolution \ -v "1.0.${{ github.run_number }}" \ -d "MySolution-Prod-v1.0.${{ github.run_number }}" \ -f Production \ -U ${{ secrets.ORCHESTRATOR_URL }} \ -T ${{ secrets.ORCHESTRATOR_TENANT }} \ -A ${{ secrets.ORG_NAME }} \ -I ${{ secrets.EXTERNAL_APP_ID }} \ -S ${{ secrets.EXTERNAL_APP_SECRET }} \ --applicationScope "AutomationSolutions Solutions.Deployments Solutions.Deployments.Read Solutions.Deployments.Write Solutions.Packages Solutions.Packages.Read Solutions.Packages.Write" # 4. Activate the deployment - name: Activate Deployment run: | uipcli solution deploy-activate "MySolution-Prod-v1.0.${{ github.run_number }}" \ -U ${{ secrets.ORCHESTRATOR_URL }} \ -T ${{ secrets.ORCHESTRATOR_TENANT }} \ -A ${{ secrets.ORG_NAME }} \ -I ${{ secrets.EXTERNAL_APP_ID }} \ -S ${{ secrets.EXTERNAL_APP_SECRET }} \ --applicationScope "AutomationSolutions Solutions.Deployments Solutions.Deployments.Read Solutions.Deployments.Write Solutions.Packages Solutions.Packages.Read Solutions.Packages.Write"Gated deployments with manual approval
You can separate deploy and activate steps to implement approval workflows:
# Stage 1: Deploy (automated)- stage: DeployToProduction jobs: - job: Deploy steps: - script: | uipcli solution deploy MySolution -v $(version) -d MySolution-Prod-$(version) -f Production ... displayName: 'Prepare Production Deployment'# Stage 2: Activate (requires approval)- stage: ActivateProduction dependsOn: DeployToProduction # Manual approval gate configured in Azure DevOps jobs: - deployment: Activate environment: 'Production' steps: - script: | uipcli solution deploy-activate MySolution-Prod-$(version) ... displayName: 'Activate Production Deployment'# Stage 1: Deploy (automated)- stage: DeployToProduction jobs: - job: Deploy steps: - script: | uipcli solution deploy MySolution -v $(version) -d MySolution-Prod-$(version) -f Production ... displayName: 'Prepare Production Deployment'# Stage 2: Activate (requires approval)- stage: ActivateProduction dependsOn: DeployToProduction # Manual approval gate configured in Azure DevOps jobs: - deployment: Activate environment: 'Production' steps: - script: | uipcli solution deploy-activate MySolution-Prod-$(version) ... displayName: 'Activate Production Deployment'Multi-environment promotion
Deploy the same version to multiple environments sequentially:
# Deploy to Devuipcli solution deploy MySolution -v 1.2.3 -d MySolution-Dev-1.2.3 -f Dev ...uipcli solution deploy-activate MySolution-Dev-1.2.3 ...# Deploy to Testuipcli solution deploy MySolution -v 1.2.3 -d MySolution-Test-1.2.3 -f Test ...uipcli solution deploy-activate MySolution-Test-1.2.3 ...# Deploy to Production (after approval)uipcli solution deploy MySolution -v 1.2.3 -d MySolution-Prod-1.2.3 -f Production ...uipcli solution deploy-activate MySolution-Prod-1.2.3 ...# Deploy to Devuipcli solution deploy MySolution -v 1.2.3 -d MySolution-Dev-1.2.3 -f Dev ...uipcli solution deploy-activate MySolution-Dev-1.2.3 ...# Deploy to Testuipcli solution deploy MySolution -v 1.2.3 -d MySolution-Test-1.2.3 -f Test ...uipcli solution deploy-activate MySolution-Test-1.2.3 ...# Deploy to Production (after approval)uipcli solution deploy MySolution -v 1.2.3 -d MySolution-Prod-1.2.3 -f Production ...uipcli solution deploy-activate MySolution-Prod-1.2.3 ...Rollback strategy
To roll back to a previous version:
- Deploy the previous version with a new deployment name.
- Activate the previous version deployment.
- Optionally uninstall the newer deployment.
# Roll back to v1.2.2uipcli solution deploy MySolution -v 1.2.2 -d MySolution-Prod-Rollback-1.2.2 -f Production ...uipcli solution deploy-activate MySolution-Prod-Rollback-1.2.2 ...# Roll back to v1.2.2uipcli solution deploy MySolution -v 1.2.2 -d MySolution-Prod-Rollback-1.2.2 -f Production ...uipcli solution deploy-activate MySolution-Prod-Rollback-1.2.2 ...Next steps
After deploying and activating Solutions, you can:
- Monitor execution in Orchestrator.
- Uninstall deployments when no longer needed.
- Deploy new versions following the same workflow.
- Deployment workflow
- Deploying a solution
- Command syntax
- Authentication
- Example
- Deployment naming conventions
- What happens during deployment
- Activating a deployment
- Command syntax
- Authentication
- Example
- What happens during activation
- CI/CD pipeline integration
- Complete deployment workflow
- Gated deployments with manual approval
- Multi-environment promotion
- Rollback strategy
- Next steps