We are struggling with version control. Developers are manually copying .xaml files from Dev to Test, and things are getting lost. How are you using Git or Azure DevOps to automate the deployment of RPA packages? Is there a way to handle environment-specific variables like API keys without hardcoding them?
3 answers
You absolutely need to integrate with Git. We use the built-in Git integration in UiPath Studio to push to Azure DevOps. We built a CI/CD pipeline that automatically builds the .nupkg file and pushes it to the Orchestrator "Development" folder. For the variables, NEVER hardcode them. We use "Orchestrator Assets." Our code just calls an asset named DB_Connection, and the Orchestrator automatically provides the "Dev" value or "Prod" value depending on which folder the bot is running in. This makes the code truly portable and secure. We also use "Project Dependencies" to ensure every environment is using the same version of the activity packages.
Does your CI/CD pipeline include any automated testing like "Workflow Analyzer" to check for best practices before the code is merged?
We use a simple "Branching Strategy" in Git. Feature branches for devs, and then a merge to 'Main' triggers the release to Production. It keeps things very organized.
I agree with Michelle. A clean Git branch strategy is the backbone of any professional RPA setup. It also makes it much easier to roll back if a new bot version causes issues.
Daniel, yes! We added a step in our Azure pipeline that runs the "UiPath CLI" to perform a Workflow Analysis. If the developer left a Message Box in the code or didn't use proper naming conventions, the build fails. We also run a set of "Mock Tests" against a staging database. It took about a month to set up the scripts, but it has almost entirely eliminated "Package Not Found" errors or "Index Out of Range" exceptions in our Production environment.