Open jakeleboeuf opened 6 years ago
This system is generic enough that you should be able to set it up with any CI server. Namely just run the runlighthouse.js
script against a staged URL or fire up a local server and test agains that.
https://github.com/ebidel/lighthouse-ci#auditing-github-pull-requests https://github.com/ebidel/lighthouse-ci#running-your-own-ci-server
Thanks Eric!
process.env.TRAVIS_PULL_REQUEST_SLUG is of course not available in CircleCI, so repoSlug.split('/')[0]
will throw an error.
Ah yes :) Thanks for keeping me honest. TBH, I haven't used Circle CI before. If changes are minimal, I'd be happy to take a PR that adds support. The other thing you could do is take runlighthouse.js
as a starter and adapt it to CircleCI.
Haha, no problem! I’ll take a look in the morning and see how minimal the change would be to add that flag. If it’s a small update, I’ll send a PR- otherwise I’ll just fork and run.
Thanks! I'd also like to understand the changes. Maybe you can help list them here if the change becomes too much?
Same issue here. This script is coupled to TRAVIS. I just copied it and tweaking for Circle
Is there a fork or any documentation on getting this up and running on CircleCI?
Did somebody already make it work for Circle CI? Any guidance on how to do it or implementing would be appreciated.
I created an example repo for lighthouse+circleci integration—maybe it will help some folks here.
repo: https://github.com/zgreen/lighthouse-circleci-example blog post: https://offbyone.tech/lighthouse-circleci
We can use the service directly:
- run:
name: "Run Lighthouse"
command: |
curl -f -X POST https://lighthouse-ci.appspot.com/run_on_wpt \
-H 'Content-Type: application/json' \
-H "X-API-KEY: ${LIGHTHOUSE_API_KEY}" \
-d "{
\"output\": \"json\",
\"testUrl\": \"https://staging-$CIRCLE_PR_NUMBER-dot-$GOOGLE_PROJECT_ID.appspot.com/book/\",
\"addComment\": true,
\"thresholds\": {
\"performance\": 35,
\"pwa\": 30,
\"accessibility\": 80,
\"best-practices\": 70,
\"seo\": 90
},
\"repo\": {
\"owner\": \"${CIRCLE_PROJECT_USERNAME}\",
\"name\": \"${CIRCLE_PROJECT_REPONAME}\"
},
\"pr\": {
\"number\": ${CIRCLE_PR_NUMBER},
\"sha\": \"$CIRCLE_SHA1\"
}
}"
@tinovyatkin I do not recommend relying on https://lighthouse-ci.appspot.com/run_on_wpt. It can change at any time and I make no guarantees on uptime. It's for testing.
@zgreen thank you for your example repo! however, it seems the blog post is not available atm (404), do you have it available somewhere else?
Hmm, the link seems to work for me. Note that it should be https://offbyone.tech/lighthouse-circleci and not https://offbyone.tech/lighthouse-circleci/, looks like my blog isn't handling trailing slashes properly 🙃
@zgreen the trailing slash didn't make a difference for me but it seems to be a browser issue since it works for me in Safari but not in Chrome. Thanks anyway, time to read! 🤓
@tinovyatkin Did you manage to get the comments on the PR, using circleci?
@jakeleboeuf @kanolato lighthouse-keeper is the new lighthouse bot that supports multiple CIs as well as detecting differences between PR branch and master branch. You should check it out!
Any chance you'll add in support for Circle CI?