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