UiPath Documentation
uipath-cli
latest
false
Guia do usuário da UiPath CLI
Importante :
Este conteúdo foi traduzido com auxílio de tradução automática. A localização de um conteúdo recém-publicado pode levar de 1 a 2 semanas para ficar disponível.

Seu primeiro pipeline

Empacote, publique e implante uma solução da UiPath no Orchestrator de ponta a ponta usando a ferramenta "uip solution".

Esta página mostra como pegar uma solução da UiPath em disco e enviá-la ao Orchestrator de ponta a ponta: empacotá -la localmente, publicá- la no feed de soluções do seu tenant e implantá- la em uma pasta. Ele usa a solution , que funciona da mesma forma a partir de um laptop de desenvolvedor e de um pipeline de CI.

O que você precisa​

  • UiPath CLI instalado e uma sessão conectada. Consulte Instalação do UiPath CLI e Autenticação.
  • Uma Solução da UiPath no disco. uip solution pack aceita qualquer uma de duas formas (correspondendo ao próprio solution pack --help da CLI):
    • um diretório de solução contendo um descritor de solução .uipx (o caso comum — o que o Studio grava e o que uip solution init cria), ou
    • um arquivo.uis independente (um artefato da Solução pré-empacotado).
  • Um caminho de pasta do Orchestrator onde você deseja que a Solução seja implantada (por exemplo, Shared/MySolutionFolder).

O fluxo​

Três comandos, cada um uma etapa separada, para que você possa executá-los de forma independente em um pipeline de CI:

  1. uip solution pack produza um pacote .zip com versão do diretório da solução.
  2. uip solution publish — carregue o .zip para o feed de solução do tenant.
  3. uip solution deploy run crie uma pasta e implante o pacote publicado no Orchestrator.

Etapa 1. Empacotar a solução​

uip solution pack ./my-solution ./dist \
  --name my-solution \
  --version 1.0.0
uip solution pack ./my-solution ./dist \
  --name my-solution \
  --version 1.0.0

Argumentos:

  • O primeiro argumento posicional é o diretório da solução (ou um arquivo .uis ).
  • O segundo é o diretório de saída. uip o cria se estiver ausente.

Sinalizadores:

  • --name o nome do pacote (padrão: o nome do diretório da solução).
  • define a versão do pacote ( 1.0.0 --version . Use o controle de versão semântico para legibilidade e para permitir que o Orchestrator classifique as versões corretamente.

Em caso de sucesso, ./dist/my-solution_1.0.0.zip é escrito. A resposta JSON retorna Data.Package (formatado name@version como) e Data.Packages (o(s) .zip caminho(s) escrito(s)). O caminho .zip em si segue a convenção {outputDir}/{name}_{version}.zip, para que os pipelines possam construí-lo sem analisar JSON:

NAME=my-solution
VERSION=1.0.0
uip solution pack ./my-solution ./dist --name "$NAME" --version "$VERSION"
PACKAGE="./dist/${NAME}_${VERSION}.zip"
NAME=my-solution
VERSION=1.0.0
uip solution pack ./my-solution ./dist --name "$NAME" --version "$VERSION"
PACKAGE="./dist/${NAME}_${VERSION}.zip"

Etapa 2. Publique no tenant​

uip solution publish ./dist/my-solution_1.0.0.zip
uip solution publish ./dist/my-solution_1.0.0.zip

O pacote é carregado no feed de solução do tenant. O Orchestrator atribui um PackageVersionKey — a identidade desta versão específica no tenant. publish é idempotent por (name, version) — reexecutá-lo com a mesma versão retorna a versão existente em vez de duplicar.

Dica:

Se você estiver executando em um tenant específico de uma organização com vários tenants, use --feed <name-or-key> ou --personal-workspace em publish para direcionar um feed específico dentro do tenant. pack só se comunica com um tenant ao resolver dependências do NuGet a partir de um feed. Em caso de dúvida, uip login status mostra o tenant ao qual a CLI está atualmente associada; alterne-o com uip login tenant set <tenant>.

Etapa 3. Implantar no Orchestrator​

uip solution deploy run \
  --name MyFirstDeployment \
  --package-name my-solution \
  --package-version 1.0.0 \
  --folder-name MySolutionFolder \
  --parent-folder-path Shared
uip solution deploy run \
  --name MyFirstDeployment \
  --package-name my-solution \
  --package-version 1.0.0 \
  --folder-name MySolutionFolder \
  --parent-folder-path Shared

Sinalizadores (obrigatório a menos que indicado):

  • --name o nome da implantação (não o nome do pacote). Use algo significativo; isso identifica a implantação para futuras chamadas deploy status / deploy activate .
  • --package-name, --package-version — corresponda ao que você publicou na Etapa 2.
  • --folder-name a pasta do Orchestrator a ser criada para essa implantação.
  • --parent-folder-path o caminho da pasta pai. Shared é a raiz do tenant.
  • --parent-folder-key o GUID da pasta pai; use isso em vez de --parent-folder-path se você preferir vincular por ID.

deploy run pesquisa o Orchestrator até que a implantação atinja um estado terminal (tempo limite de pesquisa padrão 360 segundos, configurável com --timeout). A resposta carrega o caminho da nova pasta e a chave de implantação.

Observação:

--name e --folder-name são duas coisas diferentes. --name nomeia o registro de implantação; --folder-name nomeia a nova pasta do Orchestrator que a implantação cria. Escolher o mesmo valor para ambos é bom e comum.

Combinando no CI​

#!/usr/bin/env bash
set -euo pipefail

uip login \
  --client-id env.UIPATH_CLIENT_ID \
  --client-secret env.UIPATH_CLIENT_SECRET \
  --tenant "$UIPATH_TENANT"

uip solution pack ./my-solution ./dist --version "$BUILD_VERSION"
uip solution publish "./dist/my-solution_$BUILD_VERSION.zip"
uip solution deploy run \
  --name "my-solution-$GIT_SHA" \
  --package-name my-solution \
  --package-version "$BUILD_VERSION" \
  --folder-name MySolutionFolder \
  --parent-folder-path Shared
#!/usr/bin/env bash
set -euo pipefail

uip login \
  --client-id env.UIPATH_CLIENT_ID \
  --client-secret env.UIPATH_CLIENT_SECRET \
  --tenant "$UIPATH_TENANT"

uip solution pack ./my-solution ./dist --version "$BUILD_VERSION"
uip solution publish "./dist/my-solution_$BUILD_VERSION.zip"
uip solution deploy run \
  --name "my-solution-$GIT_SHA" \
  --package-name my-solution \
  --package-version "$BUILD_VERSION" \
  --folder-name MySolutionFolder \
  --parent-folder-path Shared

O script sai no primeiro status diferente de zero, então uma falha em qualquer etapa anula a compilação. uip retorna 0 em caso de sucesso e 1 em caso de falha; comandos com semântica específica do domínio (por exemplo, uip tm wait, que reutiliza 2 para tempo limite) podem retornar outros códigos — consulte Códigos de saída.

Após a implantação​

Com a Solução implantada, o Orchestrator tem uma pasta (Shared/MySolutionFolder), um processo por projeto implantável na Solução e todos os recursos associados (ativos, filas, gatilhos). Agora você pode:

# confirm the folder exists
uip or folders list --all --path "Shared/MySolutionFolder"

# find the processes that were created
uip or processes list --folder-path "Shared/MySolutionFolder"

# start a job
uip or jobs start <process-key>

# inspect the deployment
uip solution deploy status <pipeline-deployment-id>
# confirm the folder exists
uip or folders list --all --path "Shared/MySolutionFolder"

# find the processes that were created
uip or processes list --folder-path "Shared/MySolutionFolder"

# start a job
uip or jobs start <process-key>

# inspect the deployment
uip solution deploy status <pipeline-deployment-id>

E um único projeto do Studio?​

Para um único projeto do Studio (um diretório com project.json — não uma solução), o pipeline clássico é pack a .nupkg → upload to a feed → create a process. Esse fluxo usa comandos das ferramentas rpa e or :

uip rpa pack ./MyStudioProject ./dist
uip or packages upload ./dist/MyStudioProject.1.0.0.nupkg
uip or processes create \
  --name MyProcess \
  --package-key MyStudioProject \
  --package-version 1.0.0 \
  --folder-path Shared
uip rpa pack ./MyStudioProject ./dist
uip or packages upload ./dist/MyStudioProject.1.0.0.nupkg
uip or processes create \
  --name MyProcess \
  --package-key MyStudioProject \
  --package-version 1.0.0 \
  --folder-path Shared

Consulte uip rpa e as referências dos pacotes e processos do Orchestrator para obter listas completas de sinalizadores.

Próximas Etapas​

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