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:
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?
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
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.