UiPath Documentation
uipath-cli
latest
false
Importante :
Este contenido se ha traducido mediante traducción automática. La localización de contenidos recién publicados puede tardar entre una y dos semanas en estar disponible.

Guía del usuario de UiPath CLI

Su primer proceso

Esta página muestra cómo tomar una solución de UiPath en el disco y enviarla a Orchestrator de principio a fin: empaquetarla localmente, publicarla en la fuente de soluciones de tu tenant e implementarla en una carpeta. Utiliza la herramienta solution , que funciona igual desde un portátil de desarrollador y desde un proceso de CI.

Lo que necesitas

  • UiPath CLI instalado y una sesión iniciada. Consulta Instalar UiPath CLI y autenticación.
  • Una solución de UiPath en disco. uip solution pack acepta cualquiera de las dos formas (que coincide con la propia solution pack --help de CLI):
    • un directorio de soluciones que contiene un descriptor de soluciones .uipx (el caso común: lo que escribe Studio y lo que crea uip solution new ), o
    • un archivo.uis independiente (un artefacto de solución preempaquetado).
  • Una ruta de carpeta de Orchestrator donde quieres implementar la solución (por ejemplo, Shared/MySolutionFolder).

El flujo

Tres comandos, cada uno un paso independiente para que puedas ejecutarlos de forma independiente en un proceso de CI:

  1. uip solution pack — produce un paquete .zip versionado desde el directorio de la solución.
  2. uip solution publish : carga .zip a la fuente de soluciones del tenant.
  3. uip solution deploy run — crea una carpeta e implementa el paquete publicado en Orchestrator.

Paso 1. Empaquetar la solución

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:

  • El primer argumento posicional es el directorio de la solución (o un archivo .uis ).
  • El segundo es el directorio de salida. uip lo crea si falta.

Marcadores:

  • --name anula el nombre del paquete (predeterminado: el nombre del directorio de la solución).
  • --version establece la versión del paquete (predeterminado: 1.0.0). Utiliza el control de versiones semántico para mejorar la legibilidad y permitir que Orchestrator ordene las versiones correctamente.

En caso de éxito, se escribe ./dist/my-solution.1.0.0.zip . La respuesta JSON devuelve Data.Package (en formato name@version) y Data.Packages (los nombres de archivo .nupkg internos). La ruta .zip en sí sigue la convención {outputDir}/{name}.{version}.zip, por lo que los procesos pueden construirla sin analizar 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"

Paso 2. Publicar en el tenant

uip solution publish ./dist/my-solution.1.0.0.zip
uip solution publish ./dist/my-solution.1.0.0.zip

El paquete se carga en la fuente de soluciones del tenant. Orchestrator asigna un PackageVersionKey : la identidad de esta versión específica en el tenant. publish es idempotente por (name, version) : volver a ejecutarlo con la misma versión devuelve la versión existente en lugar de duplicarla.

Consejo:

Si se ejecuta en un tenant específico de una organización multi tenant, pasa --tenant <tenant-name> a publish, pack es independiente del tenant. En caso de duda, uip login status muestra el tenant al que está vinculado CLI actualmente.

Paso 3. Implementar en Orchestrator

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

Marcadores (obligatorios a menos que se indique lo contrario):

  • --name : el nombre de la implementación (no el nombre del paquete). Usa algo significativo; esto identifica la implementación para futuras llamadas deploy status / deploy activate .
  • --package-name, --package-version : coincide con lo que publicaste en el paso 2.
  • --folder-name : la carpeta de Orchestrator que se creará para esta implementación.
  • --folder-path : la ruta de la carpeta principal. Shared es la raíz del tenant.
  • --folder-key : el GUID de la carpeta principal; utilízalo en lugar de --folder-path si prefieres vincular por ID.

deploy run sondea Orchestrator hasta que la implementación alcanza un estado terminal (tiempo de espera de sondeo predeterminado 360 segundos, ajustable con --timeout). La respuesta incluye la ruta de la nueva carpeta y la clave de implementación.

Nota:

--name y --folder-name son dos cosas diferentes. --name nombra el registro de implementación; --folder-name nombra la nueva carpeta de Orchestrator que crea la implementación. Elegir el mismo valor para ambos está bien y es común.

Reuniéndolos en 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 \
  --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 \
  --folder-path Shared

El script sale en el primer estado distinto de cero, por lo que un fallo en cualquier paso aborta la compilación. uip devuelve 0 en caso de éxito y 1 en caso de error; los comandos con semántica específica del dominio (por ejemplo, uip tm wait, que reutiliza 2 para el tiempo de espera) pueden devolver otros códigos; consulta Códigos de salida.

Después de la implementación

Con la solución implementada, Orchestrator tiene una carpeta (Shared/MySolutionFolder), un proceso por proyecto implementable en la solución y todos los recursos asociados (activos, colas, desencadenadores). Ahora puedes:

# 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 --deployment-key <deployment-key>
# 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 --deployment-key <deployment-key>

¿Qué pasa con un solo proyecto de Studio?

Para un solo proyecto de Studio (un directorio con project.json , no una solución), el proceso clásico es pack a .nupkgupload to a feedcreate a process. Ese flujo utiliza comandos de las herramientas rpa y 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

Consulta uip rpa y las referencias de paquetes y procesos de Orchestrator para obtener listas de marcadores completas.

Próximos pasos

¿Te ha resultado útil esta página?

Conectar

¿Necesita ayuda? Soporte

¿Quiere aprender? UiPath Academy

¿Tiene alguna pregunta? Foro de UiPath

Manténgase actualizado