Compare commits

...

5 Commits

Author SHA1 Message Date
Aidan Timson 66c105e29c Benchmark compact workflow image 2026-07-13 11:38:46 +01:00
Aidan Timson 0b591f60ee Align benchmark lint cache keys 2026-07-13 11:09:54 +01:00
Aidan Timson 3b9db7c0a6 Add CI accelerator benchmark 2026-07-13 10:55:23 +01:00
renovate[bot] 58bcf1e865 Update dependency @html-eslint/eslint-plugin to v0.64.0 (#53111) 2026-07-13 10:05:02 +01:00
Simon Lamon 196d71c4f7 Update demo deployment to output unique url again (#53091) 2026-07-13 09:52:33 +01:00
4 changed files with 175 additions and 37 deletions
+13 -1
View File
@@ -19,6 +19,9 @@ outputs:
netlify_url:
description: The deployed URL
value: ${{ steps.deploy.outputs.netlify_url }}
unique_deploy_url:
description: The unique hash-based deployment URL for this specific build
value: ${{ steps.deploy.outputs.unique_deploy_url }}
runs:
using: composite
@@ -32,9 +35,18 @@ runs:
NETLIFY_AUTH_TOKEN: ${{ inputs.auth-token }}
NETLIFY_SITE_ID: ${{ inputs.site-id }}
run: |
# Execute the deployment
if [ -n "$ALIAS" ]; then
npx -y netlify-cli deploy --dir="$DIR" --alias "$ALIAS" --json > deploy_output.json
else
npx -y netlify-cli deploy --dir="$DIR" --prod --json > deploy_output.json
fi
echo "netlify_url=$(jq -r '.url // .deploy_url' deploy_output.json)" >> "$GITHUB_OUTPUT"
# Collect the urls from the deployment output
NETLIFY_URL=$(jq -r '.url // .deploy_url' deploy_output.json)
SITE_NAME=$(jq -r '.site_name' deploy_output.json)
DEPLOY_ID=$(jq -r '.deploy_id' deploy_output.json)
UNIQUE_URL="https://${DEPLOY_ID}--${SITE_NAME}.netlify.app"
echo "netlify_url=$NETLIFY_URL" >> "$GITHUB_OUTPUT"
echo "unique_deploy_url=$UNIQUE_URL" >> "$GITHUB_OUTPUT"
@@ -0,0 +1,126 @@
name: CI accelerator benchmark
on:
workflow_dispatch:
push:
branches:
- workflows-global-build-image
env:
NODE_OPTIONS: --max_old_space_size=6144
permissions:
contents: read
jobs:
baseline:
name: Baseline / ${{ matrix.workload }}
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
workload:
- lint
- test
steps:
- name: Check out files from GitHub
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
with:
persist-credentials: false
- name: Setup Node and install
uses: ./.github/actions/setup
- name: Check for duplicate dependencies
if: matrix.workload == 'lint'
run: yarn dedupe --check
- name: Build resources
id: build_resources
run: >-
./node_modules/.bin/gulp gen-icons-json build-translations build-locale-data
${{ matrix.workload == 'lint' && 'gather-gallery-pages' || '' }}
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Setup lint cache
if: matrix.workload == 'lint'
uses: actions/cache@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6.1.0
with:
path: |
node_modules/.cache/prettier
node_modules/.cache/eslint
node_modules/.cache/typescript
key: lint-${{ github.sha }}
restore-keys: lint-
- name: Run eslint
if: matrix.workload == 'lint'
run: yarn run lint:eslint --quiet
- name: Run tsc
if: matrix.workload == 'lint' && !cancelled() && steps.build_resources.outcome == 'success'
run: yarn run lint:types
- name: Run lit-analyzer
if: matrix.workload == 'lint' && !cancelled() && steps.build_resources.outcome == 'success'
run: yarn run lint:lit --quiet
- name: Run prettier
if: matrix.workload == 'lint' && !cancelled() && steps.build_resources.outcome == 'success'
run: yarn run lint:prettier
- name: Check dependency licenses
if: matrix.workload == 'lint' && !cancelled() && steps.build_resources.outcome == 'success'
run: yarn run lint:licenses
- name: Run tests
if: matrix.workload == 'test'
run: yarn run test
image:
name: Image / ${{ matrix.workload }}
runs-on: ubuntu-latest
container:
image: ghcr.io/timmo001/home-assistant-frontend-ci-images/frontend-workflow@sha256:ffa4d621b4495bf456b7ab3c632f550e329fe78c2d571167aa0899a52c4932c3
strategy:
fail-fast: false
matrix:
workload:
- lint
- test
steps:
- name: Check out files from GitHub
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
with:
persist-credentials: false
- name: Install dependencies
run: frontend-install
- name: Check for duplicate dependencies
if: matrix.workload == 'lint'
run: yarn dedupe --check
- name: Build resources
id: build_resources
run: >-
./node_modules/.bin/gulp gen-icons-json build-translations build-locale-data
${{ matrix.workload == 'lint' && 'gather-gallery-pages' || '' }}
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Setup lint cache
if: matrix.workload == 'lint'
uses: actions/cache@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6.1.0
with:
path: |
node_modules/.cache/prettier
node_modules/.cache/eslint
node_modules/.cache/typescript
key: lint-${{ github.sha }}
restore-keys: lint-
- name: Run eslint
if: matrix.workload == 'lint'
run: yarn run lint:eslint --quiet
- name: Run tsc
if: matrix.workload == 'lint' && !cancelled() && steps.build_resources.outcome == 'success'
run: yarn run lint:types
- name: Run lit-analyzer
if: matrix.workload == 'lint' && !cancelled() && steps.build_resources.outcome == 'success'
run: yarn run lint:lit --quiet
- name: Run prettier
if: matrix.workload == 'lint' && !cancelled() && steps.build_resources.outcome == 'success'
run: yarn run lint:prettier
- name: Check dependency licenses
if: matrix.workload == 'lint' && !cancelled() && steps.build_resources.outcome == 'success'
run: yarn run lint:licenses
- name: Run tests
if: matrix.workload == 'test'
run: yarn run test
+1 -1
View File
@@ -145,7 +145,7 @@
"@babel/preset-env": "8.0.2",
"@bundle-stats/plugin-webpack-filter": "4.22.2",
"@eslint/js": "10.0.1",
"@html-eslint/eslint-plugin": "0.63.0",
"@html-eslint/eslint-plugin": "0.64.0",
"@lokalise/node-api": "16.0.0",
"@octokit/auth-oauth-device": "8.0.3",
"@octokit/plugin-retry": "8.1.0",
+35 -35
View File
@@ -2984,73 +2984,73 @@ __metadata:
languageName: node
linkType: hard
"@html-eslint/core@npm:^0.63.0":
version: 0.63.0
resolution: "@html-eslint/core@npm:0.63.0"
"@html-eslint/core@npm:^0.64.0":
version: 0.64.0
resolution: "@html-eslint/core@npm:0.64.0"
dependencies:
"@html-eslint/types": "npm:^0.63.0"
"@html-eslint/types": "npm:^0.64.0"
html-standard: "npm:^0.0.13"
checksum: 10/3fb125fa0bd7c70d9255b465c57328d01f604d201e9079ddafc5a7793b618f59d0ffe77a2aa948e4a07ac9e6f1790aea94d87c2ea266f8b91f3992a1b617e024
checksum: 10/682d735353acd711ee74e681b5949a35f650e425be670509e1ddca5beeb708347b9c3a740b88eb13d19f6cbf54a903e4dcc173988f6c1c6c9fd212b997df6f17
languageName: node
linkType: hard
"@html-eslint/eslint-plugin@npm:0.63.0":
version: 0.63.0
resolution: "@html-eslint/eslint-plugin@npm:0.63.0"
"@html-eslint/eslint-plugin@npm:0.64.0":
version: 0.64.0
resolution: "@html-eslint/eslint-plugin@npm:0.64.0"
dependencies:
"@eslint/plugin-kit": "npm:^0.4.1"
"@html-eslint/core": "npm:^0.63.0"
"@html-eslint/parser": "npm:^0.63.0"
"@html-eslint/template-parser": "npm:^0.63.0"
"@html-eslint/template-syntax-parser": "npm:^0.63.0"
"@html-eslint/types": "npm:^0.63.0"
"@html-eslint/core": "npm:^0.64.0"
"@html-eslint/parser": "npm:^0.64.0"
"@html-eslint/template-parser": "npm:^0.64.0"
"@html-eslint/template-syntax-parser": "npm:^0.64.0"
"@html-eslint/types": "npm:^0.64.0"
"@rviscomi/capo.js": "npm:^2.1.0"
html-standard: "npm:^0.0.13"
peerDependencies:
eslint: ">=8.0.0 || ^10.0.0-0"
checksum: 10/ba729511122ce5d20c2dca4300b88ed7ad2afae9c7c7511a9de9e0abc75cea10a22ca7943604373b486d7ac584f6624de056005f9868799c43ce88949a5b33c2
checksum: 10/3badf5dab3fd62be5f28ca5703004271224a684273ba419cadd7712b47fd57724f6b5ec5e3081e47c3e700fe6ae4066cd71bbde0041d2cb70b3e784a11949eec
languageName: node
linkType: hard
"@html-eslint/parser@npm:^0.63.0":
version: 0.63.0
resolution: "@html-eslint/parser@npm:0.63.0"
"@html-eslint/parser@npm:^0.64.0":
version: 0.64.0
resolution: "@html-eslint/parser@npm:0.64.0"
dependencies:
"@html-eslint/template-syntax-parser": "npm:^0.63.0"
"@html-eslint/types": "npm:^0.63.0"
"@html-eslint/template-syntax-parser": "npm:^0.64.0"
"@html-eslint/types": "npm:^0.64.0"
css-tree: "npm:^3.1.0"
es-html-parser: "npm:0.3.1"
checksum: 10/aae7029e9e5e44e04223a5df29878c229d073b336284c81ad74bbd4ce97a80b10b4bc7d4c1d8c32a3225e7ccf13cc77d73d4197e28bb006e2ff15eed28e266cf
checksum: 10/7ce0205a07cbddf63959ad2bcf39cf8c4252c5a88abce20326c5b02fd13cd0d81ec6ebe569c4c57b4f9a27842ae62592ad5e47bca58d00cb91d413ad1dad98d0
languageName: node
linkType: hard
"@html-eslint/template-parser@npm:^0.63.0":
version: 0.63.0
resolution: "@html-eslint/template-parser@npm:0.63.0"
"@html-eslint/template-parser@npm:^0.64.0":
version: 0.64.0
resolution: "@html-eslint/template-parser@npm:0.64.0"
dependencies:
"@html-eslint/types": "npm:^0.63.0"
"@html-eslint/types": "npm:^0.64.0"
es-html-parser: "npm:0.3.1"
checksum: 10/64409e5b3efcb6ba1a2a001ee1cca3308bc0f99db1ed83fbc8c4f7854d4971f41219f664f3664fbc6e41b116f5ac9d27c8e5145a258250c1e1d5ecb0961f2f82
checksum: 10/2dcdc87c2355af6f45814217a812d54acbab7eca6edb6c0cf7ef0fbafca5a7c75c03b6f4acb2dd4f843abb2e34dae2720cd623f0ec0ccfd4570961b025f461a1
languageName: node
linkType: hard
"@html-eslint/template-syntax-parser@npm:^0.63.0":
version: 0.63.0
resolution: "@html-eslint/template-syntax-parser@npm:0.63.0"
"@html-eslint/template-syntax-parser@npm:^0.64.0":
version: 0.64.0
resolution: "@html-eslint/template-syntax-parser@npm:0.64.0"
dependencies:
"@html-eslint/types": "npm:^0.63.0"
checksum: 10/2e0f21172bfc3762df16443a81a181d59bdef65f00eb6e2a944703cf862b994193053803609cbf3c55fc98d01a3fb82bb800d6d8c7fdbf69a6dad7a55cabf7ab
"@html-eslint/types": "npm:^0.64.0"
checksum: 10/774d319f8485cbd20b351767c693e1e281d8e3b7d8c6bf01a2db407684c0656d8789535df0f2357d9bc0df2299023d2d1045a425b72dea1144d265340cfa9031
languageName: node
linkType: hard
"@html-eslint/types@npm:^0.63.0":
version: 0.63.0
resolution: "@html-eslint/types@npm:0.63.0"
"@html-eslint/types@npm:^0.64.0":
version: 0.64.0
resolution: "@html-eslint/types@npm:0.64.0"
dependencies:
"@types/css-tree": "npm:^2.3.11"
"@types/estree": "npm:^1.0.6"
es-html-parser: "npm:0.3.1"
checksum: 10/892d3cde8e43546e480d327c9d9273f2590a40103616f18a6458770150b49d87e3ba44f2ded68223569a0d04fab61c693277c1a9be3f15ab69c8dabe1e302455
checksum: 10/9813e675f06fb950911a0b51e113ff05b3eabe73e6396a3ac2afeeab557c7608d883d092f40fd77f843f362f6cbfefa3cd45df3e0135ce71b5f9dd281eef0caa
languageName: node
linkType: hard
@@ -9752,7 +9752,7 @@ __metadata:
"@fullcalendar/luxon3": "npm:6.1.21"
"@fullcalendar/timegrid": "npm:6.1.21"
"@home-assistant/webawesome": "npm:3.7.0-ha.0"
"@html-eslint/eslint-plugin": "npm:0.63.0"
"@html-eslint/eslint-plugin": "npm:0.64.0"
"@lezer/highlight": "npm:1.2.3"
"@lit-labs/motion": "npm:1.1.0"
"@lit-labs/observers": "npm:2.1.0"