cicd-integrations
2025.10
true
UiPath logo, featuring letters U and I in white

CI/CD integrations user guide

Last updated Nov 18, 2025

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:

  1. Deploy: Create a deployment configuration and associate the package with a target folder.
  2. 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:

ParameterDescriptionRequired
<package-name>Name of the uploaded packageYes
-v or --versionPackage version to deployYes
-d or --deploymentNameName for this deploymentYes
-f or --deploymentFolderNameTarget folder name in OrchestratorYes
-UOrchestrator URLYes
-TTenant nameYes
-AOrganization nameYes
-IExternal App IDYes
-SExternal App secretYes
--applicationScopeRequired scopesYes
--deploymentParentFolderThe Orchestrator folder where the deployment folder will be created. If not specified, the deployment folder will be created in tenant folder. When specified, deployment will be under respective folder. When set to "[email protected]'s workspace", the deployment will be under personal workspace for specified user.No
--configPathLocal path to solution configuration file; needed in scenarios with overwriting bindingsNo
--traceLevelLogging levelNo
Important:

If a deployment with the same name already exists at any level within the tenant in Orchestrator, this operation upgrades the existing deployment instead of creating a new one. If the existing deployment is in Failed state, the upgrade does not proceed; resolve or uninstall the failed deployment before retrying.

Important:

Solutions deployed at the tenant level do not automatically assign a user to the resulting folder. To assign an account, ensure the appropriate configuration is set in Orchestrator (Tenant > Folders).

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 Information

Deployment 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.0

This makes it easier to track and manage deployments across environments.

What happens during deployment

When you run the deploy command:

  1. The package is validated in Solutions.
  2. A deployment configuration is created.
  3. The deployment is associated with the target folder.
  4. Environment-specific bindings are initialized.
  5. 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:

ParameterDescriptionRequired
<deployment-name>Name of the deployment to activateYes
-UOrchestrator URLYes
-TTenant nameYes
-AOrganization nameYes
-IExternal App IDYes
-SExternal App secretYes
--applicationScopeRequired scopesYes
--traceLevelLogging levelNo

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 Information

What happens during activation

When you activate a deployment:

  1. The deployment becomes the active version in the target folder.
  2. Triggers are activated.
  3. 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:

  1. Deploy the previous version with a new deployment name.
  2. Activate the previous version deployment.
  3. 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:

  1. Monitor execution in Orchestrator.
  2. Uninstall deployments when no longer needed.
  3. Deploy new versions following the same workflow.

Was this page helpful?

Get The Help You Need
Learning RPA - Automation Courses
UiPath Community Forum
Uipath Logo
Trust and Security
© 2005-2025 UiPath. All rights reserved.