- 概述
- 开始使用
- 安装 UiPath CLI
- 第一个命令(快速入门)
- 您的第一个管道
- 概念
- 使用 UiPath CLI
- UiPath for Coding Agents
- 操作指南
- CI/CD 方法
- 命令参考
- 迁移
- 参考与支持
UiPath CLI 用户指南
本页介绍了如何在磁盘上获取 UiPath 解决方案并将其端到端发送到 Orchestrator:在本地打包,将其发布到租户的解决方案订阅源,并将其部署到文件夹中。它使用solution工具,该工具在开发者笔记本电脑和 CI 管道中的工作原理相同。
您需要什么
- 已安装 UiPath CLI 并且会话已登录。请参阅安装 UiPath CLI和身份验证。
- 磁盘上的 UiPath解决方案。
uip solution pack接受以下两种形状中的任何一种(与 CLI 自己的solution pack --help匹配):- 包含
.uipx解决方案描述符(常见情况 — Studio 写入的内容和uip solution new创建的内容)的解决方案目录,或 - 独立的
.uis文件(预捆绑的解决方案工件)。
- 包含
- 要在其中部署解决方案的 Orchestrator 文件夹路径(例如
Shared/MySolutionFolder)。
流程
三个命令,每个命令是单独的步骤,因此您可以在 CI 管道中独立运行它们:
uip solution pack— 从解决方案目录生成有版本控制的.zip包。uip solution publish— 将.zip上传到租户的解决方案订阅源。uip solution deploy run— 创建一个文件夹,并将已发布的包部署到 Orchestrator 中。
步骤 1. 打包解决方案
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
参数:
- 第一个位置参数是解决方案目录(或
.uis文件)。 - 第二个是输出目录。如果缺少,则使用
uip进行创建。
标记:
--name将覆盖包名称(默认值:解决方案目录名称)。--version设置包版本(默认值:1.0.0)。使用语义版本控制以提高可读性,并让 Orchestrator 对版本正确进行排序。
成功后,将写入./dist/my-solution.1.0.0.zip 。JSON 响应返回Data.Package (格式为name@version )和Data.Packages (内部.nupkg文件名)。.zip路径本身遵循{outputDir}/{name}.{version}.zip约定,因此管道可以在不解析 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"
步骤 2. 发布到租户
uip solution publish ./dist/my-solution.1.0.0.zip
uip solution publish ./dist/my-solution.1.0.0.zip
包将上传到租户的解决方案订阅源。Orchestrator 会分配PackageVersionKey — 此特定版本在租户上的身份。publish具有(name, version)等 — 使用相同版本重新运行将返回现有版本,而不是复制内容。
如果要针对多租户组织中的特定租户运行,请将--tenant <tenant-name>传递给publish , pack与租户无关。如有疑问, uip login status显示 CLI 当前绑定的租户。
步骤 3. 部署到 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
标记(除非特别说明,否则为必填项):
--name—部署名称(而非包名称)。使用有意义的内容;该位置用于标识未来deploy status/deploy activate调用的部署。--package-name、--package-version— 与您在第 2 步中发布的内容匹配。--folder-name— 要为此部署创建的 Orchestrator 文件夹。--folder-path— 父文件夹路径。Shared是租户根目录。--folder-key— 父文件夹 GUID;如果您更喜欢按 ID 绑定,请使用此项代替--folder-path。
deploy run轮询 Orchestrator,直到部署达到终止状态(默认轮询超时360秒,可通过--timeout进行调整)。响应包含新文件夹的路径和部署密钥。
--name和--folder-name是两个不同的实体。--name为部署记录命名; --folder-name为部署创建的新 Orchestrator 文件夹命名。为两者选择相同的值是正常现象。
将其放在 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
脚本在第一个非零状态下退出,因此任何步骤中的失败都会中止构建。uip如果成功,则返回0 ;如果失败,则返回1 ;具有域特定语义的命令(例如uip tm wait ,其重用2表示超时)可能返回其他代码 — 请参阅退出代码。
部署后
部署解决方案后,Orchestrator 将拥有一个文件夹 ( Shared/MySolutionFolder )、解决方案中每个可部署项目一个流程,以及所有相关资源(资产、队列、触发器)。您现在可以:
# 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>
如果使用单个 Studio 项目呢?
对于单个 Studio 项目(带有project.json目录,而非解决方案),传统管道为pack a .nupkg → upload to a feed → create a process 。该流程使用rpa和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
后续步骤
- 操作方法:从 CI 部署到 Orchestrator — 每个 CI 平台的变体。
- CI/CD 秘方:Azure DevOps 、 GitHub Actions 、 Jenkins 、 GitLab 。
- UIP 解决方案引用— 每个
solution命令。 - 打包并发布解决方案 (操作方法) — 更深入的介绍,包括版本控制策略和多环境升级。