UiPath Documentation
cicd-integrations
2025.10
true
Importante :
Este contenido se ha localizado parcialmente a partir de un sistema de 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 integraciones de CI/CD

Empaquetar una solución

El comando pack crea un paquete de soluciones implementable (archivo .zip ) que puede cargarse en Soluciones en Orchestrator.

Sintaxis del comando

uipcli solution pack <solution-path> [options]
uipcli solution pack <solution-path> [options]

Parámetros

ParámetroDescripciónObligatorio
<solution-path> (pos. 0)Ruta a la carpeta de la solución o al archivo .uipx
--outputDirectorio donde se creará el paquete
--versionNúmero de versión en formato x.y.z
--nugetConfigFilePathRuta al archivo NuGet.Config que contiene las fuentes. La etiqueta <clear /> del archivo especificado se ignorará y solo se tendrán en cuenta las fuentes.No
--disableBuiltInNugetFeedsDeshabilite las fuentes nuget integradas.No
--excludeConfiguredSourcesExcluye las fuentes integradas y las fuentes de NuGet configuradas a nivel de usuario y máquina en el host que ejecuta la CLI. La CLI resuelve los paquetes solo a partir de las fuentes definidas en --nugetConfigFilePath Consulta Gestionar fuentes NuGet.No
-A, --libraryOrchestratorAccountForApp (*)El nombre de la cuenta de Orchestrator CloudRPA (nombre de la organización). Debes emparejarlo con el ID de la aplicación,el Secreto de la aplicación y el Ámbito de la aplicación para la aplicación externa. Esto es necesario si cualquier proyecto de solución depende de bibliotecas de la fuente de Orchestrator o de otro proceso implementado en Orchestrator.No
-I ,--libraryOrchestratorApplicationId (*) (Obligatorio si utilizas la autenticación de aplicación externa)El ID de la aplicación externa. Debes emparejarlo con la Cuenta de la aplicación, el Secreto de la aplicación y el Ámbito de la aplicación. Esto es necesario si cualquier proyecto de solución depende de bibliotecas de la fuente de Orchestrator o de otro proceso implementado en Orchestrator.No
-S, --libraryOrchestratorApplicationSecret (*) (Obligatorio si utilizas la autenticación de aplicación externa)El secreto de la aplicación externa. Debes emparejarlo con la cuenta de la aplicación, el ID de la aplicación y el ámbito de la aplicación. Esto es necesario si cualquier proyecto de solución depende de bibliotecas de la fuente de Orchestrator o de otro proceso implementado en Orchestrator.No
--libraryOrchestratorApplicationScope (*) (Opcional para la autenticación de aplicaciones externas)La lista de ámbitos de aplicación, separados por espacios individuales. Debes emparejarlo con la cuenta de la aplicación, el ID de la aplicación y el secreto de la aplicación para la aplicación externa. Esto es necesario si cualquier proyecto de solución depende de bibliotecas de la fuente de Orchestrator o de otro proceso implementado en Orchestrator.No
--libraryOrchestratorUrl (*)La URL de la instancia de Orchestrator. Esto es necesario si cualquier proyecto de solución depende de bibliotecas de la fuente de Orchestrator o de otro proceso implementado en Orchestrator.No
--libraryOrchestratorTenant (*)El tenant de la instancia de Orchestrator. Esto es necesario si cualquier proyecto de solución depende de bibliotecas de la fuente de Orchestrator o de otro proceso implementado en Orchestrator.No
--libraryIdentityUrlLa URL de tu servidor de identidad. Obligatorio cuando la biblioteca Orchestrator se ejecuta en UiPath Automation Suite o en Orchestrator independiente (MSI local). No es necesario para Automation Cloud : la CLI resuelve el servidor de identidad desde la URL de la nube.No
--libraryOrchestratorFolder (*)El nombre de la carpeta de Orchestrator de destino. Para introducir subcarpetas, asegúrate de introducir tanto el nombre de la carpeta principal como el nombre de la subcarpeta. Por ejemplo, AccountingTeam\TeamJohnusa .No
--repositoryUrlLa URL del repositorio donde se versiona el proyecto.No
--repositoryCommitLa confirmación del repositorio desde la que se creó el proyecto.No
--repositoryBranchLa rama del repositorio desde la que se creó el proyecto.No
--repositoryTypeTipo de repositorio del sistema VCS.No
--projectUrlURL de la idea de Automation Hub.No
--releaseNotesAñadir notas de la versión.No
--authorEl autor del paquete.No
--traceLevelMostrar el seguimiento de los eventos.No
--ca-certArchivo(s) de CA raíz de confianza (PEM, DER o PKCS#7) para el certificado TLS de Orchestrator/Identity de la biblioteca. Repetir o separar por comas. Consulta Confiar en certificados personalizados.No
--pinnedpubkeyAnclar la clave pública hoja (sha256//<base64>). Consulta Confiar en certificados personalizados.No
Consejo:

Para las instancias de biblioteca de Orchestrator firmadas por una autoridad de certificación privada (como UiPath Automation Suite), este comando también acepta los parámetros --ca-cert y --pinnedpubkey . Consulta Confiar en certificados personalizados para escenarios y ejemplos.

Nota:

Al utilizar la autenticación de aplicaciones externas sin especificar el parámetro --libraryOrchestratorApplicationScope , la CLI aplica automáticamente estos ámbitos predeterminados de Orchestrator:

Solutions.Packages Solutions.Deployments OR.Execution

Ejemplo

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

Esto crea un archivo de paquete como:

C:\Output\MySolution.1.2.3.zip
C:\Output\MySolution.1.2.3.zip

Ejemplo 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

Requisito de versión

A diferencia de los proyectos independientes, las soluciones no incrementan automáticamente su número de versión. Debes proporcionar explícitamente una versión utilizando el parámetro --version .

Patrones de versiones típicos en CI/CD

La mayoría de los equipos generan la versión de forma dinámica en función de los metadatos de la compilación:

Usar ID de compilación
--version "1.0.$BUILD_ID"
--version "1.0.$BUILD_ID"
Usar SHA de confirmación de Git
--version "2.1.${GIT_COMMIT_SHA:0:7}"
--version "2.1.${GIT_COMMIT_SHA:0:7}"
Usar versiones semánticas con fecha
--version "$(date +%Y.%m.$BUILD_NUMBER)"
--version "$(date +%Y.%m.$BUILD_NUMBER)"

Formato de versión

La versión debe seguir el control de versiones semántico:

  • Formato: MAJOR.MINOR.PATCH
  • Ejemplo: 1.0.0, 2.3.45, 10.20.1234
  • Debe contener exactamente tres componentes numéricos separados por puntos

Integración de procesos

Ejemplo de 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'

Ejemplo de acciones de 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

Qué se empaqueta

Los paquetes de comandos pack:

  • Todos los proyectos incluidos en la solución
  • Dependencias a nivel de proyecto
  • Metadatos y configuración de la solución
  • Vinculación de definiciones para configuraciones específicas del entorno

El archivo .zip resultante es independiente y está listo para cargarse en Orchestrator.

Empaquetado después de la restauración

Para obtener los mejores resultados, ejecuta restore antes de pack para garantizar que se resuelvan todas las dependencias:

# 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

Ubicación de salida del paquete

El archivo .zip empaquetado se coloca en el directorio especificado por --output. Si el directorio no existe, se creará automáticamente.

Rutas de salida típicas

Azure DevOps
--output $(Build.ArtifactStagingDirectory)
--output $(Build.ArtifactStagingDirectory)
Acciones de GitHub
--output ${{ runner.temp }}/packages
--output ${{ runner.temp }}/packages
Jenkins
--output ${WORKSPACE}/output
--output ${WORKSPACE}/output

Próximos pasos

Después de empacar, puedes:

  1. Carga el paquete en Gestión de soluciones.
  2. Almacénalo como un artefacto de compilación en tu plataforma CI/CD.
  3. Versionarlo en un repositorio de artefactos (Artifactory, Azure Artifacts, etc.).

¿Te ha resultado útil esta página?

Conectar

¿Necesita ayuda? Soporte

¿Quiere aprender? UiPath Academy

¿Tiene alguna pregunta? Foro de UiPath

Manténgase actualizado