40 lines
1.2 KiB
YAML
40 lines
1.2 KiB
YAML
name: Build UI
|
|
description: Restore cached UI HTML artifacts, or set up Node and run script/build-ui on cache miss.
|
|
|
|
runs:
|
|
using: composite
|
|
steps:
|
|
- name: Cache UI artifacts
|
|
id: cache-ui
|
|
uses: actions/cache@v5
|
|
with:
|
|
path: |
|
|
pkg/github/ui_dist/get-me.html
|
|
pkg/github/ui_dist/issue-write.html
|
|
pkg/github/ui_dist/pr-write.html
|
|
pkg/github/ui_dist/pr-edit.html
|
|
key: ui-dist-v2-${{ hashFiles('ui/package-lock.json', 'ui/package.json', 'ui/index.html', 'ui/tsconfig*.json', 'ui/vite.config.ts', 'ui/src/**', 'ui/scripts/**') }}
|
|
enableCrossOsArchive: true
|
|
|
|
- name: Set up Node.js
|
|
if: steps.cache-ui.outputs.cache-hit != 'true'
|
|
uses: actions/setup-node@v6
|
|
with:
|
|
node-version: "20"
|
|
cache: npm
|
|
cache-dependency-path: ui/package-lock.json
|
|
|
|
- name: Build UI
|
|
if: steps.cache-ui.outputs.cache-hit != 'true'
|
|
shell: bash
|
|
run: script/build-ui
|
|
|
|
- name: Report UI cache status
|
|
shell: bash
|
|
run: |
|
|
if [ "${{ steps.cache-ui.outputs.cache-hit }}" = "true" ]; then
|
|
echo "UI artifacts restored from cache (skipped build)."
|
|
else
|
|
echo "UI artifacts rebuilt from source."
|
|
fi
|