Enhancing UiPath Project Deployment through GitLab CI/CD Component
For automation teams within enterprises today, deploying UiPath projects is critically essential. However, I created a helper Gitlab component for UiPath project deployment to streamline the process. It simplifies the packaging, versioning, and deployment of UiPath automation projects using GitLab CI/CD.
Let us look at this article to see how to better the deployment process through the component.
The Challenges in UiPath Project Deployment
Deploying UiPath projects manually involves multiple steps:
- Managing project versions
- Generating
.nupkg
packages - Uploading them to Orchestrator
- Ensuring smooth transitions across environments (Dev, Test, Production)
These steps can be error-prone and time-consuming. Automating this process reduces human intervention and improves reliability.
How to Use the Component
1. Set Up Your GitLab CI/CD Pipeline
Add the following .gitlab-ci.yml
snippet to your UiPath project repository:
include:
- component: gitlab.com/edgeworks-public/uipath-releaser/uipath-releaser@main
inputs:
ORCHESTRATOR_URL: NOTSET
TENANT_NAME: NOTSET
ORG_NAME: NOTSET
CLIENT_ID: NOTSET
CLIENT_SECRET: NOTSET
stages:
- package
- deploy
package_project:
stage: package
image: ghcr.io/edgewerks/uipathcli-legacy-linux:arm64-latest
extends: [.auth_uipath_instance]
script:
- echo "Packaging UiPath project..."
- uipathcli package pack "./AutomationProject\project.json" --traceLevel Information -o "./"
artifacts:
paths:
- package.nupkg
deploy_to_orchestrator:
stage: deploy
image: ghcr.io/edgewerks/uipathcli-legacy-linux:arm64-latest
extends: [.auth_uipath_instance]
needs: [package_project]
script:
- echo "Deploying to UiPath Orchestrator..."
- uipathcli package deploy "./package.nupkg" "$ORCHESTRATOR_URL" "TenantName" -u "$CLIENT_ID" -p "$CLIENT_SECRET" -o "FolderName" --traceLevel Information --entryPointsPath "Main.xaml"
only:
- main
2. Configure Environment Variables
Ensure you define the following GitLab CI/CD variables:
| **Input Name** | **Description** | **Default Value** |
|-----------------------------|--------------------------------------------------------------------------------------|------------------------------------------------|
| ORCHESTRATOR_URL | Enter your Orchestrator URL | `https://cloud.uipath.com/` |
| TENANT_NAME | Enter your Tenant ID | `DefaultTenant` |
| UIPATH_CLI_CONTAINER_IMAGE | The Platform specific CLI container image | `ghcr.io/edgewerks/uipathcli-linux:arm64-latest` |
| PROFILE_NAME | Specify a profile name for the CLI | `Development` |
| ORG_NAME | Enter your Organization Name for the Instance | `Edgeworks` |
| CLIENT_ID | Enter your Client ID from the Credentials. Set the value in the CI/CD variable | `$CLIENT_ID` |
| CLIENT_SECRET | Enter your CLIENT_SECRET from the Credentials. Set the value in the CI/CD variable | `$CLIENT_SECRET` |
3. Trigger Your Pipeline
Once configured, commit your changes and push to GitLab. The pipeline will automatically:
- Package your UiPath project
- Deploy it to UiPath Orchestrator
Conclusion
Automating UiPath project deployment with GitLab CI/CD simplifies workflow management, reduces errors, and increases efficiency. This component eases a part of it. Thanks for reading and feedback is welcome. Until next time.!
References
In case of any queries, please feel free to connect with me via the below social links