For the complete documentation index, see llms.txt. This page is also available as Markdown.

CI integration with GitHub Actions

Start Duku from pull requests, deploys, and scheduled workflows.

Not sure which integration fits? Start here.

Use Duku's GitHub Actions to start explorations from your CI pipeline.

Use preview for short lived pull request previews. Use environment for stable targets like staging or a canary deployment.

Start here

Which action to use

Action
Use it for
Trigger events

preview

Per pull request previews, where each PR gets its own short lived target. Duku resolves the PR's preview deployment URL and explores it.

pull_request as the primary trigger. It also runs on push and workflow_dispatch. On those triggers, it only posts a PR comment when you pass repository and pr-number.

environment

Stable, long lived targets you create once in Viewport, such as staging, a production canary, or a customer specific deploy.

push to a long lived branch, schedule, and workflow_dispatch

Async by design

Both actions are async by design. A Duku exploration commonly takes 5 to 40 minutes.

The workflow starts the exploration and exits within seconds. This keeps your runner free and avoids spending Actions minutes while Duku explores the app.

  1. Create or reference the target.

  2. Resolve the URL to explore.

  3. Start the exploration. The environment action also starts a test-case run.

  4. On a native pull_request event, or on another trigger when you pass repository and pr-number, post one sticky Exploration in progress comment.

  5. Exit.

When the exploration finishes, results appear in Viewport. When comment metadata is present, the same sticky comment is updated in place with run counts and the top unique errors.

Prerequisites

  1. Create a Platform API key in Viewport - Settings → API Keys. Store it as the repository secret PLATFORM_API_KEY.

  2. Allow workflows to write pull request comments. Set Settings → Actions → General → Workflow permissions to Read and write, or grant pull-requests: write in the workflow.

  3. Add a workflow file under .github/workflows/.

  4. Install the Duku AI GitHub App. It is required for final PR comment updates.

  5. For environment, create a target in Viewport first and store its ID as a repository variable like DUKU_STAGING_TARGET_ID.

What to expect

GitHub Actions only starts the run. Viewport is the source of truth for final exploration and test results.

Threshold based merge gating and GitHub Check Run integration are not yet available in 0.x. Use the PR comment or Viewport results when you decide whether to merge.

Last updated