Produce app builds on ledger-live-build CI

SkillDev tools

Trigger the on-demand production build workflows on LedgerHQ/ledger-live-build (Desktop, Android APK, iOS) for a ledger-live branch, then post a PR comment. Use when asked to "run builds", "produce a build", "build the app(s)", or "make an APK/iOS/desktop build" for a PR/branch.

Available today. Use it from your connected AI after setup.

Connect ahel once, and every AI you use reads what you have installed.

Then ask your AI: use the Produce app builds on ledger-live-build CI skill

What this skill tells your AI

The instructions your AI receives, as published by ledgerhq/ledger-live in .agents/skills/run-builds/SKILL.md and read by ahel’s review.

When: to produce installable artifacts (desktop installers, APK, iOS) of a ledger-live branch — for QA, manual testing, or sharing a build with reviewers.

These workflows live in LedgerHQ/ledger-live-build, not ledger-live. That changes how you dispatch them vs. run-e2e-ci:

  • Target the build repo: gh workflow run <wf> -R LedgerHQ/ledger-live-build.
  • The branch you want to build is passed as inputs, not --ref: -f repo=LedgerHQ/ledger-live -f ref=<branch>. The workflow checks out inputs.ref from inputs.repo. --ref (if given) would select the ledger-live-build ref and should be left at default (main).
  • gh must run outside the sandbox (dangerouslyDisableSandbox: true).

1. Scope by context — only build what the diff impacts

Builds are slow and expensive (especially desktop = macOS + Linux + Windows). Study the PR diff / branch changes and dispatch only the relevant surfaces:

Diff touchesBuild
apps/ledger-live-desktop/**Desktop
apps/ledger-live-mobile/**Android + iOS
shared libs (libs/**, e.g. ledger-live-common, coin-modules) impacting both appsDesktop + Android + iOS

If the user explicitly names a platform ("make an APK", "iOS build"), honor that and skip the inference. When in doubt about a shared-lib change, ask which app(s) to build rather than building all three.

Scope off the PR's file list, not git diff develop...HEAD. A stale merge-base makes the local three-dot diff pull in hundreds of unrelated files. When a PR exists, use gh pr view <pr> -R LedgerHQ/ledger-live --json files --jq '.files[].path' for the true change set.

2. Workflows & inputs

WorkflowFileProducesExtra inputs
Desktopbuild-desktop.ymlmacOS, Linux, Windows bundlesupload_datadog_sourcemaps (bool, default false)
Androidbuild-apk.yml.apk
iOSbuild-ios.ymliOS build

All three share repo (default LedgerHQ/ledger-live) and ref (default develop).

3. Dispatch

# Branch to build: prefer the PR head (robust to detached HEAD on a PR SHA),
# fall back to the current branch only when there's no PR in context.
BR=$(gh pr view <pr> -R LedgerHQ/ledger-live --json headRefName --jq .headRefName 2>/dev/null \
     || git rev-parse --abbrev-ref HEAD)
R=LedgerHQ/ledger-live-build

gh workflow run build-desktop.yml -R "$R" -f repo=LedgerHQ/ledger-live -f ref="$BR"
gh workflow run build-apk.yml     -R "$R" -f repo=LedgerHQ/ledger-live -f ref="$BR"
gh workflow run build-ios.yml     -R "$R" -f repo=LedgerHQ/ledger-live -f ref="$BR"

Then grab the run IDs (dispatch is async; give it a few seconds). Filter per workflow since run-names don't echo the source branch:

gh run list -R "$R" --workflow build-desktop.yml --limit 3
gh run list -R "$R" --workflow build-apk.yml     --limit 3
gh run list -R "$R" --workflow build-ios.yml     --limit 3

4. Comment on the PR (if a PR is in context)

If the branch has an open ledger-live PR, post the dispatched runs on it. The PR lives in ledger-live, the runs in ledger-live-build — link accordingly. Use --edit-last to update an existing comment instead of stacking.

# First time: post a new comment.
gh pr comment <pr> -R LedgerHQ/ledger-live --body "..."
# On re-dispatch: update the same comment instead of stacking a new one.
gh pr comment <pr> -R LedgerHQ/ledger-live --edit-last --body "..."
## 📦 Triggered builds

Dispatched on `ledger-live-build` for `<branch>` (commit <short-sha>):

| Platform | Run |
|---|---|
| Desktop (macOS / Linux / Windows) | [run <id>](https://github.com/LedgerHQ/ledger-live-build/actions/runs/<id>) |
| Android (APK) | [run <id>](https://github.com/LedgerHQ/ledger-live-build/actions/runs/<id>) |
| iOS | [run <id>](https://github.com/LedgerHQ/ledger-live-build/actions/runs/<id>) |

Artifacts will be attached to each run on completion.

Only include rows for the platforms you actually dispatched. If there's no PR in context, just report the run links back in chat.

Signals

GitHub stars
618
Forks
490
Last commit
Sep 2026
Advanced
Catalog kind
skill
Gateway key
run-builds
Source
github.com/ledgerhq/ledger-live