Problem with the full CI/CD flow: UiPath Studio -> Github Actions -> Orchestrator (YAML syntax error)

I’m trying to set up a simple CI/CD pipeline for a UiPath process:

  1. I created a new external app in the cloud (UiPath cloud->admin->my tenant->external applications) with administrative access and added secrets on github (settings->secrets and variables->actions->secrets)
  2. then push changes in UiPath Studio to Github (it’s working)
  3. while pushing UiPath project to Github main branch, yaml file is automatically run and its running forever until I stop it manually
  4. deploy to Orchestrator folder “SpaceName/ExampleFolder” doesn’t work

I think there is someting wrong with my yaml code. Currently I try to use this one:

name: UiPath-CICD-Prod

on:
push:
branches: [ main ]
jobs:
deploy:
runs-on: ubuntu-lastest
steps:
- uses: actions/checkout@v4
- name: UiPath CLI Pack
uses: UiPath/cli@v2
with:
client_id: ${{ secrets.UiPath_CLIENT_ID }}
client_secret: ${{ secrets.UiPath_CLIENT_SECRET }}
account: ${{ secrets.UiPath_ORGANIZATION_NAME }}
tenant: ${{ secrets.ORCH_TENANT }}
url: ${{ secrets.ORCH_URL }}

- name: Pack project
  run: uipath pack .

- name: Deploy to Orchestrator
  run: uipath deploy . --folder "SpaceName/ExampleFolder"

Can you tell me what I’m doing wrong? I’d like the flow to automatically add the project package to the orchestrator after publishing the code on GitHub.

the indentations in the yml code are correct, but when published on the forum they were pasted incorrectly

Hi @Susannna

There was some naming convention and space issue is coming so that’s the reason you saw that error please try this

name: UiPath-CICD-Prod

on:
push:
branches:
- main

jobs:
deploy:
runs-on: ubuntu-latest

steps:
  - name: Checkout code
    uses: actions/checkout@v4

  - name: UiPath CLI Login
    uses: UiPath/cli@v2
    with:
      client_id: ${{ secrets.UIPATH_CLIENT_ID }}
      client_secret: ${{ secrets.UIPATH_CLIENT_SECRET }}
      account: ${{ secrets.UIPATH_ORGANIZATION_NAME }}
      tenant: ${{ secrets.ORCH_TENANT }}
      url: ${{ secrets.ORCH_URL }}

  - name: Pack UiPath project
    run: |
      uipath pack ./ --output ./output

  - name: Deploy package to Orchestrator
    run: |
      uipath deploy ./output/*.nupkg --folder "ExampleFolder"

If this solution works for you please mark as Solved or let me know if u still face issue

Thanks & Happy Automations

Hi @Susannna ,

Got it. If indentation is correct, then the real issues are not YAML formatting. The main problems are that UiPath/cli@v2 only installs the CLI (it does not authenticate), ubuntu-latest must be spelled correctly, and you need an explicit UiPath auth login step before pack/deploy. Also make sure you deploy the generated .nupkg and that the external app has access to the target Orchestrator folder. These are what cause the job to run indefinitely and the deploy to fail.

Hi @Susannna

  • Fix typo: ubuntu-lastest → ubuntu-latest
  • YAML indentation is wrong (GitHub Actions is very strict)
  • Use folder name only, not SpaceName/Folder
  • Pack to an output folder and deploy that package

fix:

runs-on: ubuntu-latest

and deploy like:

UiPath pack . --output ./output
UiPath deploy ./output --folder “ExampleFolder”

After this, the pipeline should publish the package to Orchestrator correctly.