# lhci Custom image for lighthouse-ci [![Build Status](https://ci.rknet.org/api/badges/container/lhci/status.svg)](https://ci.rknet.org/repos/container/lhci) [![Docker Hub](https://img.shields.io/badge/dockerhub-latest-blue.svg?logo=docker&logoColor=white)](https://hub.docker.com/r/thegeeklab/lhci) [![Quay.io](https://img.shields.io/badge/quay-latest-blue.svg?logo=docker&logoColor=white)](https://quay.io/repository/thegeeklab/lhci) [![Source: Gitea](https://img.shields.io/badge/source-gitea-blue.svg?logo=gitea&logoColor=white)](https://gitea.rknet.org/container/lhci) [![License: MIT](https://img.shields.io/badge/license-MIT-blue.svg)](https://gitea.rknet.org/container/lhci/src/branch/main/LICENSE) Custom container image for [lighthouse-ci](https://github.com/GoogleChrome/lighthouse-ci). ## Usage There are two wrapper scripts around the lhci command you could use: - `/usr/bin/lhci-official`: This will simply forward your command to the official binary at `/usr/local/bin/lhci` - `/usr/bin/lhci`: This is a modified wrapper to post-process the created report file to prepare an upload. The wrapper `/usr/bin/lhci` will do the following: - create `DIST=$LHCI_BASE_DIR/$UPLOAD_OUTPUT_DIR/dist/` - find all files flagged with `isRepresentativeRun` in the `manifest.json` - copy those files to `$DIST` To get it working you need to configure the `fileupload` in `.lighthouserc.yml`command line configuration will not work: ```Yaml --- ci: [...] upload: target: filesystem # has to be a relative path to the .lighthouserc.yml location outputDir: lhci_reports ``` What you will get is the following file structure which could be used as an upload source: ```Shell lhci_reports/dist/ ├── 9cf658e2-202007160745.html ├── f33fa4c4-202007160745.html └── ffae8d3e-202007160745.html # -.html ``` You will also get the target URLs in your CI output: ```Shell /usr/bin/lhci autorun [...] All results processed! Dumping 6 reports to disk at /src/lhci_reports... Done writing reports to disk. Done running autorun. Post-process report files... Report for http://localhost:43901/ will be uploaded to https://example.com/9cf658e2-202007160745.html Report for http://localhost:43901/404.html will be uploaded to https://example.com/ffae8d3e-202007160745.html Report for http://localhost:43901/posts/ will be uploaded to https://example.com/f33fa4c4-202007160745.html ``` ```Shell docker run -v $(pwd)/public:/src lhci autorun # or pass arguments to lhci docker run -v $(pwd)/public:/src lhci autorun --upload.target=temporary-public-storage ``` ## Environment variables ```Shell LHCI_BASE_DIR="/src" LHCI_SERVER_URL="https://example.com/" ``` ## Build ```Shell docker build -t lhci:latest . ``` ## License This project is licensed under the MIT License - see the [LICENSE](https://gitea.rknet.org/container/lhci/src/branch/main/LICENSE) file for details.