- Visão geral
- UiPath CLI
- Sobre o UiPath CLI
- Baixando o UiPath CLI
- Matriz de compatibilidade
- Executando o UiPath CLI
- Gerenciando feeds do NuGet
- 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
- 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

Guia do usuário de integrações de CI/CD
Empacotando uma solução
O comando pack cria um pacote de solução implantável (arquivo .zip ) que pode ser carregado para Soluções no Orchestrator.
Sintaxe de comando
uipcli solution pack <solution-path> [options]
uipcli solution pack <solution-path> [options]
Parâmetros:
| Parâmetro | Description | Required |
|---|---|---|
<solution-path> (pos. 0) | Caminho para a pasta Solution ou o arquivo .uipx | Sim |
--output | Diretório onde o pacote será criado | Sim |
--version | Número da versão no formato x.y.z | Sim |
-A, --libraryOrchestratorAccountForApp (*) | O nome da conta do Orchestrator CloudRPA (nome da organização). Você deve combiná-lo com a ID do aplicativo,Segredo do aplicativo e Escopo do aplicativo para um aplicativo externo Isso é necessário se qualquer projeto de Solução depender de bibliotecas do feed do Orchestrator ou de outro processo implantado no Orchestrator. | Não |
-I ,--libraryOrchestratorApplicationId (*) (Necessário se você usar autenticação de aplicativo externo) | A ID do aplicativo externo. Você deve combiná-lo com a Conta do aplicativo, Segredo do aplicativo e Escopo do aplicativo. Isso é necessário se qualquer projeto de solução depender de bibliotecas do feed do Orchestrator ou de outro processo implantado no Orchestrator. | Não |
-S, --libraryOrchestratorApplicationSecret (*) (Necessário se você usar autenticação de aplicativo externo) | O Segredo do aplicativo externo. Você deve combiná-lo com a Conta do aplicativo, ID do aplicativo e Escopo de aplicativo. Isso é necessário se qualquer projeto de solução depender de bibliotecas do feed do Orchestrator ou de outro processo implantado no Orchestrator. | Não |
--libraryOrchestratorApplicationScope (*) (Opcional para autenticação de aplicativos externos) | A lista de escopos do aplicativo, separada por espaços únicos. Você deve combiná-lo com a Conta do aplicativo, ID do aplicativo e Segredo do aplicativo para um aplicativo externo. Isso é necessário se qualquer projeto de solução depender de bibliotecas do feed do Orchestrator ou de outro processo implantado no Orchestrator. | Não |
--libraryOrchestratorUrl (*) | O URL da instância do Orchestrator. Isso é necessário se qualquer projeto de solução depender de bibliotecas do feed do Orchestrator ou de outro processo implantado no Orchestrator. | Não |
--libraryOrchestratorTenant (*) | O tenant da instância do Orchestrator. Isso é necessário se qualquer projeto de solução depender de bibliotecas do feed do Orchestrator ou de outro processo implantado no Orchestrator. | Não |
--libraryIdentityUrl(Necessário para implantações PaaS ou MSI ) | A URL do seu servidor de identidade. | Não |
--libraryOrchestratorFolder (*) | O nome da pasta de destino do Orchestrator. Para inserir subpastas, certifique-se de inserir o nome da pasta pai e o nome da subpasta. Por exemplo, use AccountingTeam\TeamJohn. | Não |
--disableBuiltInNugetFeeds | Desabilite os feeds de nuget integrados. | Não |
--repositoryUrl | A URL do repositório onde o projeto é versionado. | Não |
--repositoryCommit | A confirmação do repositório de onde o projeto foi criado. | Não |
--repositoryBranch | A ramificação do repositório de onde o projeto foi criado. | Não |
--repositoryType | Tipo de repositório do sistema VCS. | Não |
--projectUrl | URL da ideia do Automation Hub. | Não |
--releaseNotes | Adicione notas da versão. | Não |
--author | O autor do pacote. | Não |
--traceLevel | Exibir o rastreamento dos eventos. | Não |
Ao usar a autenticação de aplicativos externos sem especificar o parâmetro --libraryOrchestratorApplicationScope , a CLI aplica automaticamente esses escopos do Orchestrator padrão:
Solutions.Packages Solutions.Deployments OR.Execution
Exemplo
uipcli solution pack C:\Solutions\MySolution \
--output C:\Output \
--version 1.2.3 \
--traceLevel Verbose
uipcli solution pack C:\Solutions\MySolution \
--output C:\Output \
--version 1.2.3 \
--traceLevel Verbose
Isso cria um arquivo de pacote como:
C:\Output\MySolution.1.2.3.zip
C:\Output\MySolution.1.2.3.zip
Exemplo de parâmetro completo
uipcli solution pack C:\Solutions\MySolution \
--output C:\Output \
--version 1.2.3 \
--libraryOrchestratorAccountForApp MyOrgAccount \
--libraryOrchestratorApplicationId ******* \
--libraryOrchestratorApplicationSecret ******* \
--libraryOrchestratorApplicationScope "OR.Assets OR.Folders OR.Projects" \
--libraryOrchestratorUrl https://cloud.uipath.com/myOrgName/myTenantName \
--libraryOrchestratorTenant myTenantName \
--libraryIdentityUrl https://identity.uipath.com \
--libraryOrchestratorFolder "AccountingTeam\TeamJohn" \
--disableBuiltInNugetFeeds \
--repositoryUrl https://github.com/my-org/my-repo \
--repositoryCommit 7f3a9c2 \
--repositoryBranch main \
--repositoryType git \
--projectUrl https://automationhub.uipath.com/ideas/1234 \
--releaseNotes "Initial packaged solution version" \
--traceLevel Verbose
--author ExampleAuthor
uipcli solution pack C:\Solutions\MySolution \
--output C:\Output \
--version 1.2.3 \
--libraryOrchestratorAccountForApp MyOrgAccount \
--libraryOrchestratorApplicationId ******* \
--libraryOrchestratorApplicationSecret ******* \
--libraryOrchestratorApplicationScope "OR.Assets OR.Folders OR.Projects" \
--libraryOrchestratorUrl https://cloud.uipath.com/myOrgName/myTenantName \
--libraryOrchestratorTenant myTenantName \
--libraryIdentityUrl https://identity.uipath.com \
--libraryOrchestratorFolder "AccountingTeam\TeamJohn" \
--disableBuiltInNugetFeeds \
--repositoryUrl https://github.com/my-org/my-repo \
--repositoryCommit 7f3a9c2 \
--repositoryBranch main \
--repositoryType git \
--projectUrl https://automationhub.uipath.com/ideas/1234 \
--releaseNotes "Initial packaged solution version" \
--traceLevel Verbose
--author ExampleAuthor
Versionamento de requisito
Ao contrário de projetos independentes, as Soluções não incrementam automaticamente seu número de versão. Você deve fornecer explicitamente uma versão usando o parâmetro --version .
Padrões típicos de controle de versão em CI/CD
A maioria das equipes gera a versão dinamicamente com base nos metadados da compilação:
Usando o ID de compilação:
--version "1.0.$BUILD_ID"
--version "1.0.$BUILD_ID"
Usando o SHA de confirmação do Git:
--version "2.1.${GIT_COMMIT_SHA:0:7}"
--version "2.1.${GIT_COMMIT_SHA:0:7}"
Usando o controle de versão semântico com data:
--version "$(date +%Y.%m.$BUILD_NUMBER)"
--version "$(date +%Y.%m.$BUILD_NUMBER)"
Formato da versão
A versão deve seguir o versionamento semântico:
- Formato:
MAJOR.MINOR.PATCH - Exemplo:
1.0.0,2.3.45,10.20.1234 - Deve conter exatamente três componentes numéricos separados por pontos
Integração de pipeline
Exemplo do Azure DevOps
- script: |
uipcli solution pack $(Build.SourcesDirectory)\MySolution \
--output $(Build.ArtifactStagingDirectory) \
--version "1.0.$(Build.BuildId)" \
--traceLevel Information
displayName: 'Pack Solution'
- script: |
uipcli solution pack $(Build.SourcesDirectory)\MySolution \
--output $(Build.ArtifactStagingDirectory) \
--version "1.0.$(Build.BuildId)" \
--traceLevel Information
displayName: 'Pack Solution'
Exemplo de ações do GitHub
- name: Pack Solution
run: |
uipcli solution pack ${{ github.workspace }}/MySolution \
--output ${{ runner.temp }}/packages \
--version "1.0.${{ github.run_number }}" \
--traceLevel Information
- name: Pack Solution
run: |
uipcli solution pack ${{ github.workspace }}/MySolution \
--output ${{ runner.temp }}/packages \
--version "1.0.${{ github.run_number }}" \
--traceLevel Information
O que é empacotado
Os pacotes de comando pack:
- Todos os projetos incluídos na Solução
- Dependências ao nível do projeto
- Metadados e configuração da solução
- Definições de associação para configurações específicas do ambiente
O arquivo .zip resultante é independente e pronto para ser carregado para o Orchestrator.
Empacotamento após a restauração
Para obter melhores resultados, execute restore antes de pack para garantir que todas as dependências sejam resolvidas:
# 1. Restore dependencies
uipcli solution restore C:\Solutions\MySolution \
--restoreFolder C:\Output\Dependencies \
--traceLevel Information
# 2. Pack with explicit version
uipcli solution pack C:\Solutions\MySolution \
--output C:\Output \
--version 1.2.3 \
--traceLevel Verbose
# 1. Restore dependencies
uipcli solution restore C:\Solutions\MySolution \
--restoreFolder C:\Output\Dependencies \
--traceLevel Information
# 2. Pack with explicit version
uipcli solution pack C:\Solutions\MySolution \
--output C:\Output \
--version 1.2.3 \
--traceLevel Verbose
Local de saída do pacote
O arquivo empacotado .zip é colocado no diretório especificado por --output. Se o diretório não existir, ele será criado automaticamente.
Caminhos de saída típicos
DevOps do Azure:
--output $(Build.ArtifactStagingDirectory)
--output $(Build.ArtifactStagingDirectory)
Ações do GitHub:
--output ${{ runner.temp }}/packages
--output ${{ runner.temp }}/packages
Jenkins:
--output ${WORKSPACE}/output
--output ${WORKSPACE}/output
Próximas Etapas
Após empacotar, você poderá:
- Carregue o pacote para o Gerenciamento de soluções.
- Armazene-o como um artefato de compilação em sua plataforma de CI/CD.
- Versione-o em um repositório de artefatos (Arifactory, Azure Artefatos, etc.).
- Sintaxe de comando
- Exemplo
- Exemplo de parâmetro completo
- Versionamento de requisito
- Padrões típicos de controle de versão em CI/CD
- Formato da versão
- Integração de pipeline
- Exemplo do Azure DevOps
- Exemplo de ações do GitHub
- O que é empacotado
- Empacotamento após a restauração
- Local de saída do pacote
- Caminhos de saída típicos
- Próximas Etapas