- Visão geral
- UiPath CLI
- Sobre o UiPath CLI
- Baixando o UiPath CLI
- Matriz de compatibilidade
- Executando o UiPath CLI
- Gerenciando feeds do NuGet
- Confiança em certificados personalizados
- Suporte do Test Manager
- Empacotando projetos em um pacote
- Assinatura de pacotes de projetos
- Análise de um projeto
- Implantação de um pacote no Orchestrator
- Executando um trabalho dentro do Orchestrator
- Teste de um pacote ou execução de um conjunto de testes
- Teste de vários pacotes
- Formato JSON dos parâmetros de entrada
- Implantação de ativos no Orchestrator
- Exclusão de ativos do Orchestrator
- Executando tarefas usando a configuração JSON
- Restaurando dependências de automação
- Solução de problemas do UiPath CLI
- Extensão do Azure DevOps
- Plug-in do Jenkins
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.
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:
- Implantar: crie uma configuração de implantação e associe o pacote a uma pasta de destino.
- 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âmetro | Description | Required |
|---|---|---|
<package-name> | Nome do pacote carregado | Sim |
-v ou --version | Versão do pacote a ser implantada | Sim |
-d ou --deploymentName | Nome para esta implantação | Sim |
-f ou --deploymentFolderName | Nome da pasta de destino no Orchestrator | Sim |
-U | URL do Orchestrator | Sim |
-T | Nome do tenant | Sim |
-A | Nome da Organização | Sim |
-I | ID do aplicativo externo | Sim |
-S | Segredo do aplicativo externo | Sim |
--applicationScope | Escopos opcionais (padrão aplicados) | Não |
--deploymentParentFolder | A 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 |
--configPath | Caminho 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 |
--traceLevel | Nível de Registros de Log | Não |
--ca-cert | Arquivo(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 |
--pinnedpubkey | Fixe a chave pública da folha (sha256//<base64>). Consulte Confiança em certificados personalizados. | Nã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.
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.
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:
- O pacote é validado em Soluções.
- Uma configuração de implantação é criada.
- A implantação está associada à pasta de destino.
- As associações específicas de ambiente são inicializadas.
- 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.
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
-
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" -
Open the downloaded configuration file.
-
Locate the entry for the resource you want to reuse.
-
Add a
linkToResourceblock 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
linkToResourceobject points the Solution's resource at the existing one; the fields underconfigurationvary by resource type. -
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âmetro | Description | Required |
|---|---|---|
<deployment-name> | Nome da implantação a ser ativada | Sim |
-U | URL do Orchestrator | Sim |
-T | Nome do tenant | Sim |
-A | Nome da Organização | Sim |
-I | ID do aplicativo externo | Sim |
-S | Segredo do aplicativo externo | Sim |
--applicationScope | Escopos exigidos | Sim |
--traceLevel | Nível de Registros de Log | Não |
--ca-cert | Arquivo(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 |
--pinnedpubkey | Fixe 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:
- A implantação se torna a versão ativa na pasta de destino.
- Os gatilhos são ativados.
- 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:
- Implante a versão anterior com um novo nome de implantação.
- Ative a implantação da versão anterior.
- 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á:
- Monitore a execução no Orchestrator.
- Desinstale as implantações quando não forem mais necessárias.
- Implante novas versões seguindo o mesmo fluxo de trabalho.
- Fluxo de trabalho da implantação
- Implantação de uma solução
- Sintaxe de comando
- Autenticação
- Exemplo
- Convenções de nomenclatura de implantação
- O que acontece durante a implantação
- Reusing existing resources
- Etapas
- Connection authentication
- Ativando uma implantação
- Sintaxe de comando
- Autenticação
- Exemplo
- O que acontece durante a ativação
- Integração do pipeline de CI/CD
- Conclua o fluxo de trabalho da implantação
- Implantações fechadas com aprovação manual
- Promoção de vários ambientes
- Estratégia de reversão
- Próximas Etapas