lighthousebot icon indicating copy to clipboard operation
lighthousebot copied to clipboard

Circle CI support

Open jakeleboeuf opened this issue 7 years ago • 16 comments

Any chance you'll add in support for Circle CI?

jakeleboeuf avatar Dec 11 '17 20:12 jakeleboeuf

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

ebidel avatar Dec 11 '17 20:12 ebidel

Thanks Eric!

process.env.TRAVIS_PULL_REQUEST_SLUG is of course not available in CircleCI, so repoSlug.split('/')[0] will throw an error.

jakeleboeuf avatar Dec 11 '17 21:12 jakeleboeuf

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.

ebidel avatar Dec 11 '17 23:12 ebidel

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.

jakeleboeuf avatar Dec 12 '17 01:12 jakeleboeuf

Thanks! I'd also like to understand the changes. Maybe you can help list them here if the change becomes too much?

ebidel avatar Dec 12 '17 03:12 ebidel

Same issue here. This script is coupled to TRAVIS. I just copied it and tweaking for Circle

patrickmichalina avatar Jan 26 '18 02:01 patrickmichalina

Is there a fork or any documentation on getting this up and running on CircleCI?

jimjeffers avatar Apr 17 '18 04:04 jimjeffers

Did somebody already make it work for Circle CI? Any guidance on how to do it or implementing would be appreciated.

gepser avatar May 14 '18 16:05 gepser

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

zgreen avatar May 14 '18 17:05 zgreen

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 avatar Jan 22 '19 01:01 tinovyatkin

@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.

ebidel avatar Jan 28 '19 19:01 ebidel

@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?

eahlberg avatar Feb 01 '19 13:02 eahlberg

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 avatar Feb 01 '19 13:02 zgreen

@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! 🤓

eahlberg avatar Feb 01 '19 13:02 eahlberg

@tinovyatkin Did you manage to get the comments on the PR, using circleci?

kanolato avatar Feb 28 '19 14:02 kanolato

@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!

krzkaczor avatar Aug 29 '19 12:08 krzkaczor