You're viewing an older version of this GitHub Action. Do you want to see the latest version instead?
GitHub Action
Heart (webpages evaluation)
v1.0.2
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