Uipcli documentation and Github Actions

After experiencing some issues with the Azure Integration for setting up a DevOps pipeline using the default Pack task on projects with dependencies to libraries not available from the Official feed I got a tip to use the uipcli tools (avialable here uipath-dev - UiPath.CLI 1.0.7985.19721 | MyGet) . The below command using the uipcli tools worked much better than the Azure integration Pack task:

uipcli.exe package pack “<project_path>\project.json” -o “<output_path>” --libraryOrchestratorUrl --libraryOrchestratorTenant <tenant_name> --libraryOrchestratorUsername --libraryOrchestratorPassword <account_password> --autoVersion --outputType

This got me thinking of more convenient ways of setting up a CI/CD pipeline compared to DevOps, GitHub Actions. I was thinking that using the uipcli tools should be a valid option to use within Github Actions. Does anyone here have any experience with this and would like to share a sample of how to achieve this?

Also, is there any documentation available for packing and deploying projects through the uipcli?

Found a related topic, no solution provided though:

Hi @manderss,

I’ve done some work with this recently. This sample repo has an example you can check out that does a Build/Deploy with the uipcli and GitHub Actions.

Also, is there any documentation available for packing and deploying projects through the uipcli?

Nothing that I’ve found so far, but I’ve found the help command quite useful - especially the examples:

C:\>C:\temp\uipcli_new\lib\net461\uipcli.exe package deploy --help
UiPath Command Line Interface v20.11.0-dev
Copyright (c) 2019-2020 UiPath Inc.

  -e, --environments              The comma-separated list of environments to deploy the package to. If the environment does not belong to the default folder (organization unit) it must be prefixed with the folder name, e.g. AccountingTeam\TestEnvironment
  -h, --entryPointsPath           Define the specific entry points to create or update a process. This is the filePath of the entry point starting from the root of the project. For classic folders only one entry point can be specified, for each environment it will be created or updated a process with the specified entry point.
  -u, --username                  Required. The Orchestrator username used for authentication. Must be used together with the password.
  -p, --password                  Required. The Orchestrator password used for authentication. Must be used together with the username.
  -t, --token                     Required. The Orchestrator OAuth2 refresh token used for authentication. Must be used together with the account name and client id.
  -a, --accountName               Required. The Orchestrator CloudRPA account name. Must be used together with the refresh token and client id.
  -A, --accountForApp             The Orchestrator CloudRPA account name. Must be used together with id, secret and scope(s) for external application.
  -I, --applicationId             Required. The external application id. Must be used together with account, secret and scope(s) for external application.
  -S, --applicationSecret         Required. The external application secret. Must be used together with account, id and scope(s) for external application.
  --applicationScope              Required. The space-separated list of application scopes. Must be used together with account, id and secret for external application.
  -o, --organizationUnit          The Orchestrator folder (organization unit).
  -l, --language                  The orchestrator language.
  -y, --disableTelemetry          Disable telemetry data.
  --traceLevel
  --help                          Display this help screen.
  --version                       Display version information.
  Package(s) Path (pos. 0)        Required. The path to a folder containing packages, or to a package file.
  Orchestrator URL (pos. 1)       Required. The URL of the Orchestrator instance.
  Orchestrator Tenant (pos. 2)    Required. The tenant of the Orchestrator instance.

  package deploy usage: package deploy <packages_path> <orchestrator_url> <orchestrator_tenant> [-u <orchestrator_user> -p <orchestrator_pass>] [-t <auth_token> -a <account_name>] [-A <account_for_app> -I <application_id> -S <application_secret> --applicationScope] [-o <folder_organization_unit>] [-e <environment_list>] [-l <language>]

  Examples:
    package deploy "C:\UiPath\Project 1" "https://uipath-orchestrator.myorg.com" default -u admin -p 123456
    package deploy "C:\UiPath\Project\Package.1.0.6820.22047.nupkg" "https://uipath-orchestrator.myorg.com" default -u admin -p 123456 -o OurOrganization
    package deploy "C:\UiPath\Project\TestsPackage.1.0.6820.22047.nupkg" "https://uipath-orchestrator.myorg.com" default -u admin -p 123456 -e SAPEnvironment,ExcelAutomationEnvironment -l en-US
    package deploy "C:\UiPath\Project\Package.1.0.6820.22047.nupkg" "https://uipath-orchestrator.myorg.com" default -t a7da29a2c93a717110a82 -a myAccount
    package deploy "C:\UiPath\Project\TestsPackage.1.0.6820.22047.nupkg" "https://uipath-orchestrator.myorg.com" default -A myAccountForExternalApp -I myExternalAppId -S myExternalAppSecret --applicationScope "OR.Folders.Read OR.Settings.Read"
    package deploy "C:\UiPath\Project\TestsPackage.1.0.6820.22047.nupkg" "https://uipath-orchestrator.myorg.com" default -u admin -p 123456 -e SAPEnvironment,ExcelAutomationEnvironment -l en-US -h EntryPoint1,EntryPoint2
4 Likes

This is some great stuff! I will definitely keep digging on this. Compared to what I’m currently using from the Azure Integration the only thing I’m missing right now is to run workflow analysis on the projects before/during packing. I’ll keep digging on that. Thank you so much!

Edit: Which I now see can be done with package analyze:

.\uipcli.exe package analyze --help
UiPath Command Line Interface v20.11.0-dev
Copyright (c) 2019-2020 UiPath Inc.

–analyzerTraceLevel Specifies what types of messages to output (Off|Error|Warning|Info|Verbose).
–stopOnRuleViolation Fail the job when any rule is violated.
–treatWarningsAsErrors Treat warnings as errors.
–resultPath The full path to a JSON file where the result json file will be created. Otherwise print it to the standard console.
–ignoredRules (Default: ) A comma-separated list of rules to be ignored by the analysis procedure.
–orchestratorUsername (Optional, useful only for additional package feeds) The Orchestrator username used for authentication. Must be used together with the password.
–orchestratorPassword (Optional, useful only for additional package feeds) The Orchestrator password used for authentication. Must be used together with the username.
–orchestratorAuthToken (Optional, useful only for additional package feeds) The Orchestrator OAuth2 refresh token used for authentication. Must be used together with the account name and client id.
–orchestratorAccountName (Optional, useful only for additional package feeds) The Orchestrator CloudRPA account name. Must be used together with the refresh token and client id.
–orchestratorAccountForApp (Optional, useful only for additional package feeds) The Orchestrator CloudRPA account name. Must be used together with id, secret and scope(s) for external application.
–orchestratorApplicationId (Optional, useful only for additional package feeds) The external application id. Must be used together with account, secret and scope(s) for external application.
–orchestratorApplicationSecret (Optional, useful only for additional package feeds) The external application secret. Must be used together with account, id and scope(s) for external application.
–orchestratorApplicationScope (Optional, useful only for additional package feeds) The space-separated list of application scopes. Must be used together with account, id and secret for external application.
–orchestratorFolder (Optional, useful only for additional package feeds) The Orchestrator folder (organization unit).
–orchestratorUrl (Optional, useful only for additional package feeds) The Orchestrator URL.
–orchestratorTenant (Optional, useful only for additional package feeds) The Orchestrator tenant.
–help Display this help screen.
–version Display version information.
Project(s) Path (pos. 0) Required. Path to a project.json file or a folder containing project.json files.

package analyze usage: package analyze <project_path> [–analyzerTraceLevel <analyzer_trace_level>] [–stopOnRuleViolation] [–treatWarningsAsErrors] [–saveOutputToFile] [–ignoredRules <activity_1_id,activity_2_id,activity_3_id,activity_4_id>] [–orchestratorUrl <orchestrator_url> --orchestratorTenant <orchestrator_tenant>] [–orchestratorUsername <orchestrator_user> --orchestratorPassword <orchestrator_pass>] [–orchestratorAuthToken <auth_token> --orchestratorAccountName <account_name>] [–orchestratorFolder ]

Examples:

package analyze “C:\UiPath\Project\project.json”
package analyze “C:\UiPath\Project\project.json” --analyzerTraceLevel “Error”
package analyze “C:\UiPath\Project\project.json” --analyzerTraceLevel “Error” --stopOnRuleViolation
package analyze “C:\UiPath\Project\project.json” --analyzerTraceLevel “Error” --stopOnRuleViolation --treatWarningsAsErrors
package analyze “C:\UiPath\Project\project.json” --analyzerTraceLevel “Error” --stopOnRuleViolation --treatWarningsAsErrors --resultPath “C:\UiPath\Project\output.json”
package analyze “C:\UiPath\Project\project.json” --analyzerTraceLevel “Error” --stopOnRuleViolation --treatWarningsAsErrors --resultPath “C:\UiPath\Project\output.json” --ignoredRules “ST-NMG-009,ST-DBP-020,UI-USG-011,ST-DBP-020”
package analyze “C:\UiPath\Project\project.json” --analyzerTraceLevel “Error” --stopOnRuleViolation --treatWarningsAsErrors --resultPath “C:\UiPath\Project\output.json” --ignoredRules “ST-NMG-009,ST-DBP-020,UI-USG-011,ST-DBP-020” --orchestratorUrl “https://orchestratorurl.com” --orchestratorTenant “default” --orchestratorUsername “username” --orchestratorPassword “_ye5zG9(x” --orchestratorAuthToken “AuthToken” --orchestratorAccountName “AccountName” --orchestratorFolder “OrchestratorFolder”

1 Like

This topic was automatically closed 3 days after the last reply. New replies are no longer allowed.