UiPath Documentation
cicd-integrations
2025.10
true
Guía del usuario de integraciones de CI/CD
Importante :
Este contenido se ha localizado parcialmente a partir de un sistema de traducción automática. La localización de contenidos recién publicados puede tardar entre una y dos semanas en estar disponible.

Implementar y activar soluciones

Implementa un paquete de soluciones en una carpeta de destino y actívalo en Orchestrator.

Después de cargar un paquete de soluciones en Soluciones, puedes implementarlo en una carpeta de destino y activarlo para que sea operativo.

Consejo:

Para las instancias de Orchestrator firmadas por una autoridad de certificación privada (como UiPath Automation Suite), tanto deploy como deploy-activate también aceptan los parámetros --ca-cert y --pinnedpubkey . Consulta Confiar en certificados personalizados para escenarios y ejemplos.

Flujo de trabajo de implementación

La implementación de una solución es un proceso de dos pasos:

  1. Implementar: crea una configuración de implementación y asocia el paquete con una carpeta de destino.
  2. Activar: hace que la implementación esté activa y operativa.

Esta separación te permite preparar las implementaciones con antelación y activarlas durante las ventanas de mantenimiento o después de la aprobación manual.

Implementar una solución

El comando deploy crea una implementación de un paquete de soluciones en un entorno específico.

Sintaxis del comando

uipcli solution deploy <package-name> [options]
uipcli solution deploy <package-name> [options]
Parámetros
ParámetroDescripciónObligatorio
<package-name>Nombre del paquete cargado
-v o --versionVersión del paquete a implementar
-d o --deploymentNameNombre de esta implementación
-f o --deploymentFolderNameNombre de la carpeta de destino en Orchestrator
-UURL de Orchestrator
-TNombre del tenant
-ANombre de la organización
-IID de aplicación externa
-SSecreto de aplicación externa
--applicationScopeÁmbitos opcionales (aplicados por defecto)No
--deploymentParentFolderLa carpeta de Orchestrator donde se creará la carpeta de implementación. Si no se especifica, la carpeta de implementación se creará en la carpeta del tenant. Cuando se especifica, la implementación se realizará en la carpeta correspondiente. Cuando se establece en "exampleuser@org.com 's espacio de trabajo", la implementación se realizará en el espacio de trabajo personal para el usuario especificado.No
--configPathRuta local al archivo de configuración de la solución; necesario en escenarios con sobrescritura de enlaces. Consulta Descargar paquetes de soluciones y configuraciones para obtener más información sobre la obtención de archivos de configuración.No
--traceLevelNivel de registroNo
--ca-certArchivo(s) de CA raíz de confianza (PEM, DER o PKCS#7) para el certificado TLS de Orchestrator/Identity. Repetir o separar por comas. Consulta Confiar en certificados personalizados.No
--pinnedpubkeyAnclar la clave pública hoja (sha256//<base64>). Consulta Confiar en certificados personalizados.No
Nota:

Ámbitos de aplicación predeterminados para soluciones

Al utilizar la autenticación de aplicaciones externas sin especificar el parámetro --applicationScope , la CLI aplica automáticamente estos ámbitos de solución predeterminados:

Solutions.Packages Solutions.Deployments OR.Execution

Importante: Los tres ámbitos son necesarios para todos los comandos CLI relacionados con la solución. Estos ámbitos se agrupan para proporcionar una cobertura completa para todos los comandos de la solución disponibles y deben configurarse de forma colectiva en lugar de individualmente por comando.

Importante:

Si ya existe una implementación con el mismo nombre en cualquier nivel dentro del tenant en Orchestrator, esta operación actualiza la implementación existente en lugar de crear una nueva. Si la implementación existente está en estado Fallido, la actualización no continúa; resolver o desinstalar la implementación fallida antes de volver a intentarlo.

Importante:

Las soluciones implementadas a nivel de tenant no asignan automáticamente un usuario a la carpeta resultante. Para asignar una cuenta, asegúrate de que la configuración adecuada esté establecida en Orchestrator (Tenant > Carpetas).

Autenticación

Consulta Autenticación y ámbitos para conocer los ámbitos necesarios y Configuración de la aplicación externa.

Ejemplo

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 Information
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 Information

Convenciones de nomenclatura de implementación

Elige nombres de implementación significativos que incluyan:

  • Nombre de la solución
  • Identificador de entorno
  • Versión o fecha
Ejemplos
MySolution-Dev-v1.2.3
MySolution-Test-2025-01-15
MySolution-Prod-Release-1.2.3
InvoiceProcessing-Production-v2.0.0
MySolution-Dev-v1.2.3
MySolution-Test-2025-01-15
MySolution-Prod-Release-1.2.3
InvoiceProcessing-Production-v2.0.0

Esto facilita el seguimiento y la gestión de las implementaciones en todos los entornos.

Qué sucede durante la implementación

Al ejecutar el comando de implementación:

  1. El paquete se valida en Soluciones.
  2. Se crea una configuración de implementación.
  3. La implementación está asociada a la carpeta de destino.
  4. Se inicializan los enlaces específicos del entorno.
  5. La implementación está preparada pero aún no está activa.

La solución no comienza a ejecutar procesos hasta que la actives.

Reutilizar recursos existentes

De forma predeterminada, la implementación de una solución aprovisiona todos los recursos de la carpeta de destino. Cuando el entorno de destino ya contiene un recurso que deseas reutilizar, como una conexión compartida a un sistema externo, vincula el recurso de la solución al existente a través del archivo de configuración de implementación y luego implementa con --configPath.

Este es el proceso equivalente a elegir Personalizar y vincular un recurso a mano al implementar una solución manualmente en Orchestrator.

Nota:

Vincular un recurso que se encuentra en una carpeta de Orchestrator requiere los ámbitos OR.Folders y RCS.FolderAuthorization, y la aplicación externa debe asignarse a la carpeta que contiene el recurso existente.

Pasos

  1. Descarga la configuración de implementación para el paquete. Consulta Descargar paquetes de soluciones y configuraciones.

    uipcli solution download-config MySolution \
      -d C:\Configs \
      -v 1.0.0 \
      --format json \
      -U https://cloud.uipath.com/ \
      -T DefaultTenant \
      -A myorg \
      -I 12345678-xxxx-xxxx-xxxx-xxxxxxxxxxxx \
      -S **** \
      --applicationScope "AutomationSolutions Solutions.Deployments Solutions.Packages OR.Folders RCS.FolderAuthorization"
    uipcli solution download-config MySolution \
      -d C:\Configs \
      -v 1.0.0 \
      --format json \
      -U https://cloud.uipath.com/ \
      -T DefaultTenant \
      -A myorg \
      -I 12345678-xxxx-xxxx-xxxx-xxxxxxxxxxxx \
      -S **** \
      --applicationScope "AutomationSolutions Solutions.Deployments Solutions.Packages OR.Folders RCS.FolderAuthorization"
    
  2. Abre el archivo de configuración descargado.

  3. Localiza la entrada del recurso que quieres reutilizar.

  4. Añade un linkToResource bloque que apunte la entrada al recurso existente de Orchestrator por nombre y carpeta. Para un recurso de conexión, la entrada tiene este aspecto:

    {
      "kind": "connection",
      "name": "Slack connection",
      "resourceKey": "b060048b-4be3-425e-9822-9139605ba2a7",
      "folderPaths": [
        "solution_folder"
      ],
      "configuration": {
        "description": null,
        "authenticationType": "AuthenticateAfterDeployment",
        "connectorVersion": "2.14.7",
        "connectorKey": "uipath-salesforce-slack",
        "pollingInterval": 5
      },
      "linkToResource": {
        "name": "Existing Slack connection",
        "folderPath": "Shared"
      }
    }
    {
      "kind": "connection",
      "name": "Slack connection",
      "resourceKey": "b060048b-4be3-425e-9822-9139605ba2a7",
      "folderPaths": [
        "solution_folder"
      ],
      "configuration": {
        "description": null,
        "authenticationType": "AuthenticateAfterDeployment",
        "connectorVersion": "2.14.7",
        "connectorKey": "uipath-salesforce-slack",
        "pollingInterval": 5
      },
      "linkToResource": {
        "name": "Existing Slack connection",
        "folderPath": "Shared"
      }
    }
    

    El objeto linkToResource apunta el recurso de la solución al existente; los campos bajo configuration varían según el tipo de recurso.

  5. Implementa la solución, pasando la configuración editada con --configPath.

    uipcli solution deploy MySolution \
      -v 1.0.0 \
      -d MySolution-Prod-v1.0.0 \
      -f Production \
      --deploymentParentFolder "Shared" \
      --configPath C:\Configs\MySolution.1.0.0.json \
      -U https://cloud.uipath.com/ \
      -T DefaultTenant \
      -A myorg \
      -I 12345678-xxxx-xxxx-xxxx-xxxxxxxxxxxx \
      -S **** \
      --applicationScope "AutomationSolutions Solutions.Deployments Solutions.Packages OR.Folders RCS.FolderAuthorization"
    uipcli solution deploy MySolution \
      -v 1.0.0 \
      -d MySolution-Prod-v1.0.0 \
      -f Production \
      --deploymentParentFolder "Shared" \
      --configPath C:\Configs\MySolution.1.0.0.json \
      -U https://cloud.uipath.com/ \
      -T DefaultTenant \
      -A myorg \
      -I 12345678-xxxx-xxxx-xxxx-xxxxxxxxxxxx \
      -S **** \
      --applicationScope "AutomationSolutions Solutions.Deployments Solutions.Packages OR.Folders RCS.FolderAuthorization"
    

La implementación reutiliza el recurso vinculado en lugar de crear uno nuevo en la carpeta de destino.

Autenticación de conexión

Para los recursos de conexión, vincular una conexión existente es una opción entre varias. El campo authenticationType en el archivo de configuración acepta dos valores: ConfigurableByUsers y AuthenticateAfterDeployment.

Establece authenticationType como ConfigurableByUsers para dejar la conexión sin vincular y aplazar su selección al tiempo de ejecución. Los usuarios seleccionan y autentican la conexión cuando se ejecuta la automatización, que también es una configuración válida para la activación.

Con AuthenticateAfterDeployment, la conexión debe autenticarse después de que se complete la implementación. Si no se autentica en el momento en que se ejecuta la activación, la activación se informa como fallida.

Activar una implementación

El comando deploy-activate hace que una implementación esté activa y operativa.

Sintaxis del comando

uipcli solution deploy-activate <deployment-name> [options]
uipcli solution deploy-activate <deployment-name> [options]
Parámetros
ParámetroDescripciónObligatorio
<deployment-name>Nombre de la implementación que se va a activar
-UURL de Orchestrator
-TNombre del tenant
-ANombre de la organización
-IID de aplicación externa
-SSecreto de aplicación externa
--applicationScopeÁmbitos necesarios
--traceLevelNivel de registroNo
--ca-certArchivo(s) de CA raíz de confianza (PEM, DER o PKCS#7) para el certificado TLS de Orchestrator/Identity. Repetir o separar por comas. Consulta Confiar en certificados personalizados.No
--pinnedpubkeyAnclar la clave pública hoja (sha256//<base64>). Consulta Confiar en certificados personalizados.No

Autenticación

Consulta Autenticación y ámbitos para conocer los ámbitos necesarios y Configuración de la aplicación externa.

Ejemplo

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 Information
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 Information

Qué sucede durante la activación

Al activar una implementación:

  1. La implementación se convierte en la versión activa en la carpeta de destino.
  2. Los desencadenadores están activados.
  3. Se desactiva cualquier implementación previamente activa en la misma carpeta.

Integración del proceso CI/CD

Flujo de trabajo de implementación completo

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"

Implementaciones cerradas con aprobación manual

Puedes separar los pasos de implementación y activación para implementar los flujos de trabajo de aprobación:

# 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'

Promoción multientorno

Implementa la misma versión en varios entornos de forma secuencial:

# Deploy to Dev
uipcli 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 Test
uipcli 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 Dev
uipcli 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 Test
uipcli 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 ...

Estrategia de reversión

Para revertir a una versión anterior:

  1. Implementa la versión anterior con un nuevo nombre de implementación.
  2. Activa la implementación de la versión anterior.
  3. Opcionalmente, desinstala la implementación más reciente.
# Roll back to v1.2.2
uipcli 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.2
uipcli 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 ...

Próximos pasos

Después de implementar y activar las soluciones, puedes:

  1. Supervisar la ejecución en Orchestrator.
  2. Desinstala las implementaciones cuando ya no sean necesarias.
  3. Implementa nuevas versiones siguiendo el mismo flujo de trabajo.

¿Te ha resultado útil esta página?

Conectar

¿Necesita ayuda? Soporte

¿Quiere aprender? UiPath Academy

¿Tiene alguna pregunta? Foro de UiPath

Manténgase actualizado