Heart (webpages evaluation)
ActionsTags
(1)Evaluate webpages directly from your CI with Google Lighthouse, GreenIT, Mozilla Observatory or SSLLabs Server.
Retrieve the evaluations in a Slack channel or in a Google Bigquery database.
This GitHub Action make use of the CLI tool Heart.
- uses: faberNovel/heart-action@v1
with:
# [Required]
# Service name that analyze the URL.
# Available values: greenit,lighthouse,observatory,ssllabs-server
analysis_service: observatory
# [Required]
# Set the JSON configuration used by the analysis service, either with a file path OR an inline string.
# The configuration format depends of each service, and is detailed in the READMEs of Heart: https://github.com/faberNovel/heart/tree/master/modules
# Example for the Mozilla Observatory service: https://github.com/faberNovel/heart/tree/master/modules/heart-observatory
file: conf/observatory.json
inline: '{"host":"heart.fabernovel.com"}'
# [Optional]
# Check if the score of the result reaches the given threshold (between 0 and 100).
threshold: 80
# [Optional]
# Services names that process the result of the analyze, separated by commas.
# Available values: bigquery,slack
listener_services: slack
# [Optional]
# Only required if you use "bigquery" as a listener_services
google_application_credentials: ${{ secrets.GOOGLE_APPLICATION_CREDENTIALS }}
# [Optional]
# If you use your own instance of Mozilla Observatory, use this setting to set the server API URL.
# See https://github.com/mozilla/http-observatory#creating-a-local-installation-tested-on-ubuntu-15
observatory_api_url: https://http-observatory.security.mozilla.org/api/v1/
# [Optional]
# If you use your own instance of Mozilla Observatory, use this setting to set the website URL.
# See https://github.com/mozilla/http-observatory#creating-a-local-installation-tested-on-ubuntu-15
observatory_analyze_url: https://observatory.mozilla.org/analyze/
# [Optional]
# Only required if you you use "slack" as a listener_services
slack_api_token: ${{ secrets.SLACK_API_TOKEN }}
# [Optional]
# Customize the Slack channel where the notifications are send (default: #heart)
slack_channel_id: '#heart-analysis'
on:
schedule:
# Every sunday at 1AM
- cron: '0 1 * * 0'
jobs:
analyze:
runs-on: ubuntu-latest
name: 🔬 Analyse heart.fabernovel.com with Mozilla Observatory
steps:
- uses: faberNovel/heart-action@v1
with:
analysis_service: observatory
inline: '{"host":"heart.fabernovel.com"}'
listener_services: slack
slack_api_token: ${{ secrets.SLACK_API_TOKEN }}
on:
schedule:
# Every sunday at 1AM
- cron: '0 1 * * 0'
jobs:
lighthouse:
runs-on: ubuntu-latest
name: 🔬 Analyze with Google Lighthouse
strategy:
matrix:
lighthouse_configuration: [
"conf/home/desktop.json",
"conf/home/mobile.json",
"conf/product/desktop.json",
"conf/product/mobile.json",
"conf/search/desktop.json",
"conf/search/mobile.json",
"conf/accessibility/desktop.json",
"conf/accessibility/mobile.json",
]
steps:
- uses: faberNovel/heart-action@v1
with:
analysis_service: lighthouse
file: ${{ matrix.lighthouse_configuration }}
listener_services: slack
slack_api_token: ${{ secrets.SLACK_API_TOKEN }}
# prevent jobs from being blocked by a previous failed job.
continue-on-error: true
on:
schedule:
# Every sunday at 1AM
- cron: '0 1 * * 0'
jobs:
greenit:
runs-on: ubuntu-latest
name: 🔬 Analyze with GreenIT
steps:
- uses: faberNovel/heart-action@v1
with:
analysis_service: greenit
file: analysis/conf/greenit.json
listener_services: slack
slack_api_token: ${{ secrets.SLACK_API_TOKEN }}
lighthouse:
runs-on: ubuntu-latest
name: 🔬 Analyze with Google Lighthouse
steps:
- uses: faberNovel/heart-action@v1
with:
analysis_service: lighthouse
file: analysis/conf/lighthouse.json
listener_services: slack
slack_api_token: ${{ secrets.SLACK_API_TOKEN }}
on:
schedule:
# Every sunday at 1AM
- cron: '0 1 * * 0'
jobs:
greenit:
runs-on: ubuntu-latest
name: 🔬 Analyze with GreenIT
strategy:
matrix:
greenit_configuration: [
"conf/greenit/home/desktop.json",
"conf/greenit/home/mobile.json",
"conf/greenit/product/desktop.json",
"conf/greenit/product/mobile.json",
"conf/greenit/search/desktop.json",
"conf/greenit/search/mobile.json",
"conf/greenit/accessibility/desktop.json",
"conf/greenit/accessibility/mobile.json",
]
steps:
- uses: faberNovel/heart-action@v1
with:
analysis_service: greenit
file: ${{ matrix.greenit_configuration }}
listener_services: slack
slack_api_token: ${{ secrets.SLACK_API_TOKEN }}
# prevent jobs from being blocked by a previous failed job.
continue-on-error: true
lighthouse:
runs-on: ubuntu-latest
name: 🔬 Analyze with Google Lighthouse
strategy:
matrix:
lighthouse_configuration: [
"conf/lighthouse/home/desktop.json",
"conf/lighthouse/home/mobile.json",
"conf/lighthouse/product/desktop.json",
"conf/lighthouse/product/mobile.json",
"conf/lighthouse/search/desktop.json",
"conf/lighthouse/search/mobile.json",
"conf/lighthouse/accessibility/desktop.json",
"conf/lighthouse/accessibility/mobile.json",
]
steps:
- uses: faberNovel/heart-action@v1
with:
analysis_service: lighthouse
file: ${{ matrix.lighthouse_configuration }}
listener_services: slack
slack_api_token: ${{ secrets.SLACK_API_TOKEN }}
# prevent jobs from being blocked by a previous failed job.
continue-on-error: true
Heart (webpages evaluation) is not certified by GitHub. It is provided by a third-party and is governed by separate terms of service, privacy policy, and support documentation.