Skip to content

Bump open-cli from 7.2.0 to 8.0.0 in /demos/accessibility-lighthouse #37

Bump open-cli from 7.2.0 to 8.0.0 in /demos/accessibility-lighthouse

Bump open-cli from 7.2.0 to 8.0.0 in /demos/accessibility-lighthouse #37

name: Build and test the demo apps
on:
workflow_dispatch:
push:
branches: [ main ]
pull_request:
branches: [ main ]
schedule:
- cron: '0 0 * * 0' # Once a week: "At 00:00 on Sunday."
defaults:
run:
shell: pwsh
jobs:
accessibility-axe:
name: accessibility-axe demo
permissions:
contents: read
runs-on: ubuntu-latest
steps:
- name: Dump github context for debug purposes
env:
GITHUB_CONTEXT: ${{ toJSON(github) }}
run: $env:GITHUB_CONTEXT
- name: Checkout repository
uses: actions/checkout@v4
- name: accessibility-axe demo
run: |
cd "${{ github.workspace }}/demos/accessibility-axe"
npm ci
npx playwright install --with-deps
npm test | Tee-Object -Variable testOutput
# Check that all is as expected. Should have 3 and only 3 failed tests.
$expectedFailed = $false
foreach($outputLine in $testOutput)
{
if($outputLine.Contains("3 failed"))
{
$expectedFailed = $true
}
}
if(!$expectedFailed)
{
Write-Output "::error::Failed running the accessibility-axe demo tests. Expected exactly 3 failed tests."
Exit 1
}
Exit 0
accessibility-lighthouse:
name: accessibility-lighthouse demo
permissions:
contents: read
runs-on: ubuntu-latest
steps:
- name: Dump github context for debug purposes
env:
GITHUB_CONTEXT: ${{ toJSON(github) }}
run: $env:GITHUB_CONTEXT
- name: Checkout repository
uses: actions/checkout@v4
- name: accessibility-lighthouse demo
run: |
cd "${{ github.workspace }}/demos/accessibility-lighthouse"
npm ci
npx playwright install --with-deps
npm test
# Check that the lighthouse audit worked as expected.
# The check is done by verifying that the audit-report.json produced by lighthouse
# contains the expected score results. If this file doesn't exist or doesn't have
# the expected scores then it should be an indication that something is wrong.
$auditReport = Get-ChildItem -Path . -Filter audit-report.json -Recurse -ErrorAction SilentlyContinue -Force
$auditReportJson = Get-Content -Raw $auditReport | ConvertFrom-Json
$performanceCategory = $auditReportJson.categories | where { $_.name -eq "Performance" }
$accessibilityCategory = $auditReportJson.categories | where { $_.name -eq "Accessibility" }
$bestPracticesCategory = $auditReportJson.categories | where { $_.name -eq "Best Practices" }
$seoCategory = $auditReportJson.categories | where { $_.name -eq "SEO" }
if($performanceCategory.score -ne 1 -OR $accessibilityCategory.score -ne 0.93 -OR $bestPracticesCategory.score -ne 1 -OR $seoCategory.score -ne 0.89)
{
Write-Output "::error::Failed running the accessibility-lighthouse demo tests. Audit report didn't produce expected scores."
Exit 1
}
Exit 0
code-coverage-with-istanbul-via-webpack-babel-plugin:
name: code-coverage-with-istanbul-via-webpack-babel-plugin demo
permissions:
contents: read
runs-on: ubuntu-latest
steps:
- name: Dump github context for debug purposes
env:
GITHUB_CONTEXT: ${{ toJSON(github) }}
run: $env:GITHUB_CONTEXT
- name: Checkout repository
uses: actions/checkout@v4
- name: code-coverage-with-istanbul-via-webpack-babel-plugin demo
run: |
cd "${{ github.workspace }}/demos/code-coverage-with-istanbul-via-webpack-babel-plugin"
npm ci
npx playwright install --with-deps
npm test
# Check that the code coverage worked as expected.
# The check is done by running the command to generate the code coverage
# and asserting on the values of the summary report.
npm run coverage:report | Tee-Object -Variable coverageSummary
$expectedStatements = $false
$expectedBranches = $false
$expectedFunctions = $false
$expectedLines = $false
foreach($coverageLine in $coverageSummary)
{
if($coverageLine.Contains("Statements : 88.88% ( 8/9 )"))
{
$expectedStatements = $true
}
elseif($coverageLine.Contains("Branches : 100% ( 2/2 )"))
{
$expectedBranches = $true
}
elseif($coverageLine.Contains("Functions : 50% ( 1/2 )"))
{
$expectedFunctions = $true
}
elseif($coverageLine.Contains("Lines : 100% ( 8/8 )"))
{
$expectedLines = $true
}
}
if(!$expectedStatements -OR !$expectedBranches -OR !$expectedFunctions -OR !$expectedLines)
{
Write-Output "::error::Failed running the code-coverage-with-istanbul-via-webpack-babel-plugin demo. Code coverage summary is different from what is expected."
Exit 1
}
Exit 0
code-coverage-with-monocart-reporter:
name: code-coverage-with-monocart-reporter demo
permissions:
contents: read
runs-on: ubuntu-latest
steps:
- name: Dump github context for debug purposes
env:
GITHUB_CONTEXT: ${{ toJSON(github) }}
run: $env:GITHUB_CONTEXT
- name: Checkout repository
uses: actions/checkout@v4
- name: code-coverage-with-monocart-reporter demo
run: |
cd "${{ github.workspace }}/demos/code-coverage-with-monocart-reporter"
npm ci
npx playwright install --with-deps
npm test | Tee-Object -Variable testOutput
# Check that the code coverage worked as expected.
# The check is done by asserting on the values of the summary report and
# veryfing that the expected coverage report files were created
$expectedLines = $false
foreach($testLine in $testOutput)
{
if($testLine.Contains("99.72 %"))
{
$expectedLines = $true
}
}
if(!$expectedLines)
{
Write-Output "::error::Failed running the code-coverage-with-monocart-reporter demo. Code coverage summary is different from what is expected."
Exit 1
}
$cobertura = Test-Path ./test-results/code-coverage/cobertura/code-coverage.cobertura.xml -PathType Leaf
$v8Report = Test-Path ./test-results/code-coverage/v8/index.html -PathType Leaf
$htmlSpaReport = Test-Path ./test-results/code-coverage/html-spa/index.html -PathType Leaf
$lcovReport = Test-Path ./test-results/code-coverage/lcov/code-coverage.lcov.info -PathType Leaf
if(!$cobertura -OR !$v8Report -OR !$htmlSpaReport -OR !$lcovReport)
{
Write-Output "::error::Failed running the code-coverage-with-monocart-reporter demo. Expected 4 reports but at least one is missing."
Exit 1
}
Exit 0
docker:
name: docker demo
permissions:
contents: read
runs-on: ubuntu-latest
steps:
- name: Dump github context for debug purposes
env:
GITHUB_CONTEXT: ${{ toJSON(github) }}
run: $env:GITHUB_CONTEXT
- name: Checkout repository
uses: actions/checkout@v4
with:
lfs: true
- name: docker demo
run: |
cd "${{ github.workspace }}/demos/docker"
npm ci
npm test
# The docker demo has many options in the powershell script which are not tested.
# For now it will require manual testing on the docker demo powershell scripts to
# make sure everything is working as expected.
fixtures:
name: fixtures demo
permissions:
contents: read
runs-on: ubuntu-latest
steps:
- name: Dump github context for debug purposes
env:
GITHUB_CONTEXT: ${{ toJSON(github) }}
run: $env:GITHUB_CONTEXT
- name: Checkout repository
uses: actions/checkout@v4
- name: fixtures demo
run: |
cd "${{ github.workspace }}/demos/fixtures"
npm ci
npx playwright install --with-deps
npm test | Tee-Object -Variable testOutput
# Check that all is as expected. Should have 9 failed, 1 skipped and
# 8 passed tests.
$expectedFailed = $false
$expectedSkipped = $false
$expectedPassed = $false
foreach($outputLine in $testOutput)
{
if($outputLine.Contains("9 failed"))
{
$expectedFailed = $true
}
elseif($outputLine.Contains("1 skipped"))
{
$expectedSkipped = $true
}
elseif($outputLine.Contains("8 passed"))
{
$expectedPassed = $true
}
}
if(!$expectedFailed -OR !$expectedSkipped -OR !$expectedPassed)
{
Write-Output "expectedFailed=$expectedFailed"
Write-Output "expectedSkipped=$expectedSkipped"
Write-Output "expectedPassed=$expectedPassed"
Write-Output "::error::Failed running the fixtures demo tests. Expected 9 failed, 1 skipped and 8 passed tests."
Exit 1
}
Exit 0
monocart-reporter-advanced-config:
name: monocart-reporter-advanced-config demo
permissions:
contents: read
runs-on: windows-latest
steps:
- name: Dump github context for debug purposes
env:
GITHUB_CONTEXT: ${{ toJSON(github) }}
run: $env:GITHUB_CONTEXT
- name: Checkout repository
uses: actions/checkout@v4
with:
lfs: true
- name: monocart-reporter-advanced-config demo
run: |
cd "${{ github.workspace }}/demos/monocart-reporter-advanced-config"
npm ci
npx playwright install --with-deps
npm test
# There's no easy way to test that this demo is working as expected.
# For now this demo relies on manual testing to make sure everything
# is working.
stale-screenshots-cleanup:
name: stale-screenshots-cleanup demo
permissions:
contents: read
runs-on: windows-latest
steps:
- name: Dump github context for debug purposes
env:
GITHUB_CONTEXT: ${{ toJSON(github) }}
run: $env:GITHUB_CONTEXT
- name: Checkout repository
uses: actions/checkout@v4
with:
lfs: true
- name: stale-screenshots-cleanup demo
run: |
cd "${{ github.workspace }}/demos/stale-screenshots-cleanup"
npm ci
npx playwright install --with-deps
npm test
# There's no easy way to test that this demo is working as expected.
# For now this demo relies on manual testing to make sure everything
# is working.