lighthouse-ci

Architecture

image

Overview

Lighthouse CI is split into two core packages @lhci/cli and @lhci/server. The CLI is the primary way users interact with Lighthouse CI. The server module is used to setup the Lighthouse CI server.

The CLI is broken down into commands that are run in a variety of environments. See the below lists for where we expect different commands to be run.

Locally, on a user’s device

Remotely, on CI servers

Remotely, on a LHCI server

CI Flow

The typical CI flow for command execution is healthcheck -> collect -> assert -> upload. Each command reads/writes data from the .lighthouseci/ folder on the local filesystem. This is where collect will store reports, assert will read reports and write assertion results, and upload will read both reports and assertion results to upload to another location such as the temporary public storage service, GitHub (for status checks), or a LHCI server.