Go to file
2024-11-14 21:07:04 +01:00
.gitsv refactor: migrate to woodpecker ci (#330) 2023-11-08 09:02:55 +01:00
.woodpecker ci: add read-only pull secret to security build 2024-11-14 21:07:04 +01:00
overlay ensure bash is installed and used for custom scripts 2021-09-20 21:58:48 +02:00
.dictionary refactor: migrate to woodpecker ci (#330) 2023-11-08 09:02:55 +01:00
.gitignore [skip ci] remove local changelog 2021-02-11 21:05:35 +01:00
.markdownlint.yml enable markdownlint 2020-10-28 09:05:49 +01:00
.prettierignore refactor: migrate to woodpecker ci (#330) 2023-11-08 09:02:55 +01:00
Containerfile chore(docker): update node.js to 4b44c32 2024-11-13 00:05:52 +00:00
LICENSE chore: end of the year maintenance 2021-12-21 10:59:32 +01:00
README.md refactor: migrate to woodpecker ci (#330) 2023-11-08 09:02:55 +01:00
renovate.json chore: use renovate preset config 2020-12-30 16:13:38 +01:00
trivy.yaml ci: switch to trivy config file 2023-12-14 11:05:35 +01:00

lhci

Custom image for lighthouse-ci

Build Status Docker Hub Quay.io Source: Gitea License: MIT

Custom container image for 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.ymlcommand line configuration will not work:

---
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:

lhci_reports/dist/
├── 9cf658e2-202007160745.html
├── f33fa4c4-202007160745.html
└── ffae8d3e-202007160745.html

# <FILENAME_HASH>-<DATETIME>.html

You will also get the target URLs in your CI output:

/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
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

LHCI_BASE_DIR="/src"
LHCI_SERVER_URL="https://example.com/"

Build

docker build -t lhci:latest .

License

This project is licensed under the MIT License - see the LICENSE file for details.