Privacy 2024 Chapter #8492
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
###################################### | |
## Custom Web Almanac GitHub action ## | |
###################################### | |
# | |
# This generates the chapters and tests the website when a pull request is | |
# opened (or added to) on the original repo | |
# | |
name: Test Website | |
on: | |
workflow_dispatch: | |
pull_request: | |
paths-ignore: | |
- 'sql/**' | |
push: | |
branches: | |
- main | |
jobs: | |
build: | |
name: Build and Test Website | |
runs-on: ubuntu-20.04 | |
if: github.repository == 'HTTPArchive/almanac.httparchive.org' | |
steps: | |
- name: Checkout branch | |
uses: actions/checkout@v4 | |
with: | |
# Full git history is needed to get a proper list of changed files within `super-linter` | |
fetch-depth: 0 | |
- name: Setup Node.js for use with actions | |
uses: actions/setup-node@v4 | |
with: | |
node-version: '20' | |
- name: Set up Python 3.12 | |
uses: actions/[email protected] | |
with: | |
python-version: '3.12' | |
- name: Run the website | |
run: ./src/tools/scripts/run_and_test_website.sh | |
- name: Remove node modules to avoid linting errors | |
run: rm -rf src/node_modules | |
- name: Use more complete checks for generated HTML linting | |
run: cp -f .github/linters/.htmlhintrc_morechecks .github/linters/.htmlhintrc | |
- name: Lint Generated HTML | |
uses: github/super-linter/[email protected] | |
env: | |
DEFAULT_BRANCH: main | |
FILTER_REGEX_INCLUDE: src/static/html/.* | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
VALIDATE_HTML: true | |
USE_FIND_ALGORITHM: true | |
- name: Set the list of URLs for Lighthouse to check | |
env: | |
RUN_TYPE: ${{ github.event_name }} | |
COMMIT_SHA: ${{ github.sha }} | |
run: ./src/tools/scripts/set_lighthouse_urls.sh | |
- name: Audit URLs using Lighthouse | |
uses: treosh/[email protected] | |
id: LHCIAction | |
with: | |
# For dev, turn off all timing perf audits (too unreliable) and a few others that don't work on dev | |
configPath: .github/lighthouse/lighthouse-config-dev.json | |
uploadArtifacts: true # save results as an action artifacts | |
temporaryPublicStorage: true # upload lighthouse report to the temporary storage | |
- name: Show Lighthouse outputs | |
run: | | |
# All results by URL: | |
echo '${{ steps.LHCIAction.outputs.manifest }}' | jq -r '.[] | (.summary|tostring) + " - " + .url' |