UiPath Documentation
cicd-integrations
2025.10
true
Guia do usuário de integrações de CI/CD
Importante :
A tradução automática foi aplicada parcialmente neste conteúdo. A localização de um conteúdo recém-publicado pode levar de 1 a 2 semanas para ficar disponível.

Implantação e ativação de soluções

Implante um pacote da solução em uma pasta de destino e ative-o no Orchestrator.

Depois de carregar um pacote de solução para Soluções, você pode implantá-lo em uma pasta de destino e ativá-lo para torná-lo operacional.

Dica:

Para instâncias do Orchestrator assinadas por uma Autoridade de Certificação privada (como o UiPath Automation Suite), ambos deploy e deploy-activate também aceitam parâmetros --ca-cert e --pinnedpubkey . Consulte Confiança em certificados personalizados para cenários e exemplos.

Fluxo de trabalho da implantação

A implantação de uma solução é um processo de duas etapas:

  1. Implantar: crie uma configuração de implantação e associe o pacote a uma pasta de destino.
  2. Ativar: torne a implantação ao vivo e operacional.

Essa separação permite que você prepare as implantações com antecedência e ative-as durante as janelas de manutenção ou após a aprovação manual.

Implantação de uma solução

O comando deploy cria uma implantação de um pacote de solução em um ambiente específico.

Sintaxe de comando

uipcli solution deploy <package-name> [options]
uipcli solution deploy <package-name> [options]
Parâmetros
ParâmetroDescriptionRequired
<package-name>Nome do pacote carregadoSim
-v ou --versionVersão do pacote a ser implantadaSim
-d ou --deploymentNameNome para esta implantaçãoSim
-f ou --deploymentFolderNameNome da pasta de destino no OrchestratorSim
-UURL do OrchestratorSim
-TNome do tenantSim
-ANome da OrganizaçãoSim
-IID do aplicativo externoSim
-SSegredo do aplicativo externoSim
--applicationScopeEscopos opcionais (padrão aplicados)Não
--deploymentParentFolderA pasta do Orchestrator onde a pasta de implantação será criada. Se não for especificado, a pasta de implantação será criada na pasta do tenant. Quando especificado, a implantação estará na respectiva pasta. Quando definido como "exampleuser@org.com 's workspace", a implantação ocorrerá no espaço de trabalho pessoal do usuário especificado.Não
--configPathCaminho local para o arquivo de configuração da solução; necessário em cenários com associações de substituição. Consulte Download de pacotes de soluções e configurações para obter detalhes sobre como obter arquivos de configuração.Não
--traceLevelNível de Registros de LogNão
--ca-certArquivo(s) de CA raiz confiável (PEM, , ou PKCS#7DER) para o certificado TLS do Orchestrator/Identity. Repetir ou separar por vírgula. Consulte Confiança em certificados personalizados.Não
--pinnedpubkeyFixe a chave pública da folha (sha256//<base64>). Consulte Confiança em certificados personalizados.Não
Observação:

Escopos de aplicativos padrão para soluções

Ao usar a autenticação de aplicativos externos sem especificar o parâmetro --applicationScope , a CLI aplica automaticamente esses escopos de soluções padrão:

Solutions.Packages Solutions.Deployments OR.Execution

Importante: todos os três escopos são necessários para todos os comandos de CLI relacionados à solução. Esses escopos são agrupados para fornecer uma cobertura abrangente para todos os comandos de solução disponíveis e devem ser configurados coletivamente em vez de individualmente por comando.

Importante:

Se uma implantação com o mesmo nome já existir em qualquer nível dentro do tenant no Orchestrator, essa operação atualiza a implantação existente em vez de criar uma nova. Se a implantação existente estiver no estado de Falha, a atualização não prosseguirá; resolva ou desinstale a implantação com falha antes de tentar novamente.

Importante:

Soluções implantadas ao nível de tenant não atribuem automaticamente um usuário à pasta resultante. Para atribuir uma conta, certifique-se de que a configuração apropriada esteja definida no Orchestrator (Tenant > Pastas).

Autenticação

Consulte Autenticação e escopos para escopos necessários e Configuração de aplicativos externos.

Exemplo

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

Convenções de nomenclatura de implantação

Escolha nomes de implantação significativos que incluam:

  • Nome da solução
  • Identificador do ambiente
  • Versão ou data
Exemplos
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

Isso facilita o rastreamento e o gerenciamento de implantações entre ambientes.

O que acontece durante a implantação

Quando você executar o comando de implantação:

  1. O pacote é validado em Soluções.
  2. Uma configuração de implantação é criada.
  3. A implantação está associada à pasta de destino.
  4. As associações específicas de ambiente são inicializadas.
  5. A implantação está preparada, mas ainda não está ativa.

A solução não começa a executar processos até que você a ative.

Reusing existing resources

By default, deploying a Solution provisions every resource in the target folder. When the target environment already contains a resource you want to reuse, such as a shared connection to an external system, link the Solution's resource to the existing one through the deployment configuration file, then deploy with --configPath.

This is the pipeline equivalent of choosing Customize and linking a resource by hand when you deploy a Solution manually in Orchestrator.

Observação:

Linking a resource that lives in an Orchestrator folder requires the OR.Folders and RCS.FolderAuthorization scopes, and the External Application must be assigned to the folder that holds the existing resource.

Etapas

  1. Download the deployment configuration for the package. See Downloading Solution Packages and Configs.

    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. Open the downloaded configuration file.

  3. Locate the entry for the resource you want to reuse.

  4. Add a linkToResource block that points the entry at the existing Orchestrator resource by name and folder. For a connection resource, the entry looks like this:

    {
      "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"
      }
    }
    

    The linkToResource object points the Solution's resource at the existing one; the fields under configuration vary by resource type.

  5. Deploy the Solution, passing the edited configuration with --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"
    

The deployment reuses the linked resource instead of creating a new one in the target folder.

Connection authentication

For connection resources, linking an existing connection is one option among several. The authenticationType field in the configuration file accepts two values: ConfigurableByUsers and AuthenticateAfterDeployment.

Set authenticationType to ConfigurableByUsers to leave the connection unbound and defer its selection to execution time. Users select and authenticate the connection when the automation runs, which is also a valid configuration for activation.

With AuthenticateAfterDeployment, the connection must be authenticated after the deployment completes. If it is not authenticated by the time activation runs, the activation is reported as failed.

Ativando uma implantação

O comando deploy-activate torna uma implantação ativa e operacional.

Sintaxe de comando

uipcli solution deploy-activate <deployment-name> [options]
uipcli solution deploy-activate <deployment-name> [options]
Parâmetros
ParâmetroDescriptionRequired
<deployment-name>Nome da implantação a ser ativadaSim
-UURL do OrchestratorSim
-TNome do tenantSim
-ANome da OrganizaçãoSim
-IID do aplicativo externoSim
-SSegredo do aplicativo externoSim
--applicationScopeEscopos exigidosSim
--traceLevelNível de Registros de LogNão
--ca-certArquivo(s) de CA raiz confiável (PEM, , ou PKCS#7DER) para o certificado TLS do Orchestrator/Identity. Repetir ou separar por vírgula. Consulte Confiança em certificados personalizados.Não
--pinnedpubkeyFixe a chave pública da folha (sha256//<base64>). Consulte Confiança em certificados personalizados.Não

Autenticação

Consulte Autenticação e escopos para escopos necessários e Configuração de aplicativos externos.

Exemplo

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

O que acontece durante a ativação

Quando você ativa uma implantação:

  1. A implantação se torna a versão ativa na pasta de destino.
  2. Os gatilhos são ativados.
  3. Qualquer implantação ativa anteriormente na mesma pasta será desativada.

Integração do pipeline de CI/CD

Conclua o fluxo de trabalho da implantação

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"

Implantações fechadas com aprovação manual

Você pode separar e ativar as etapas para implementar fluxos de trabalho de aprovação:

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

Promoção de vários ambientes

Implante a mesma versão em vários ambientes sequencialmente:

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

Estratégia de reversão

Para reverter para uma versão anterior:

  1. Implante a versão anterior com um novo nome de implantação.
  2. Ative a implantação da versão anterior.
  3. Opcionalmente, desinstale a implantação mais recente.
# 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óximas Etapas

Após implantar e ativar as Soluções, você poderá:

  1. Monitore a execução no Orchestrator.
  2. Desinstale as implantações quando não forem mais necessárias.
  3. Implante novas versões seguindo o mesmo fluxo de trabalho.

Esta página foi útil?

Conectar

Precisa de ajuda? Suporte

Quer aprender? Academia UiPath

Tem perguntas? Fórum do UiPath

Fique por dentro das novidades