Skip to content

Builds in the web UI ​

Open Builds in the sidebar (/u/<your username>/builds). It lists every build of the account — started from the UI, from pvr or from GitHub Actions — newest first.

The Builds page ​

  • Filters: by project, by status (Queued, Running, Succeeded, Failed, Canceled), and a search box (run ID, project, target, commit).
  • Columns: status, run ID, Pipeline (the stages — fetch, build, package, sign, artifact — and how far the build got), project, source and target (repository, ref @ commit, architectures), duration and creation time.
  • Actions per row: open, cancel a running build, retry a finished one.

Starting a pipeline ​

Click New pipeline.

  1. Project — a name that groups related builds (mqtt-sdk, hello-http). Letters, digits, ., _ and -.
  2. Source
    • Git repository — then What to build:

      • pvpkg.json package — the repository's pvpkg.json decides: its Dockerfile, or its Yocto or Buildroot recipe. Set Package directory to the folder holding pvpkg.json (. for the root).
      • Dockerfile — builds a Dockerfile; set its path and the Build context.

      Fill Git repository URL (HTTPS GitHub or GitLab) and Branch, tag or commit. A tag versions the package with its name.

      • Image base — meta-pantavisor's pantavisor-image-base with kas; the kas files of the Raspberry Pi are filled in. See Flashable device images.
    • Digest-pinned registry image — registry/app@sha256:….

    • Flashable device images — start from an image base or a factory build, choose the signing identity, the app builds, the policies and the secure boot mode; tick Make factory images for secret-free factory images instead. The fields.

    • Simulation (local testing) — a fake build, for a development Hub with a simulation runner; the stage runners do not run them.

  3. Architectures — comma-separated: amd64, arm64, arm32v6. More than one makes a pipeline with one build per architecture.
  4. Limit per architecture (seconds) — up to 14400 (4 h) for Git sources, 3600 otherwise. The pvpkg.json kind defaults to 7200, enough for a Yocto build from the shared cache.
  5. App name and secrets (optional)
    • App name — the container's name in the export and on the device. Default: from pvpkg.json, else the repository or image name.
    • Git secret — Automatic uses the account's matching secret to fetch the repository only. Choose a secret to also give it to a Yocto or Buildroot recipe's own fetches (why).
    • Signing key — Developer key by default; choose a pvs secret to sign with your key. An identity's keys are listed as <identity>-oem (signing identity <identity>): pick the OEM key for apps.
    • Add an OEM configuration part — one policy per config file, each key a value or a config secret, and any other files; signed with the identity's platform key unless you choose another. Details.

Click Start pipeline. Submitting the same form twice does not start two builds: the form reuses its request key until you change a field.

Following a build ​

A build's page has four tabs:

  • Summary — status, the stage it is in, the exact source commit, which secret fetched it, and per architecture: duration, the export, its sha256, version and signature (Signed and verified with your key, or Developer key — not for release). For a pvpkg.json build it also shows what was packaged (the manifest, pvpkg/generic, the architecture's overlay).
  • Logs — the runner's log, live while the build runs. Follow keeps the newest line in view; filter by text or line number; Copy or Save the whole log.
  • Artifacts — the exports and images. Download fetches one through a short-lived link and checks its sha256 before saving it. Badges say what each is: Flashable image, Image base, Factory image; Holds device join tokens on the ones deleted 7 days after the build, and Expired: build again once they are.
  • Configuration — the request exactly as submitted, and the resolved source.

Cancel stops a queued or running build. Retry queues a finished build's request again as a new build — of the same commit, or of the same tag if it still points to the same commit.

Managing secrets and signing identities ​

Next ​

Put the export on a device.