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
wizard
(create new projects on the LHCI server)collect
(run Lighthouse many times)open
(open the median run)
Remotely, on CI servers
autorun
healthcheck
collect
assert
upload
Remotely, on a LHCI server
server
wizard
(reset tokens)
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.