- Überblick
- UiPath-CLI
- Über UiPath-CLI
- Herunterladen der UiPath-CLI
- Kompatibilitätsmatrix
- Ausführen der UiPath-CLI
- Verwalten von NuGet-Feeds
- Test Manager-Support
- Packen von Projekten in ein Paket
- Signieren von Projektpaketen
- Analysieren eines Projekts
- Bereitstellen eines Pakets im Orchestrator
- Ausführen eines Auftrags im Orchestrator
- Testen eines Pakets oder Ausführen eines Testsatzes
- Testen mehrerer Pakete
- Bereitstellen von Assets im Orchestrator
- Löschen von Assets aus dem Orchestrator
- Ausführen von Aufgaben mithilfe der JSON-Konfiguration
- Wiederherstellen von Automatisierungsabhängigkeiten
- Überblick
- Wiederherstellen und Analysieren von Lösungen
- Eine Lösung wird gepackt
- Signieren von Lösungspaketen
- Hochladen und Löschen von Lösungspaketen
- Herunterladen von Lösungspaketen und Konfigurationen
- Bereitstellen und Aktivieren von Lösungen
- Deinstallieren von Bereitstellungen
- Authentifizierung und Scopes
- Fehlerbehebung bei der UiPath-CLI
- Azure DevOps-Erweiterung
- Jenkins-Plugin

Benutzerhandbuch zu CI/CD-Integrationen
Packen einer Lösung
Der Befehl pack erstellt ein bereitstellbares Lösungspaket (.zip -Archiv), das in Lösungen im Orchestrator hochgeladen werden kann.
Befehlssyntax
uipcli solution pack <solution-path> [options]
uipcli solution pack <solution-path> [options]
Parameter:
| Parameter | Beschreibung | Erforderlich |
|---|---|---|
<solution-path> (pos. 0) | Pfad zum Lösungsordner oder zur Datei .uipx | Ja |
--output | Verzeichnis, in dem das Paket erstellt wird | Ja |
--version | Versionsnummer im Format x.y.z | Ja |
-A, --libraryOrchestratorAccountForApp (*) | Der Name des Orchestrator CloudRPA-Kontos (Organisationsname). Sie müssen es mit der Anwendungs-ID,dem Anwendungsgeheimnis und dem Anwendungs-Scope für eine externe Anwendung koppeln. Dies ist erforderlich, wenn ein Lösungsprojekt von Bibliotheken aus dem Orchestrator-Feed oder von einem anderen Prozess abhängt, der in Orchestrator bereitgestellt wird. | Nein |
-I ,--libraryOrchestratorApplicationId (*) (Erforderlich, wenn Sie die Authentifizierung einer externen Anwendung verwenden ) | Die ID der externen Anwendung. Sie müssen es mit dem Anwendungskonto, dem Anwendungsgeheimnis und dem Anwendungs-Scope koppeln. Dies ist erforderlich, wenn ein Lösungsprojekt von Bibliotheken aus dem Orchestrator-Feed oder von einem anderen in Orchestrator bereitgestellten Prozess abhängt. | Nein |
-S, --libraryOrchestratorApplicationSecret (*) (Erforderlich, wenn Sie die Authentifizierung einer externen Anwendung verwenden ) | Das Geheimnis externen Anwendung. Sie müssen es mit dem Anwendungskonto, der Anwendungs-ID und dem Anwendungs-Scope koppeln. Dies ist erforderlich, wenn ein Lösungsprojekt von Bibliotheken aus dem Orchestrator-Feed oder von einem anderen in Orchestrator bereitgestellten Prozess abhängt. | Nein |
--libraryOrchestratorApplicationScope (*) (Optional für die Authentifizierung externer Anwendungen) | Die Liste der Anwendungs-Scopes, getrennt durch einzelne Leerzeichen. Sie müssen es mit dem Anwendungskonto, der Anwendungs-ID und dem Anwendungsgeheimnis für eine externe Anwendungen koppeln. Dies ist erforderlich, wenn ein Lösungsprojekt von Bibliotheken aus dem Orchestrator-Feed oder von einem anderen in Orchestrator bereitgestellten Prozess abhängt. | Nein |
--libraryOrchestratorUrl (*) | Die URL der Orchestrator-Instanz. Dies ist erforderlich, wenn ein Lösungsprojekt von Bibliotheken aus dem Orchestrator-Feed oder von einem anderen in Orchestrator bereitgestellten Prozess abhängt. | Nein |
--libraryOrchestratorTenant (*) | Der Mandant der Orchestrator-Instanz. Dies ist erforderlich, wenn ein Lösungsprojekt von Bibliotheken aus dem Orchestrator-Feed oder von einem anderen in Orchestrator bereitgestellten Prozess abhängt. | Nein |
--libraryIdentityUrl(Erforderlich für PaaS- oder MSI- Bereitstellungen) | Die URL Ihres Identitätsservers. | Nein |
--libraryOrchestratorFolder (*) | Der Name des Ziel-Orchestrator-Ordners. Um Unterordner einzugeben, geben Sie sowohl den Namen des übergeordneten Ordners als auch den Namen des Unterordners ein. Zum Beispiel AccountingTeam\TeamJohn. | Nein |
--disableBuiltInNugetFeeds | Deaktivieren Sie integrierte NuGet-Feeds. | Nein |
--repositoryUrl | Die Repository-URL, unter der das Projekt versioniert wird. | Nein |
--repositoryCommit | Der Repository-Commit, aus dem das Projekt erstellt wurde. | Nein |
--repositoryBranch | Die Repository-Verzweigung, aus der das Projekt erstellt wurde. | Nein |
--repositoryType | VCS-System-Repository-Typ. | Nein |
--projectUrl | URL der Automation Hub-Idee. | Nein |
--releaseNotes | Versionshinweise hinzufügen. | Nein |
--author | Der Paketautor. | Nein |
--traceLevel | Zeigt die Ablaufverfolgung der Ereignisse an. | Nein |
Wenn Sie die Authentifizierung einer externen Anwendung verwenden, ohne den Parameter --libraryOrchestratorApplicationScope anzugeben, wendet die CLI automatisch diese standardmäßigen Orchestrator-Scopes an:
Solutions.Packages Solutions.Deployments OR.Execution
Beispiel
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
Dadurch wird eine Paketdatei erstellt wie:
C:\Output\MySolution.1.2.3.zip
C:\Output\MySolution.1.2.3.zip
Beispiel für vollständige Parameter
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
Versionierungsanforderung
Im Gegensatz zu eigenständigen Projekten erhöhen Lösungen ihre Versionsnummer nicht automatisch. Sie müssen explizit eine Version mit dem Parameter --version angeben.
Typische Versionierungsmuster bei CI/CD
Die meisten Teams generieren die Version dynamisch basierend auf Build-Metadaten:
Verwenden der Build-ID:
--version "1.0.$BUILD_ID"
--version "1.0.$BUILD_ID"
Verwenden von Git Commit-SHA:
--version "2.1.${GIT_COMMIT_SHA:0:7}"
--version "2.1.${GIT_COMMIT_SHA:0:7}"
Verwendung semantischer Versionierung mit Datum:
--version "$(date +%Y.%m.$BUILD_NUMBER)"
--version "$(date +%Y.%m.$BUILD_NUMBER)"
Versionsformat
Die Version muss der semantischen Versionierung folgen:
- Format:
MAJOR.MINOR.PATCH - Beispiel:
1.0.0,2.3.45,10.20.1234 - Muss genau drei numerische Komponenten enthalten, die durch Punkte getrennt sind
Pipelineintegration
Azure DevOps-Beispiel
- 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'
Beispiel für GitHub-Aktionen
- 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
Was verpackt wird
Die Packbefehlspakete:
- Alle in der Lösung enthaltenen Projekte
- Abhängigkeiten auf Projektebene
- Lösungsmetadaten und -konfiguration
- Bindungsdefinitionen für umgebungsspezifische Einstellungen
Die resultierende .zip -Datei ist in sich selbst enthalten und kann in den Orchestrator hochgeladen werden.
Verpackung nach der Wiederherstellung
Für beste Ergebnisse führen Sie restore vor pack aus, um sicherzustellen, dass alle Abhängigkeiten aufgelöst werden:
# 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
Speicherort der Paketausgabe
Die verpackte .zip -Datei wird in dem von --output angegebenen Verzeichnis platziert. Wenn das Verzeichnis nicht vorhanden ist, wird es automatisch erstellt.
Typische Ausgabepfade
Azure DevOps:
--output $(Build.ArtifactStagingDirectory)
--output $(Build.ArtifactStagingDirectory)
GitHub-Aktionen:
--output ${{ runner.temp }}/packages
--output ${{ runner.temp }}/packages
Jenkins:
--output ${WORKSPACE}/output
--output ${WORKSPACE}/output
Nächste Schritte
Nach dem Packen können Sie:
- Laden Sie das Paket in die Lösungsverwaltung hoch.
- Speichern Sie es als Build-Artefakt in Ihrer CI/CD-Plattform.
- Version sie in einem Artefakt-Repository (Artifact, Azure Artifacts usw.).
- Befehlssyntax
- Beispiel
- Beispiel für vollständige Parameter
- Versionierungsanforderung
- Typische Versionierungsmuster bei CI/CD
- Versionsformat
- Pipelineintegration
- Azure DevOps-Beispiel
- Beispiel für GitHub-Aktionen
- Was verpackt wird
- Verpackung nach der Wiederherstellung
- Speicherort der Paketausgabe
- Typische Ausgabepfade
- Nächste Schritte