AskUIDocs
AgentOSDeployment

CI pipeline examples

Ready-to-use pipeline configurations for running AskUI tests in GitHub Actions, GitLab CI, and Azure DevOps.

Coming soon

CI execution needs the AskUI CLI, which is not publicly available yet. This page describes the setup you will use once it ships, so you can plan for it.

These examples show how to run askui run in the most common CI environments. All examples assume:

  • The AskUI Desktop installer has been run on the CI machine (or a self-hosted runner with AskUI installed), since the CLI ships with the Desktop installer.
  • ASKUI_WORKSPACE_ID and ASKUI_TOKEN are stored as CI secrets.
  • Your test project is checked into the repository.

AgentOS on Windows CI runners

Desktop automation on Windows requires AgentOS running as a service. Install it via the AskUI Desktop installer on your runner before running the pipeline. See CI/CD integration for setup details.

GitHub Actions

# .github/workflows/askui.yml
name: AskUI Tests

on:
  push:
    branches: [main]
  pull_request:

jobs:
  test:
    runs-on: windows-latest  # or macos-latest for macOS desktop / web

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

      - name: Run AskUI tests
        env:
          ASKUI_WORKSPACE_ID: ${{ secrets.ASKUI_WORKSPACE_ID }}
          ASKUI_TOKEN: ${{ secrets.ASKUI_TOKEN }}
        run: askui run

      - name: Upload run reports
        if: always()
        uses: actions/upload-artifact@v4
        with:
          name: askui-reports
          path: agent_workspace/

GitLab CI

# .gitlab-ci.yml
askui-tests:
  stage: test
  tags:
    - windows  # use a self-hosted runner with AskUI installed
  variables:
    ASKUI_WORKSPACE_ID: $ASKUI_WORKSPACE_ID
    ASKUI_TOKEN: $ASKUI_TOKEN
  script:
    - askui run
  artifacts:
    when: always
    paths:
      - agent_workspace/
    expire_in: 7 days

Azure DevOps

# azure-pipelines.yml
trigger:
  - main

pool:
  vmImage: windows-latest  # or a self-hosted agent with AskUI installed

steps:
  - checkout: self

  - script: askui run
    displayName: Run AskUI tests
    env:
      ASKUI_WORKSPACE_ID: $(ASKUI_WORKSPACE_ID)
      ASKUI_TOKEN: $(ASKUI_TOKEN)

  - task: PublishBuildArtifacts@1
    condition: always()
    inputs:
      pathToPublish: agent_workspace/
      artifactName: askui-reports

Connecting to a remote AgentOS

If your CI runner is not the machine being automated (e.g. a Linux runner automating a separate Windows VM), disable AgentOS autostart and point the CLI at the remote instance:

export ASKUI_CONTROLLER_CLIENT_SERVER_AUTOSTART=false
export ASKUI_CONTROLLER_CLIENT_SERVER_ADDRESS=<vm-ip>:26000
askui run

See Remote Windows VM for the full setup.

Storing credentials

Never hardcode ASKUI_WORKSPACE_ID or ASKUI_TOKEN in your pipeline files. Use your CI platform's secret store:

PlatformWhere to add secrets
GitHub ActionsRepository Settings → Secrets and variables → Actions
GitLab CISettings → CI/CD → Variables
Azure DevOpsPipeline → Edit → Variables

Create a dedicated access token per pipeline so you can rotate or revoke individual pipelines without affecting others. See Workspaces.

On this page