Enhancing UiPath Project Deployment through GitLab CI/CD Component

Renjith Ravindranathan
2 min readJan 20, 2025

--

DALL-E Generated

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:

  1. Package your UiPath project
  2. 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

--

--

Renjith Ravindranathan
Renjith Ravindranathan

Written by Renjith Ravindranathan

A DevOps engineer by profession, Dad, Traveler & sometimes, like to tweak around stuff inside memory constrained devices. Currently living in the Netherlands.

No responses yet